summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/TODO4
-rw-r--r--core/pim/addressbook/ablabel.cpp34
-rw-r--r--core/pim/addressbook/version.h2
3 files changed, 27 insertions, 13 deletions
diff --git a/core/pim/addressbook/TODO b/core/pim/addressbook/TODO
index 106747e..da9b9c2 100644
--- a/core/pim/addressbook/TODO
+++ b/core/pim/addressbook/TODO
@@ -1,116 +1,116 @@
1Stuff todo until OPIE 1.0 : 1Stuff todo until OPIE 1.0 :
2=========================== 2===========================
3 3
4Feature requests: 4Feature requests:
5----------------- 5-----------------
6- Dial by mobile phone by tapping the number.. 6- Dial by mobile phone by tapping the number..
7 (Maybe using gsmtool. And we may 7 (Maybe using gsmtool. And we may
8 add a library class for this) 8 add a library class for this)
9- dial with dtmfdial in case it's installed and there's no mobile 9- dial with dtmfdial in case it's installed and there's no mobile
10- 3rd column for 2. Contact 10- 3rd column for 2. Contact
11- Implementing additional Views (Phonebook, ...) 11- Implementing additional Views (Phonebook, ...)
12- Birthday & Anniversary Reminder 12- Birthday & Anniversary Reminder
13- Beaming of multiple contacts (current list/ by search or by category) 13- Beaming of multiple contacts (current list/ by search or by category)
14- Configure the letter-picker: lastname/fullname search 14- Configure the letter-picker: lastname/fullname search
15- User center of the joypad to switch back from card to listview ! 15- User center of the joypad to switch back from card to listview !
16- Cursor-UP/Down: Should additionally scroll cardview if it is too large
17 (behaviour should be selectable by configuration)
18 16
19Known Bugs: 17Known Bugs:
20----------- 18-----------
21 19
22Bugs but not in addressbook: 20Bugs but not in addressbook:
23----------------------------- 21-----------------------------
24- VCARD: If umlaut (äöüß) in address, the parser gets confused.. 22- VCARD: If umlaut (äöüß) in address, the parser gets confused..
25 23
26 24
27Urgent: 25Urgent:
28-------- 26--------
29- Category is on the wrong position after changing to personal and back to normal 27- Category is on the wrong position after changing to personal and back to normal
30 ( Temporarily workaround: Category is never deactivated.. :S ) 28 ( Temporarily workaround: Category is never deactivated.. :S )
31 29
32 30
33Important: 31Important:
34---------- 32----------
35 33
36- "What's this" should be added (Deleyed after Feature Freeze) 34- "What's this" should be added (Deleyed after Feature Freeze)
37 35
38Less important: 36Less important:
39--------------- 37---------------
40- Reload if contacts were changed externally 38- Reload if contacts were changed externally
41- The picker (alphabetical sort widget) should be 39- The picker (alphabetical sort widget) should be
42 placed verticaly or horizontally (configurable) 40 placed verticaly or horizontally (configurable)
43- Find a smart solution for activating/deactivating the "send email" event 41- Find a smart solution for activating/deactivating the "send email" event
44- If new contact is added (contacteditor closed): focus (table, card) to 42- If new contact is added (contacteditor closed): focus (table, card) to
45 this entry ! 43 this entry !
46- After search (Started with Return): KeyFocus should be on Tabelle 44- After search (Started with Return): KeyFocus should be on Tabelle
47 45
48ContactEditor: 46ContactEditor:
49- Redesign of Contacteditor 47- Redesign of Contacteditor
50 48
51Should be Fixed (not absolute sure, need further validation): 49Should be Fixed (not absolute sure, need further validation):
52------------------------------------------------------------- 50-------------------------------------------------------------
53 51
54 52
55Fixed/Ready: 53Fixed/Ready:
56------- 54-------
57- Syncing: abtable not reloaded after sync. 55- Syncing: abtable not reloaded after sync.
58- Find widget should be replaced by something like 56- Find widget should be replaced by something like
59 qpdf has. 57 qpdf has.
60- Adding a configuration dialog 58- Adding a configuration dialog
61- Picker: Activated letter schould be more visible 59- Picker: Activated letter schould be more visible
62- Advanced handling of cursor keys (search..) 60- Advanced handling of cursor keys (search..)
63- Mail-Icon is missing 61- Mail-Icon is missing
64- Use opie-mail insted of qt-mail if possible. 62- Use opie-mail insted of qt-mail if possible.
65- Font menu is invisible using german translation 63- Font menu is invisible using german translation
66- Personal contact editor: Disable categories 64- Personal contact editor: Disable categories
67- "Nonenglish" translation bug has to be fixed. 65- "Nonenglish" translation bug has to be fixed.
68- contacteditor: Birthday, annyversary, ... : Use Dateselector 66- contacteditor: Birthday, annyversary, ... : Use Dateselector
69- The names of the countries are sorted by there english names, only.. 67- The names of the countries are sorted by there english names, only..
70 Even if they are translated.. :S 68 Even if they are translated.. :S
71- Cursor keys should work in detail-view (ablabel) 69- Cursor keys should work in detail-view (ablabel)
72 -> Ablabel should be removed and Abtable should be increased with 70 -> Ablabel should be removed and Abtable should be increased with
73 different views (as started by darwin zins).. 71 different views (as started by darwin zins)..
74- Use advanced database functions in abtable to decrease 72- Use advanced database functions in abtable to decrease
75 memory footprint and to make everything more easy ! 73 memory footprint and to make everything more easy !
76 (abtable should store Iterator for selected Category) 74 (abtable should store Iterator for selected Category)
77- Abtable: Configure Contact column (internally already available, 75- Abtable: Configure Contact column (internally already available,
78 need configuration) 76 need configuration)
79- Select of primary contact (see #274 on mantis) 77- Select of primary contact (see #274 on mantis)
80- Category-select does not work completely: "Unfiled" is always in listview .. 78- Category-select does not work completely: "Unfiled" is always in listview ..
81- Return from Contacteditor: Category resettet to all 79- Return from Contacteditor: Category resettet to all
82- Personal Details not working 80- Personal Details not working
83- If category changed, the letterpicker should be resetted 81- If category changed, the letterpicker should be resetted
84- There should be some icons for List and Cardview 82- There should be some icons for List and Cardview
85- If in Cardview and a category change removes all entries: 83- If in Cardview and a category change removes all entries:
86 There are already entries in Cardview after up/down 84 There are already entries in Cardview after up/down
87- Personal Details: Anniversary zeigt Fantasie-Werte 85- Personal Details: Anniversary zeigt Fantasie-Werte
88- Unfiled shown just in Category "All" and "Unfiled". 86- Unfiled shown just in Category "All" and "Unfiled".
89- After finising search and after Edit: Clear Picker 87- After finising search and after Edit: Clear Picker
90- After Edit: Table position back to edited entry. 88- After Edit: Table position back to edited entry.
91- Optimize Table Update... 89- Optimize Table Update...
92- Change MyDialog to Config 90- Change MyDialog to Config
93- Store position and state of toolbar 91- Store position and state of toolbar
94- Searchwidget closed: Selected user is jumping 92- Searchwidget closed: Selected user is jumping
95- Wenn suchen beendet, dann dauert das Tabellenupdate (was überhaupt überflüssig ist) 93- Wenn suchen beendet, dann dauert das Tabellenupdate (was überhaupt überflüssig ist)
96 zu lange.. 94 zu lange..
97- VCARD: Import of Anniversary does not work correctly (currently disabled) 95- VCARD: Import of Anniversary does not work correctly (currently disabled)
98- Name order selected in "contacteditor" not used in list view. 96- Name order selected in "contacteditor" not used in list view.
99- OK-Key does not switch from Detailview (ablable) to Listview 97- OK-Key does not switch from Detailview (ablable) to Listview
100- Receiving of beams should open a dialog 98- Receiving of beams should open a dialog
101- Fix start of opie-mail 99- Fix start of opie-mail
102- Implement Button Pics 100- Implement Button Pics
103- Add a dialog to accept and optionally edit received contacts by IRDA. 101- Add a dialog to accept and optionally edit received contacts by IRDA.
104- Language not English (tested with german opie-translation): 102- Language not English (tested with german opie-translation):
105 1. Configure nicht übersetzt (alles leer). 103 1. Configure nicht übersetzt (alles leer).
106 2. Contacteditor nur teilweise übersetzt. 104 2. Contacteditor nur teilweise übersetzt.
107 3. Kategorie-Picker geht nicht. 105 3. Kategorie-Picker geht nicht.
108- Plugin for Today for Birthdays and Anniversaries 106- Plugin for Today for Birthdays and Anniversaries
109- Implement a picker/combo for the default email. 107- Implement a picker/combo for the default email.
110- Overview window cleanup needed.. 108- Overview window cleanup needed..
111- Store last settings of combo-boxes 109- Store last settings of combo-boxes
112- Personal and Business Web-page is not editable 110- Personal and Business Web-page is not editable
113- Default Email-button: A lot of problems: 111- Default Email-button: A lot of problems:
114 If on second tab: The combo chooser is on the top left of the screen ! :( 112 If on second tab: The combo chooser is on the top left of the screen ! :(
115- Default Email-Button: Sometimes not hiding the textfields completely 113- Default Email-Button: Sometimes not hiding the textfields completely
116- Fix handling of 3 Firstnames 114- Fix handling of 3 Firstnames
115- Cursor-UP/Down: Should additionally scroll cardview if it is too large
116 (behaviour should be selectable by configuration)
diff --git a/core/pim/addressbook/ablabel.cpp b/core/pim/addressbook/ablabel.cpp
index 80b57ae..6d8de91 100644
--- a/core/pim/addressbook/ablabel.cpp
+++ b/core/pim/addressbook/ablabel.cpp
@@ -1,130 +1,144 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qt Palmtop Environment. 4** This file is part of Qt Palmtop Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "ablabel.h" 21#include "ablabel.h"
22 22
23#include <qpe/stringutil.h> 23#include <qpe/stringutil.h>
24 24
25#include <qregexp.h> 25#include <qregexp.h>
26#include <qstylesheet.h> 26#include <qstylesheet.h>
27 27
28AbLabel::AbLabel( QWidget *parent, const char *name ): 28AbLabel::AbLabel( QWidget *parent, const char *name ):
29 QTextView( parent, name ), 29 QTextView( parent, name ),
30 m_empty( false ) 30 m_empty( false )
31{ 31{
32} 32}
33 33
34AbLabel::~AbLabel() 34AbLabel::~AbLabel()
35{ 35{
36} 36}
37 37
38void AbLabel::setContacts( const OContactAccess::List& viewList ) 38void AbLabel::setContacts( const OContactAccess::List& viewList )
39{ 39{
40 m_viewList = viewList; 40 m_viewList = viewList;
41 if (m_viewList.count() != 0){ 41 if (m_viewList.count() != 0){
42 m_empty = false; 42 m_empty = false;
43 m_itCurContact = m_viewList.begin(); 43 m_itCurContact = m_viewList.begin();
44 sync(); 44 sync();
45 }else{ 45 }else{
46 // m_itCurContact.clear(); 46 // m_itCurContact.clear();
47 m_empty = true; 47 m_empty = true;
48 setText( "" ); 48 setText( "" );
49 } 49 }
50} 50}
51 51
52int AbLabel::currentEntry_UID() 52int AbLabel::currentEntry_UID()
53{ 53{
54 OContact contact = currentEntry(); 54 OContact contact = currentEntry();
55 55
56 if ( contact.isEmpty() ) 56 if ( contact.isEmpty() )
57 return 0; 57 return 0;
58 else 58 else
59 return ( contact.uid() ); 59 return ( contact.uid() );
60} 60}
61 61
62OContact AbLabel::currentEntry() 62OContact AbLabel::currentEntry()
63{ 63{
64 if ( ! m_empty ) 64 if ( ! m_empty )
65 return ( *m_itCurContact ); 65 return ( *m_itCurContact );
66 else 66 else
67 return OContact(); 67 return OContact();
68} 68}
69 69
70 70
71bool AbLabel::selectContact( int UID ) 71bool AbLabel::selectContact( int UID )
72{ 72{
73 73
74 for ( m_itCurContact = m_viewList.begin(); m_itCurContact != m_viewList.end(); ++m_itCurContact){ 74 for ( m_itCurContact = m_viewList.begin(); m_itCurContact != m_viewList.end(); ++m_itCurContact){
75 if ( (*m_itCurContact).uid() == UID ) 75 if ( (*m_itCurContact).uid() == UID )
76 break; 76 break;
77 } 77 }
78 sync(); 78 sync();
79 79
80 return true; 80 return true;
81} 81}
82 82
83 83
84 84
85void AbLabel::sync() 85void AbLabel::sync()
86{ 86{
87 QString text = (*m_itCurContact).toRichText(); 87 QString text = (*m_itCurContact).toRichText();
88 setText( text ); 88 setText( text );
89} 89}
90 90
91void AbLabel::keyPressEvent( QKeyEvent *e ) 91void AbLabel::keyPressEvent( QKeyEvent *e )
92{ 92{
93
93 // Commonly handled keys 94 // Commonly handled keys
94 if ( !m_empty ){ 95 if ( !m_empty ){
95 switch( e->key() ) { 96 switch( e->key() ) {
96 case Qt::Key_Left: 97 case Qt::Key_Left:
97 qWarning( "Left.."); 98 qWarning( "Left..");
98 case Qt::Key_Right: 99 case Qt::Key_Right:
99 qWarning( "Right.."); 100 qWarning( "Right..");
100 case Qt::Key_F33: 101 case Qt::Key_F33:
101 qWarning( "OK.."); 102 qWarning( "OK..");
102 emit signalOkPressed(); 103 emit signalOkPressed();
103 break; 104 break;
104 case Qt::Key_Up: 105 case Qt::Key_Up:
105 qWarning( "UP.."); 106 qWarning( "UP..");
106 --m_itCurContact; 107 if ( ( visibleHeight() < contentsHeight() ) &&
107 if ( *m_itCurContact != OContact() ) 108 ( verticalScrollBar()->value() > verticalScrollBar()->minValue() ) )
108 sync(); 109 scrollBy( 0, -(visibleHeight()-20) );
109 else 110 else {
110 m_itCurContact = m_viewList.end(); 111 --m_itCurContact;
112 if ( *m_itCurContact != OContact() )
113 sync();
114 else
115 m_itCurContact = m_viewList.end();
116 }
111 117
112 break; 118 break;
113 case Qt::Key_Down: 119 case Qt::Key_Down:
114 qWarning( "DOWN.."); 120 qWarning( "DOWN..");
115 ++m_itCurContact; 121 // qWarning( "visible: %d, content: %d",visibleHeight(),contentsHeight());
116 if ( *m_itCurContact != OContact() ) 122 // qWarning( "value: %d; barMaxValue: %d", verticalScrollBar()->value()
117 sync(); 123 // , verticalScrollBar()->maxValue() );
118 else 124 if ( ( visibleHeight() < contentsHeight() ) &&
119 m_itCurContact = m_viewList.begin(); 125 ( verticalScrollBar()->value() < verticalScrollBar()->maxValue() ) )
126 scrollBy( 0, visibleHeight()-20 );
127 else {
128 ++m_itCurContact;
129 if ( *m_itCurContact != OContact() )
130 sync();
131 else
132 m_itCurContact = m_viewList.begin();
133 }
120 break; 134 break;
121 case Qt::Key_Return: // fall through 135 case Qt::Key_Return: // fall through
122 case Qt::Key_Space: // fall through 136 case Qt::Key_Space: // fall through
123 case Qt::Key_Enter: // we want to switch back 137 case Qt::Key_Enter: // we want to switch back
124 emit signalOkPressed(); 138 emit signalOkPressed();
125 break; 139 break;
126 default: break; 140 default: break;
127 } 141 }
128 } 142 }
129 143
130} 144}
diff --git a/core/pim/addressbook/version.h b/core/pim/addressbook/version.h
index 0f12bd7..999ce67 100644
--- a/core/pim/addressbook/version.h
+++ b/core/pim/addressbook/version.h
@@ -1,10 +1,10 @@
1#ifndef _VERSION_H_ 1#ifndef _VERSION_H_
2#define _VERSION_H_ 2#define _VERSION_H_
3 3
4#define MAINVERSION "0" 4#define MAINVERSION "0"
5#define SUBVERSION "9" 5#define SUBVERSION "9"
6#define PATCHVERSION "1" 6#define PATCHVERSION "2"
7 7
8#define APPNAME "OPIE_ADDRESSBOOK" 8#define APPNAME "OPIE_ADDRESSBOOK"
9 9
10#endif 10#endif