-rw-r--r-- | core/pim/addressbook/TODO | 35 | ||||
-rw-r--r-- | core/pim/addressbook/ablabel.cpp | 7 | ||||
-rw-r--r-- | core/pim/addressbook/abview.cpp | 55 | ||||
-rw-r--r-- | core/pim/addressbook/abview.h | 2 | ||||
-rw-r--r-- | core/pim/addressbook/addressbook.cpp | 2 | ||||
-rw-r--r-- | core/pim/addressbook/configdlg_base.ui | 10 | ||||
-rw-r--r-- | core/pim/addressbook/ocontactfields.cpp | 4 |
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 @@ -10,69 +10,67 @@ Feature requests: - 3rd column for 2. Contact - Implementing additional Views (Phonebook, ...) - Birthday & Anniversary Reminder - Plugin for Today for Birthdays and Anniversaries Known Bugs: ----------- - OK-Key does not switch from Detailview (ablable) to Listview -- After finising search and after Edit: Clear Picker -- After Edit: Table position back to edited entry. -- Combo in Contacteditor: Field "Default-Email" is not correctly implemented and - should be removed by a picker/combo. - Name order selected in "contacteditor" not used in list view. + - Language not English (tested with german opie-translation): 1. Configure nicht übersetzt (alles leer). 2. Contacteditor nur teilweise übersetzt. - 3. Kategorie-Picker geht nicht (nur bei Openzaurus). + 3. Kategorie-Picker geht nicht. Bugs but not in addressbook: ----------------------------- - VCARD: Import of Anniversary does not work correctly (currently disabled) - VCARD: If umlaut (äöüß) in address, the parser gets confused.. -- Exporting and reimporting of Jobtitle fails. + +- Exporting and reimporting of Jobtitle fails (Could not reproduce this ! (se)) Urgent: -------- -- Contact-Editor is temporarely reanabled. Wait for replacement. +- Implement Button Pics +- Fix start of opie-mail + +ContactEditor: +- Contact-Editor is temporarely reenabled. Wait for replacement. - Redesign of Contacteditor - Store last settings of combo-boxes - Category is on the wrong position after changing to personal and back to normal ( Temporarily workaround: Category is never deactivated.. :S ) -- Optimize Table Update... -- Change MyDialog to Config -- Implement Button Pics -- Fix start of opie-mail +- Personal and Business Web-page is not editable Important: ---------- +- Implement a picker/combo for the default email. - After search (Started with Return): KeyFocus should be on Tabelle -- Searchwidget closed: Selected user is jumping -- Wenn suchen beendet, dann dauert das Tabellenupdate (was überhaupt überflüssig ist) - zu lange.. - -- Store position and state of toolbar - IRDA Receive: Contact is added, but start of editor with new entry expected.. - "What's this" should be added (Deleyed after Feature Freeze) Less important: --------------- - Reload if contacts were changed externally - Overview window cleanup needed.. - The picker (alphabetical sort widget) should be placed verticaly or horizontally (configurable) - Find a smart solution for activating/deactivating the "send email" event Should be Fixed (not absolute sure, need further validation): ------------------------------------------------------------- +- Searchwidget closed: Selected user is jumping +- Wenn suchen beendet, dann dauert das Tabellenupdate (was überhaupt überflüssig ist) + zu lange.. Fixed: ------- - Syncing: abtable not reloaded after sync. - Find widget should be replaced by something like qpdf has. - Adding a configuration dialog @@ -99,8 +97,13 @@ Fixed: - Return from Contacteditor: Category resettet to all - Personal Details not working - If category changed, the letterpicker should be resetted - There should be some icons for List and Cardview - If in Cardview and a category change removes all entries: There are already entries in Cardview after up/down - Personal Details: Anniversary zeigt Fantasie-Werte - Unfiled shown just in Category "All" and "Unfiled". +- After finising search and after Edit: Clear Picker +- After Edit: Table position back to edited entry. +- Optimize Table Update... +- Change MyDialog to Config +- 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 @@ -46,17 +46,22 @@ void AbLabel::setContacts( const OContactAccess::List& viewList ) // m_itCurContact.clear(); m_empty = true; setText( "" ); } } int AbLabel::currentEntry_UID() { - return ( (*m_itCurContact).uid() ); + OContact contact = *m_itCurContact; + + if ( contact.isEmpty() ) + return 0; + else + return ( contact.uid() ); } OContact AbLabel::currentEntry() { return ( *m_itCurContact ); } 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 @@ -119,48 +119,54 @@ void AbView::replaceEntry( const OContact &contact ) qWarning("abview:ReplaceContact"); m_contactdb->replace( contact ); load(); } OContact AbView::currentEntry() { + OContact currentContact; + switch ( (int) m_curr_View ) { case TableView: - return ( m_abTable -> currentEntry() ); + currentContact = m_abTable -> currentEntry(); break; case CardView: - return ( m_ablabel -> currentEntry() ); + currentContact = m_ablabel -> currentEntry(); break; } - return OContact(); + m_curr_Contact = currentContact.uid(); + return currentContact; } bool AbView::save() { qWarning("abView:Save data"); return m_contactdb->save(); } void AbView::load() { qWarning("abView:Load data"); + + // Letter Search is stopped at this place + emit signalClearLetterPicker(); if ( m_inPersonal ) m_list = m_contactdb->allRecords(); - else + else{ m_list = m_contactdb->sorted( true, 0, 0, 0 ); - - clearForCategory(); + clearForCategory(); + } qWarning ("Number of contacts: %d", m_list.count()); - updateView(); + updateView( true ); } void AbView::reload() { qWarning( "void AbView::reload()" ); m_contactdb->reload(); @@ -219,17 +225,17 @@ void AbView::setShowByLetter( char c ) load(); return; }else{ query.setLastName( QString("%1*").arg(c) ); m_list = m_contactdb->queryByExample( query, OContactAccess::WildCards ); clearForCategory(); m_curr_Contact = 0; } - updateView(); + updateView( true ); } void AbView::setListOrder( const QValueList<int>& ordered ) { m_orderedFields = ordered; updateView(); } @@ -320,17 +326,17 @@ void AbView::slotDoFind( const QString &str, bool caseSensitive, bool useRegExp, } // Now remove all contacts with wrong category (if any selected) // This algorithm is a litte bit ineffective, but // we will not have a lot of matching entries.. clearForCategory(); // Now show all found entries - updateView(); + updateView( true ); } void AbView::offSearch() { m_inSearch = false; load(); } @@ -402,41 +408,44 @@ bool AbView::contactCompare( const OContact &cnt, int category ) // In Some rare cases we have to update all lists.. void AbView::updateListinViews() { m_abTable -> setContacts( m_list ); m_ablabel -> setContacts( m_list ); } -void AbView::updateView() +void AbView::updateView( bool newdata ) { qWarning("AbView::updateView()"); if ( m_viewStack -> visibleWidget() ){ m_viewStack -> visibleWidget() -> clearFocus(); } // If we switching the view, we have to store some information - if ( m_list.count() ){ - switch ( (int) m_prev_View ) { - case TableView: - m_curr_Contact = m_abTable -> currentEntry_UID(); - break; - case CardView: - m_curr_Contact = m_ablabel -> currentEntry_UID(); - break; - } - }else - m_curr_Contact = 0; + if ( !newdata ){ + if ( m_list.count() ){ + switch ( (int) m_prev_View ) { + case TableView: + m_curr_Contact = m_abTable -> currentEntry_UID(); + break; + case CardView: + m_curr_Contact = m_ablabel -> currentEntry_UID(); + break; + } + }else + m_curr_Contact = 0; + } // Feed all views with new lists - updateListinViews(); + if ( newdata ) + updateListinViews(); - // Inform the world that the view is changed + // Tell the world that the view is changed if ( m_curr_View != m_prev_View ) emit signalViewSwitched ( (int) m_curr_View ); m_prev_View = m_curr_View; // Switch to new View switch ( (int) m_curr_View ) { case TableView: 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 @@ -53,17 +53,17 @@ signals: public slots: void slotDoFind( const QString &str, bool caseSensitive, bool useRegExp, bool backwards, QString category = QString::null ); void slotSwitch(); private: void updateListinViews(); - void updateView(); + void updateView( bool newdata = false ); void clearForCategory(); bool contactCompare( const OContact &cnt, int category ); void parseName( const QString& name, QString *first, QString *middle, QString * last ); Categories mCat; bool m_inSearch; bool m_inPersonal; 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 @@ -648,17 +648,17 @@ void AddressbookWindow::editEntry( EntryMode entryMode ) OContact entry; if ( !abEditor ) { abEditor = new ContactEditor( entry, this, "editor" ); } if ( entryMode == EditEntry ) abEditor->setEntry( m_abView -> currentEntry() ); else if ( entryMode == NewEntry ) abEditor->setEntry( entry ); - // other things may chane the caption. + // other things may change the caption. abEditor->setCaption( tr("Edit Address") ); #if defined(Q_WS_QWS) || defined(_WS_QWS_) abEditor->showMaximized(); #endif // fix the foxus... abEditor->setNameFocus(); if ( abEditor->exec() ) { 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 @@ -7,28 +7,32 @@ <name>name</name> <cstring>Configuration</cstring> </property> <property stdset="1"> <name>geometry</name> <rect> <x>0</x> <y>0</y> - <width>276</width> + <width>282</width> <height>327</height> </rect> </property> <property stdset="1"> <name>sizePolicy</name> <sizepolicy> <hsizetype>5</hsizetype> <vsizetype>5</vsizetype> </sizepolicy> </property> <property stdset="1"> + <name>caption</name> + <string>Configuration</string> + </property> + <property stdset="1"> <name>sizeGripEnabled</name> <bool>true</bool> </property> <property> <name>layoutMargin</name> </property> <vbox> <property stdset="1"> @@ -348,21 +352,21 @@ is provided free !</string> </property> <attribute> <name>title</name> <string>Order</string> </attribute> <vbox> <property stdset="1"> <name>margin</name> - <number>-1</number> + <number>2</number> </property> <property stdset="1"> <name>spacing</name> - <number>-1</number> + <number>2</number> </property> <widget> <class>QGroupBox</class> <property stdset="1"> <name>name</name> <cstring>GroupBox9</cstring> </property> <property stdset="1"> 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 @@ -37,17 +37,17 @@ QStringList OContactFields::untrdetailsfields( bool sorted ) */ QStringList OContactFields::trphonefields( bool sorted ) { QStringList list; list.append( QObject::tr( "Business Phone" ) ); list.append( QObject::tr( "Business Fax" ) ); list.append( QObject::tr( "Business Mobile" ) ); - list.append( QObject::tr( "Default Email" ) ); + // list.append( QObject::tr( "Default Email" ) ); list.append( QObject::tr( "Emails" ) ); list.append( QObject::tr( "Home Phone" ) ); list.append( QObject::tr( "Home Fax" ) ); list.append( QObject::tr( "Home Mobile" ) ); if (sorted) list.sort(); @@ -133,17 +133,17 @@ QStringList OContactFields::trfields( bool sorted ) QStringList OContactFields::untrphonefields( bool sorted ) { QStringList list; list.append( "Business Phone" ); list.append( "Business Fax" ); list.append( "Business Mobile" ); - list.append( "Default Email" ); + // list.append( "Default Email" ); list.append( "Emails" ); list.append( "Home Phone" ); list.append( "Home Fax" ); list.append( "Home Mobile" ); if (sorted) list.sort(); |