-rw-r--r-- | core/pim/addressbook/TODO | 4 | ||||
-rw-r--r-- | core/pim/addressbook/ablabel.cpp | 34 | ||||
-rw-r--r-- | core/pim/addressbook/version.h | 2 |
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 @@ | |||
1 | Stuff todo until OPIE 1.0 : | 1 | Stuff todo until OPIE 1.0 : |
2 | =========================== | 2 | =========================== |
3 | 3 | ||
4 | Feature requests: | 4 | Feature 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 | ||
19 | Known Bugs: | 17 | Known Bugs: |
20 | ----------- | 18 | ----------- |
21 | 19 | ||
22 | Bugs but not in addressbook: | 20 | Bugs 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 | ||
27 | Urgent: | 25 | Urgent: |
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 | ||
33 | Important: | 31 | Important: |
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 | ||
38 | Less important: | 36 | Less 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 | ||
48 | ContactEditor: | 46 | ContactEditor: |
49 | - Redesign of Contacteditor | 47 | - Redesign of Contacteditor |
50 | 48 | ||
51 | Should be Fixed (not absolute sure, need further validation): | 49 | Should be Fixed (not absolute sure, need further validation): |
52 | ------------------------------------------------------------- | 50 | ------------------------------------------------------------- |
53 | 51 | ||
54 | 52 | ||
55 | Fixed/Ready: | 53 | Fixed/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 | ||
28 | AbLabel::AbLabel( QWidget *parent, const char *name ): | 28 | AbLabel::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 | ||
34 | AbLabel::~AbLabel() | 34 | AbLabel::~AbLabel() |
35 | { | 35 | { |
36 | } | 36 | } |
37 | 37 | ||
38 | void AbLabel::setContacts( const OContactAccess::List& viewList ) | 38 | void 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 | ||
52 | int AbLabel::currentEntry_UID() | 52 | int 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 | ||
62 | OContact AbLabel::currentEntry() | 62 | OContact 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 | ||
71 | bool AbLabel::selectContact( int UID ) | 71 | bool 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 | ||
85 | void AbLabel::sync() | 85 | void 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 | ||
91 | void AbLabel::keyPressEvent( QKeyEvent *e ) | 91 | void 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 |