summaryrefslogtreecommitdiff
authoreilers <eilers>2002-11-30 18:13:34 (UTC)
committer eilers <eilers>2002-11-30 18:13:34 (UTC)
commit6afb59b5950c8fdd24dc93ac4ee370a3c8437f9a (patch) (unidiff)
treea873946a9b52edaab8f374918c7e0b468c2353b3
parentfe672fd88ead7a987d66f03439eb860e67aeaca6 (diff)
downloadopie-6afb59b5950c8fdd24dc93ac4ee370a3c8437f9a.zip
opie-6afb59b5950c8fdd24dc93ac4ee370a3c8437f9a.tar.gz
opie-6afb59b5950c8fdd24dc93ac4ee370a3c8437f9a.tar.bz2
Fixed a lot of usability stuff .. Some minor bugs were fixed, too ..
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/TODO35
-rw-r--r--core/pim/addressbook/ablabel.cpp7
-rw-r--r--core/pim/addressbook/abview.cpp55
-rw-r--r--core/pim/addressbook/abview.h2
-rw-r--r--core/pim/addressbook/addressbook.cpp2
-rw-r--r--core/pim/addressbook/configdlg_base.ui10
-rw-r--r--core/pim/addressbook/ocontactfields.cpp4
7 files changed, 68 insertions, 47 deletions
diff --git a/core/pim/addressbook/TODO b/core/pim/addressbook/TODO
index 1cbee26..93ece13 100644
--- a/core/pim/addressbook/TODO
+++ b/core/pim/addressbook/TODO
@@ -12,51 +12,46 @@ Feature requests:
12- Birthday & Anniversary Reminder 12- Birthday & Anniversary Reminder
13- Plugin for Today for Birthdays and Anniversaries 13- Plugin for Today for Birthdays and Anniversaries
14 14
15Known Bugs: 15Known Bugs:
16----------- 16-----------
17- OK-Key does not switch from Detailview (ablable) to Listview 17- OK-Key does not switch from Detailview (ablable) to Listview
18- After finising search and after Edit: Clear Picker
19- After Edit: Table position back to edited entry.
20- Combo in Contacteditor: Field "Default-Email" is not correctly implemented and
21 should be removed by a picker/combo.
22- Name order selected in "contacteditor" not used in list view. 18- Name order selected in "contacteditor" not used in list view.
19
23- Language not English (tested with german opie-translation): 20- Language not English (tested with german opie-translation):
24 1. Configure nicht übersetzt (alles leer). 21 1. Configure nicht übersetzt (alles leer).
25 2. Contacteditor nur teilweise übersetzt. 22 2. Contacteditor nur teilweise übersetzt.
26 3. Kategorie-Picker geht nicht (nur bei Openzaurus). 23 3. Kategorie-Picker geht nicht.
27 24
28 25
29Bugs but not in addressbook: 26Bugs but not in addressbook:
30----------------------------- 27-----------------------------
31- VCARD: Import of Anniversary does not work correctly (currently disabled) 28- VCARD: Import of Anniversary does not work correctly (currently disabled)
32- VCARD: If umlaut (äöüß) in address, the parser gets confused.. 29- VCARD: If umlaut (äöüß) in address, the parser gets confused..
33- Exporting and reimporting of Jobtitle fails. 30
31- Exporting and reimporting of Jobtitle fails (Could not reproduce this ! (se))
34 32
35 33
36Urgent: 34Urgent:
37-------- 35--------
38- Contact-Editor is temporarely reanabled. Wait for replacement. 36- Implement Button Pics
37- Fix start of opie-mail
38
39ContactEditor:
40- Contact-Editor is temporarely reenabled. Wait for replacement.
39- Redesign of Contacteditor 41- Redesign of Contacteditor
40- Store last settings of combo-boxes 42- Store last settings of combo-boxes
41- Category is on the wrong position after changing to personal and back to normal 43- Category is on the wrong position after changing to personal and back to normal
42 ( Temporarily workaround: Category is never deactivated.. :S ) 44 ( Temporarily workaround: Category is never deactivated.. :S )
43- Optimize Table Update... 45- Personal and Business Web-page is not editable
44- Change MyDialog to Config
45- Implement Button Pics
46- Fix start of opie-mail
47 46
48Important: 47Important:
49---------- 48----------
50 49
50- Implement a picker/combo for the default email.
51- After search (Started with Return): KeyFocus should be on Tabelle 51- After search (Started with Return): KeyFocus should be on Tabelle
52- Searchwidget closed: Selected user is jumping
53- Wenn suchen beendet, dann dauert das Tabellenupdate (was überhaupt überflüssig ist)
54 zu lange..
55
56- Store position and state of toolbar
57 52
58- IRDA Receive: Contact is added, but start of editor with new entry expected.. 53- IRDA Receive: Contact is added, but start of editor with new entry expected..
59- "What's this" should be added (Deleyed after Feature Freeze) 54- "What's this" should be added (Deleyed after Feature Freeze)
60 55
61Less important: 56Less important:
62--------------- 57---------------
@@ -65,12 +60,15 @@ Less important:
65- The picker (alphabetical sort widget) should be 60- The picker (alphabetical sort widget) should be
66 placed verticaly or horizontally (configurable) 61 placed verticaly or horizontally (configurable)
67- Find a smart solution for activating/deactivating the "send email" event 62- Find a smart solution for activating/deactivating the "send email" event
68 63
69Should be Fixed (not absolute sure, need further validation): 64Should be Fixed (not absolute sure, need further validation):
70------------------------------------------------------------- 65-------------------------------------------------------------
66- Searchwidget closed: Selected user is jumping
67- Wenn suchen beendet, dann dauert das Tabellenupdate (was überhaupt überflüssig ist)
68 zu lange..
71 69
72 70
73Fixed: 71Fixed:
74------- 72-------
75- Syncing: abtable not reloaded after sync. 73- Syncing: abtable not reloaded after sync.
76- Find widget should be replaced by something like 74- Find widget should be replaced by something like
@@ -101,6 +99,11 @@ Fixed:
101- If category changed, the letterpicker should be resetted 99- If category changed, the letterpicker should be resetted
102- There should be some icons for List and Cardview 100- There should be some icons for List and Cardview
103- If in Cardview and a category change removes all entries: 101- If in Cardview and a category change removes all entries:
104 There are already entries in Cardview after up/down 102 There are already entries in Cardview after up/down
105- Personal Details: Anniversary zeigt Fantasie-Werte 103- Personal Details: Anniversary zeigt Fantasie-Werte
106- Unfiled shown just in Category "All" and "Unfiled". 104- Unfiled shown just in Category "All" and "Unfiled".
105- After finising search and after Edit: Clear Picker
106- After Edit: Table position back to edited entry.
107- Optimize Table Update...
108- Change MyDialog to Config
109- Store position and state of toolbar
diff --git a/core/pim/addressbook/ablabel.cpp b/core/pim/addressbook/ablabel.cpp
index 5b40dc1..937aaae 100644
--- a/core/pim/addressbook/ablabel.cpp
+++ b/core/pim/addressbook/ablabel.cpp
@@ -48,13 +48,18 @@ void AbLabel::setContacts( const OContactAccess::List& viewList )
48 setText( "" ); 48 setText( "" );
49 } 49 }
50} 50}
51 51
52int AbLabel::currentEntry_UID() 52int AbLabel::currentEntry_UID()
53{ 53{
54 return ( (*m_itCurContact).uid() ); 54 OContact contact = *m_itCurContact;
55
56 if ( contact.isEmpty() )
57 return 0;
58 else
59 return ( contact.uid() );
55} 60}
56 61
57OContact AbLabel::currentEntry() 62OContact AbLabel::currentEntry()
58{ 63{
59 return ( *m_itCurContact ); 64 return ( *m_itCurContact );
60} 65}
diff --git a/core/pim/addressbook/abview.cpp b/core/pim/addressbook/abview.cpp
index 0f4bd5f..7226e82 100644
--- a/core/pim/addressbook/abview.cpp
+++ b/core/pim/addressbook/abview.cpp
@@ -121,44 +121,50 @@ void AbView::replaceEntry( const OContact &contact )
121 load(); 121 load();
122 122
123} 123}
124 124
125OContact AbView::currentEntry() 125OContact AbView::currentEntry()
126{ 126{
127 OContact currentContact;
128
127 switch ( (int) m_curr_View ) { 129 switch ( (int) m_curr_View ) {
128 case TableView: 130 case TableView:
129 return ( m_abTable -> currentEntry() ); 131 currentContact = m_abTable -> currentEntry();
130 break; 132 break;
131 case CardView: 133 case CardView:
132 return ( m_ablabel -> currentEntry() ); 134 currentContact = m_ablabel -> currentEntry();
133 break; 135 break;
134 } 136 }
135 return OContact(); 137 m_curr_Contact = currentContact.uid();
138 return currentContact;
136} 139}
137 140
138bool AbView::save() 141bool AbView::save()
139{ 142{
140 qWarning("abView:Save data"); 143 qWarning("abView:Save data");
141 144
142 return m_contactdb->save(); 145 return m_contactdb->save();
143} 146}
144 147
145void AbView::load() 148void AbView::load()
146{ 149{
147 qWarning("abView:Load data"); 150 qWarning("abView:Load data");
151
152 // Letter Search is stopped at this place
153 emit signalClearLetterPicker();
148 154
149 if ( m_inPersonal ) 155 if ( m_inPersonal )
150 m_list = m_contactdb->allRecords(); 156 m_list = m_contactdb->allRecords();
151 else 157 else{
152 m_list = m_contactdb->sorted( true, 0, 0, 0 ); 158 m_list = m_contactdb->sorted( true, 0, 0, 0 );
153 159 clearForCategory();
154 clearForCategory(); 160 }
155 161
156 qWarning ("Number of contacts: %d", m_list.count()); 162 qWarning ("Number of contacts: %d", m_list.count());
157 163
158 updateView(); 164 updateView( true );
159 165
160} 166}
161 167
162void AbView::reload() 168void AbView::reload()
163{ 169{
164 qWarning( "void AbView::reload()" ); 170 qWarning( "void AbView::reload()" );
@@ -221,13 +227,13 @@ void AbView::setShowByLetter( char c )
221 }else{ 227 }else{
222 query.setLastName( QString("%1*").arg(c) ); 228 query.setLastName( QString("%1*").arg(c) );
223 m_list = m_contactdb->queryByExample( query, OContactAccess::WildCards ); 229 m_list = m_contactdb->queryByExample( query, OContactAccess::WildCards );
224 clearForCategory(); 230 clearForCategory();
225 m_curr_Contact = 0; 231 m_curr_Contact = 0;
226 } 232 }
227 updateView(); 233 updateView( true );
228} 234}
229 235
230void AbView::setListOrder( const QValueList<int>& ordered ) 236void AbView::setListOrder( const QValueList<int>& ordered )
231{ 237{
232 m_orderedFields = ordered; 238 m_orderedFields = ordered;
233 updateView(); 239 updateView();
@@ -322,13 +328,13 @@ void AbView::slotDoFind( const QString &str, bool caseSensitive, bool useRegExp,
322 // Now remove all contacts with wrong category (if any selected) 328 // Now remove all contacts with wrong category (if any selected)
323 // This algorithm is a litte bit ineffective, but 329 // This algorithm is a litte bit ineffective, but
324 // we will not have a lot of matching entries.. 330 // we will not have a lot of matching entries..
325 clearForCategory(); 331 clearForCategory();
326 332
327 // Now show all found entries 333 // Now show all found entries
328 updateView(); 334 updateView( true );
329} 335}
330 336
331void AbView::offSearch() 337void AbView::offSearch()
332{ 338{
333 m_inSearch = false; 339 m_inSearch = false;
334 340
@@ -404,37 +410,40 @@ bool AbView::contactCompare( const OContact &cnt, int category )
404void AbView::updateListinViews() 410void AbView::updateListinViews()
405{ 411{
406 m_abTable -> setContacts( m_list ); 412 m_abTable -> setContacts( m_list );
407 m_ablabel -> setContacts( m_list ); 413 m_ablabel -> setContacts( m_list );
408} 414}
409 415
410void AbView::updateView() 416void AbView::updateView( bool newdata )
411{ 417{
412 qWarning("AbView::updateView()"); 418 qWarning("AbView::updateView()");
413 419
414 if ( m_viewStack -> visibleWidget() ){ 420 if ( m_viewStack -> visibleWidget() ){
415 m_viewStack -> visibleWidget() -> clearFocus(); 421 m_viewStack -> visibleWidget() -> clearFocus();
416 } 422 }
417 423
418 // If we switching the view, we have to store some information 424 // If we switching the view, we have to store some information
419 if ( m_list.count() ){ 425 if ( !newdata ){
420 switch ( (int) m_prev_View ) { 426 if ( m_list.count() ){
421 case TableView: 427 switch ( (int) m_prev_View ) {
422 m_curr_Contact = m_abTable -> currentEntry_UID(); 428 case TableView:
423 break; 429 m_curr_Contact = m_abTable -> currentEntry_UID();
424 case CardView: 430 break;
425 m_curr_Contact = m_ablabel -> currentEntry_UID(); 431 case CardView:
426 break; 432 m_curr_Contact = m_ablabel -> currentEntry_UID();
427 } 433 break;
428 }else 434 }
429 m_curr_Contact = 0; 435 }else
436 m_curr_Contact = 0;
437 }
430 438
431 // Feed all views with new lists 439 // Feed all views with new lists
432 updateListinViews(); 440 if ( newdata )
441 updateListinViews();
433 442
434 // Inform the world that the view is changed 443 // Tell the world that the view is changed
435 if ( m_curr_View != m_prev_View ) 444 if ( m_curr_View != m_prev_View )
436 emit signalViewSwitched ( (int) m_curr_View ); 445 emit signalViewSwitched ( (int) m_curr_View );
437 446
438 m_prev_View = m_curr_View; 447 m_prev_View = m_curr_View;
439 448
440 // Switch to new View 449 // Switch to new View
diff --git a/core/pim/addressbook/abview.h b/core/pim/addressbook/abview.h
index 2c10cfa..8570fe7 100644
--- a/core/pim/addressbook/abview.h
+++ b/core/pim/addressbook/abview.h
@@ -55,13 +55,13 @@ public slots:
55 void slotDoFind( const QString &str, bool caseSensitive, bool useRegExp, 55 void slotDoFind( const QString &str, bool caseSensitive, bool useRegExp,
56 bool backwards, QString category = QString::null ); 56 bool backwards, QString category = QString::null );
57 void slotSwitch(); 57 void slotSwitch();
58 58
59private: 59private:
60 void updateListinViews(); 60 void updateListinViews();
61 void updateView(); 61 void updateView( bool newdata = false );
62 void clearForCategory(); 62 void clearForCategory();
63 bool contactCompare( const OContact &cnt, int category ); 63 bool contactCompare( const OContact &cnt, int category );
64 void parseName( const QString& name, QString *first, QString *middle, 64 void parseName( const QString& name, QString *first, QString *middle,
65 QString * last ); 65 QString * last );
66 66
67 Categories mCat; 67 Categories mCat;
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp
index 5d588da..055124c 100644
--- a/core/pim/addressbook/addressbook.cpp
+++ b/core/pim/addressbook/addressbook.cpp
@@ -650,13 +650,13 @@ void AddressbookWindow::editEntry( EntryMode entryMode )
650 abEditor = new ContactEditor( entry, this, "editor" ); 650 abEditor = new ContactEditor( entry, this, "editor" );
651 } 651 }
652 if ( entryMode == EditEntry ) 652 if ( entryMode == EditEntry )
653 abEditor->setEntry( m_abView -> currentEntry() ); 653 abEditor->setEntry( m_abView -> currentEntry() );
654 else if ( entryMode == NewEntry ) 654 else if ( entryMode == NewEntry )
655 abEditor->setEntry( entry ); 655 abEditor->setEntry( entry );
656 // other things may chane the caption. 656 // other things may change the caption.
657 abEditor->setCaption( tr("Edit Address") ); 657 abEditor->setCaption( tr("Edit Address") );
658 658
659#if defined(Q_WS_QWS) || defined(_WS_QWS_) 659#if defined(Q_WS_QWS) || defined(_WS_QWS_)
660 abEditor->showMaximized(); 660 abEditor->showMaximized();
661#endif 661#endif
662 // fix the foxus... 662 // fix the foxus...
diff --git a/core/pim/addressbook/configdlg_base.ui b/core/pim/addressbook/configdlg_base.ui
index 408bfa6..8ae2578 100644
--- a/core/pim/addressbook/configdlg_base.ui
+++ b/core/pim/addressbook/configdlg_base.ui
@@ -9,24 +9,28 @@
9 </property> 9 </property>
10 <property stdset="1"> 10 <property stdset="1">
11 <name>geometry</name> 11 <name>geometry</name>
12 <rect> 12 <rect>
13 <x>0</x> 13 <x>0</x>
14 <y>0</y> 14 <y>0</y>
15 <width>276</width> 15 <width>282</width>
16 <height>327</height> 16 <height>327</height>
17 </rect> 17 </rect>
18 </property> 18 </property>
19 <property stdset="1"> 19 <property stdset="1">
20 <name>sizePolicy</name> 20 <name>sizePolicy</name>
21 <sizepolicy> 21 <sizepolicy>
22 <hsizetype>5</hsizetype> 22 <hsizetype>5</hsizetype>
23 <vsizetype>5</vsizetype> 23 <vsizetype>5</vsizetype>
24 </sizepolicy> 24 </sizepolicy>
25 </property> 25 </property>
26 <property stdset="1"> 26 <property stdset="1">
27 <name>caption</name>
28 <string>Configuration</string>
29 </property>
30 <property stdset="1">
27 <name>sizeGripEnabled</name> 31 <name>sizeGripEnabled</name>
28 <bool>true</bool> 32 <bool>true</bool>
29 </property> 33 </property>
30 <property> 34 <property>
31 <name>layoutMargin</name> 35 <name>layoutMargin</name>
32 </property> 36 </property>
@@ -350,17 +354,17 @@ is provided free !</string>
350 <name>title</name> 354 <name>title</name>
351 <string>Order</string> 355 <string>Order</string>
352 </attribute> 356 </attribute>
353 <vbox> 357 <vbox>
354 <property stdset="1"> 358 <property stdset="1">
355 <name>margin</name> 359 <name>margin</name>
356 <number>-1</number> 360 <number>2</number>
357 </property> 361 </property>
358 <property stdset="1"> 362 <property stdset="1">
359 <name>spacing</name> 363 <name>spacing</name>
360 <number>-1</number> 364 <number>2</number>
361 </property> 365 </property>
362 <widget> 366 <widget>
363 <class>QGroupBox</class> 367 <class>QGroupBox</class>
364 <property stdset="1"> 368 <property stdset="1">
365 <name>name</name> 369 <name>name</name>
366 <cstring>GroupBox9</cstring> 370 <cstring>GroupBox9</cstring>
diff --git a/core/pim/addressbook/ocontactfields.cpp b/core/pim/addressbook/ocontactfields.cpp
index 7823a9c..df57efa 100644
--- a/core/pim/addressbook/ocontactfields.cpp
+++ b/core/pim/addressbook/ocontactfields.cpp
@@ -39,13 +39,13 @@ QStringList OContactFields::trphonefields( bool sorted )
39{ 39{
40 QStringList list; 40 QStringList list;
41 list.append( QObject::tr( "Business Phone" ) ); 41 list.append( QObject::tr( "Business Phone" ) );
42 list.append( QObject::tr( "Business Fax" ) ); 42 list.append( QObject::tr( "Business Fax" ) );
43 list.append( QObject::tr( "Business Mobile" ) ); 43 list.append( QObject::tr( "Business Mobile" ) );
44 44
45 list.append( QObject::tr( "Default Email" ) ); 45 // list.append( QObject::tr( "Default Email" ) );
46 list.append( QObject::tr( "Emails" ) ); 46 list.append( QObject::tr( "Emails" ) );
47 47
48 list.append( QObject::tr( "Home Phone" ) ); 48 list.append( QObject::tr( "Home Phone" ) );
49 list.append( QObject::tr( "Home Fax" ) ); 49 list.append( QObject::tr( "Home Fax" ) );
50 list.append( QObject::tr( "Home Mobile" ) ); 50 list.append( QObject::tr( "Home Mobile" ) );
51 51
@@ -135,13 +135,13 @@ QStringList OContactFields::untrphonefields( bool sorted )
135 QStringList list; 135 QStringList list;
136 136
137 list.append( "Business Phone" ); 137 list.append( "Business Phone" );
138 list.append( "Business Fax" ); 138 list.append( "Business Fax" );
139 list.append( "Business Mobile" ); 139 list.append( "Business Mobile" );
140 140
141 list.append( "Default Email" ); 141 // list.append( "Default Email" );
142 list.append( "Emails" ); 142 list.append( "Emails" );
143 143
144 list.append( "Home Phone" ); 144 list.append( "Home Phone" );
145 list.append( "Home Fax" ); 145 list.append( "Home Fax" );
146 list.append( "Home Mobile" ); 146 list.append( "Home Mobile" );
147 147