-rw-r--r-- | core/pim/addressbook/TODO | 11 | ||||
-rw-r--r-- | core/pim/addressbook/addressbook.cpp | 9 | ||||
-rw-r--r-- | core/pim/addressbook/configdlg_base.ui | 6 | ||||
-rw-r--r-- | core/pim/addressbook/contacteditor.cpp | 153 | ||||
-rw-r--r-- | core/pim/addressbook/contacteditor.h | 14 |
5 files changed, 153 insertions, 40 deletions
diff --git a/core/pim/addressbook/TODO b/core/pim/addressbook/TODO index 96134f4..100a6fd 100644 --- a/core/pim/addressbook/TODO +++ b/core/pim/addressbook/TODO @@ -7,18 +7,18 @@ Urgent: Important: -- Personal contact editor: Disable categories - Name order selected in "contacteditor" not used in list view. -- contacteditor: Birthday, annyversary, ... : Use Dateselector - Overview window cleanup needed.. - Cursor keys should work in detail-view (ablabel) -- "What's this" should be added + -> Ablabel should be removed and Abtable should be increased with + different views (as started by darwin zins).. - Store last settings of combo-boxes - Finishing of new View functions (List, Phonebook...) - The names of the countries are sorted by there english names, only.. Even if they are translated.. :S - Reload if contacts were changed externally +- "What's this" should be added Less important: @@ -29,7 +29,7 @@ Less important: (abtable should store Iterator for selected Category) Should be Fixed (not absolute sure, need further validation): -- "Nonenglish" translation bug has to be fixed. + Fixed: - Syncing: abtable not reloaded after sync. @@ -41,3 +41,6 @@ Fixed: - Mail-Icon is missing - Use opie-mail insted of qt-mail if possible. - Font menu is invisible using german translation +- Personal contact editor: Disable categories +- "Nonenglish" translation bug has to be fixed. +- contacteditor: Birthday, annyversary, ... : Use Dateselector diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp index 39d8321..108e66d 100644 --- a/core/pim/addressbook/addressbook.cpp +++ b/core/pim/addressbook/addressbook.cpp @@ -94,7 +94,7 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name, caseSensitive = cfg.readBoolEntry( "caseSensitive" ); doNotifyWrapAround = cfg.readBoolEntry( "doNotifyWrapAround" ); cfg.setGroup("Mail"); - m_useQtMail = cfg.readBoolEntry( "useQtMail" ); + m_useQtMail = cfg.readBoolEntry( "useQtMail", true ); m_useOpieMail=cfg.readBoolEntry( "useOpieMail" ); @@ -673,12 +673,16 @@ void AddressbookWindow::editPersonal() if (QFile::exists(filename)) me = OContact::readVCard( filename )[0]; if (bAbEditFirstTime) { + qWarning("Editing personal data"); abEditor = new ContactEditor( me, &orderedFields, &slOrderedFields, this, "editor" ); // don't create a new editor every time bAbEditFirstTime = FALSE; - } else + } else{ abEditor->setEntry( me ); + } + + abEditor->setPersonalView( true ); abEditor->setCaption(tr("Edit My Personal Details")); abEditor->showMaximized(); @@ -694,6 +698,7 @@ void AddressbookWindow::editPersonal() abView()->sync(); } abEditor->setCaption( tr("Edit Address") ); + abEditor->setPersonalView( false ); } void AddressbookWindow::slotPersonalView() diff --git a/core/pim/addressbook/configdlg_base.ui b/core/pim/addressbook/configdlg_base.ui index d3ea12e..a6fcffa 100644 --- a/core/pim/addressbook/configdlg_base.ui +++ b/core/pim/addressbook/configdlg_base.ui @@ -12,8 +12,8 @@ <rect> <x>0</x> <y>0</y> - <width>217</width> - <height>287</height> + <width>244</width> + <height>298</height> </rect> </property> <property stdset="1"> @@ -329,6 +329,8 @@ is provided free !</string> <tabstop>m_useWildCard</tabstop> <tabstop>m_useCaseSensitive</tabstop> <tabstop>m_signalWrapAround</tabstop> + <tabstop>m_useQtMail</tabstop> + <tabstop>m_useOpieMail</tabstop> <tabstop>buttonOk</tabstop> <tabstop>buttonCancel</tabstop> </tabstops> diff --git a/core/pim/addressbook/contacteditor.cpp b/core/pim/addressbook/contacteditor.cpp index e7f2ebd..a59a927 100644 --- a/core/pim/addressbook/contacteditor.cpp +++ b/core/pim/addressbook/contacteditor.cpp @@ -24,6 +24,7 @@ #include <qpe/categoryselect.h> #include <qpe/qpeapplication.h> #include <qpe/qpedialog.h> +#include <qpe/timeconversion.h> #include <qcombobox.h> #include <qlabel.h> @@ -36,6 +37,7 @@ #include <qpushbutton.h> #include <qmainwindow.h> #include <qvaluelist.h> +#include <qpopupmenu.h> static inline bool containsAlphaNum( const QString &str ); static inline bool constainsWhiteSpace( const QString &str ); @@ -57,7 +59,8 @@ ContactEditor::ContactEditor( const OContact &entry, WFlags fl ) : QDialog( parent, name, TRUE, fl ), orderedValues( newOrderedValues ), - slOrdered( *slNewOrdered ) + slOrdered( *slNewOrdered ), + m_personalView ( false ) { init(); @@ -206,7 +209,16 @@ void ContactEditor::init() { continue; } - if ( *it == "Name Title" || *it == "First Name" || *it == "Middle Name" || *it == "Last Name" || *it == "File As" || *it == "Default Email" || *it == "Emails" || *it == "Groups" ) + if ( *it == "Name Title" || + *it == "First Name" || + *it == "Middle Name" || + *it == "Last Name" || + *it == "File As" || + *it == "Default Email" || + *it == "Emails" || + *it == "Groups" || + *it == "Anniversary" || + *it == "Birthday" ) continue; if ( *it == "Name Title" ) { @@ -402,11 +414,21 @@ void ContactEditor::init() { cmbFileAs = new QComboBox( TRUE, container ); gl->addWidget( cmbFileAs, 6, 1 ); - l = new QLabel( tr( "Category" ), container ); - gl->addWidget( l, 7, 0 ); + labCat = new QLabel( tr( "Category" ), container ); + gl->addWidget( labCat, 7, 0 ); cmbCat = new CategorySelect( container ); gl->addWidget( cmbCat, 7, 1 ); + // We don't need categories for the personal view + if ( m_personalView ){ + qWarning("Disable Category.."); + labCat->hide(); + cmbCat->hide(); + } else { + labCat->show(); + cmbCat->show(); + } + btnNote = new QPushButton( tr( "Notes..." ), container ); gl->addWidget( btnNote, 8, 1 ); @@ -707,9 +729,56 @@ void ContactEditor::init() { gl = new QGridLayout( container, 1, 2, 2, 4 ); + int counter = 0; + + // Birthday + l = new QLabel( tr("Birthday"), container ); + gl->addWidget( l, counter, 0 ); + + QPopupMenu* m1 = new QPopupMenu( container ); + birthdayPicker = new DateBookMonth( m1, 0, TRUE ); + m1->insertItem( birthdayPicker ); + + birthdayButton= new QToolButton( container, "buttonStart" ); + birthdayButton->setPopup( m1 ); + birthdayButton->setPopupDelay(0); + gl->addWidget( birthdayButton, counter , 1 ); + connect( birthdayPicker, SIGNAL( dateClicked( int, int, int ) ), + this, SLOT( slotBirthdayDateChanged( int, int, int ) ) ); + + ++counter; + + // Anniversary + l = new QLabel( tr("Anniversary"), container ); + gl->addWidget( l, counter, 0 ); + + m1 = new QPopupMenu( container ); + anniversaryPicker = new DateBookMonth( m1, 0, TRUE ); + m1->insertItem( anniversaryPicker ); + + anniversaryButton= new QToolButton( container, "buttonStart" ); + anniversaryButton->setPopup( m1 ); + anniversaryButton->setPopupDelay(0); + gl->addWidget( anniversaryButton, counter , 1 ); + connect( anniversaryPicker, SIGNAL( dateClicked( int, int, int ) ), + this, SLOT( slotAnniversaryDateChanged( int, int, int ) ) ); + + ++counter; + + // Gender + l = new QLabel( tr("Gender"), container ); + gl->addWidget( l, counter, 0 ); + cmbGender = new QComboBox( container ); + cmbGender->insertItem( "", 0 ); + cmbGender->insertItem( tr("Male"), 1); + cmbGender->insertItem( tr("Female"), 2); + gl->addWidget( cmbGender, counter, 1 ); + + ++counter; + // Create Labels and lineedit fields for every dynamic entry QStringList::ConstIterator it = slDynamicEntries.begin(); - for (i = 0; it != slDynamicEntries.end(); i++, ++it) { + for (i = counter; it != slDynamicEntries.end(); i++, ++it) { l = new QLabel( QString::null , container ); listName.append( l ); gl->addWidget( l, i, 0 ); @@ -720,13 +789,6 @@ void ContactEditor::init() { // Fill labels with names.. loadFields(); - l = new QLabel( tr("Gender"), container ); - gl->addWidget( l, slDynamicEntries.count(), 0 ); - cmbGender = new QComboBox( container ); - cmbGender->insertItem( "", 0 ); - cmbGender->insertItem( tr("Male"), 1); - cmbGender->insertItem( tr("Female"), 2); - gl->addWidget( cmbGender, slDynamicEntries.count(), 1 ); tabMain->insertTab( tabViewport, tr( "Details" ) ); @@ -1009,6 +1071,7 @@ void ContactEditor::slotFullNameChange( const QString &textChanged ) { } +// Loads the detail fields void ContactEditor::loadFields() { QStringList::ConstIterator it; @@ -1036,18 +1099,27 @@ void ContactEditor::loadFields() { if ( *it == "Spouse" ) (*lit)->setText( tr( "Spouse" ) ); - if ( *it == "Birthday" ) - (*lit)->setText( tr( "Birthday" ) ); - - if ( *it == "Anniversary" ) - (*lit)->setText( tr( "Anniversary" ) ); - if ( *it == "Nickname" ) (*lit)->setText( tr( "Nickname" ) ); if ( *it == "Children" ) (*lit)->setText( tr( "Children" ) ); } + // Set DatePicker + qWarning ("**Info: %s", ent.birthday().latin1() ); + if ( !ent.birthday().isEmpty() ){ + birthdayButton->setText( ent.birthday() ); + birthdayPicker->setDate( TimeConversion::fromString ( ent.birthday() ) ); + } else + birthdayButton->setText( tr ("Unknown") ); + + qWarning ("**Info: %s", ent.anniversary().latin1() ); + if ( !ent.anniversary().isEmpty() ){ + anniversaryButton->setText( ent.anniversary() ); + anniversaryPicker->setDate( TimeConversion::fromString ( ent.birthday() ) ); + } else + anniversaryButton->setText( tr ("Unknown") ); + } void ContactEditor::accept() { @@ -1429,12 +1501,6 @@ void ContactEditor::setEntry( const OContact &entry ) { if ( *it == "Spouse" ) (*itLE)->setText( ent.spouse() ); - if ( *it == "Birthday" ) - (*itLE)->setText( ent.birthday() ); - - if ( *it == "Anniversary" ) - (*itLE)->setText( ent.anniversary() ); - if ( *it == "Nickname" ) (*itLE)->setText( ent.nickname() ); @@ -1518,6 +1584,7 @@ void ContactEditor::setEntry( const OContact &entry ) { } + cmbCat->setCategories( ent.categories(), "Contacts", tr("Contacts") ); QString gender = ent.gender(); @@ -1531,6 +1598,8 @@ void ContactEditor::setEntry( const OContact &entry ) { slotAddressTypeChange( cmbAddress->currentItem() ); + loadFields(); + } void ContactEditor::saveEntry() { @@ -1627,12 +1696,6 @@ void ContactEditor::saveEntry() { if ( *it == "Spouse" ) ent.setSpouse( (*itLE)->text() ); - if ( *it == "Birthday" ) - ent.setBirthday( (*itLE)->text() ); - - if ( *it == "Anniversary" ) - ent.setAnniversary( (*itLE)->text() ); - if ( *it == "Nickname" ) ent.setNickname( (*itLE)->text() ); @@ -1806,3 +1869,33 @@ static inline bool constainsWhiteSpace( const QString &str ) return FALSE; } +void ContactEditor::setPersonalView( bool personal ) +{ + m_personalView = personal; + if ( personal ){ + cmbCat->hide(); + labCat->hide(); + } else{ + cmbCat->show(); + labCat->show(); + + } +} + +void ContactEditor::slotAnniversaryDateChanged( int year, int month, int day) +{ + QDate date; + date.setYMD( year, month, day ); + QString dateString = TimeString::numberDateString( date ); + anniversaryButton->setText( dateString ); + ent.setAnniversary ( dateString ); +} + +void ContactEditor::slotBirthdayDateChanged( int year, int month, int day) +{ + QDate date; + date.setYMD( year, month, day ); + QString dateString = TimeString::numberDateString( date ); + birthdayButton->setText( dateString ); + ent.setBirthday ( dateString ); +} diff --git a/core/pim/addressbook/contacteditor.h b/core/pim/addressbook/contacteditor.h index 8ed8553..40ce864 100644 --- a/core/pim/addressbook/contacteditor.h +++ b/core/pim/addressbook/contacteditor.h @@ -23,6 +23,8 @@ #include <opie/ocontact.h> +#include <qpe/datebookmonth.h> + #include <qdialog.h> #include <qlist.h> #include <qmap.h> @@ -61,6 +63,7 @@ class ContactEditor : public QDialog { ~ContactEditor(); void loadFields(); void setNameFocus(); + void setPersonalView( bool personal = true ); OContact entry() const { return ent; } public slots: @@ -78,7 +81,6 @@ class ContactEditor : public QDialog { bool isEmpty(); void cleanupFields(); QString parseName( QString fullName, int type ); - private slots: void slotChooser1Change( const QString &textChanged ); void slotChooser2Change( const QString &textChanged ); @@ -97,6 +99,8 @@ class ContactEditor : public QDialog { void slotZipChange( const QString &textChanged ); void slotCountryChange( const QString &textChanged ); void slotFullNameChange( const QString &textChanged ); + void slotAnniversaryDateChanged( int year, int month, int day); + void slotBirthdayDateChanged( int year, int month, int day); private: bool useFullName, hasGender, hasTitle, hasCompany, hasNotes, hasStreet, hasStreet2, hasPOBox, hasCity, hasState, hasZip, hasCountry; @@ -112,6 +116,8 @@ class ContactEditor : public QDialog { QStringList slOrdered; QStringList slDynamicEntries; + bool m_personalView; + QStringList slHomeAddress; QStringList slBusinessAddress; QStringList slChooserNames; @@ -143,6 +149,7 @@ class ContactEditor : public QDialog { QComboBox *cmbChooserField4; QComboBox *cmbFileAs; CategorySelect *cmbCat; + QLabel *labCat; QScrollView *svAddress; QLineEdit *txtAddress; @@ -156,7 +163,10 @@ class ContactEditor : public QDialog { QScrollView *svDetails; QComboBox *cmbGender; - + DateBookMonth* birthdayPicker; + QToolButton* birthdayButton; + DateBookMonth* anniversaryPicker; + QToolButton* anniversaryButton; }; #endif |