-rw-r--r-- | core/pim/addressbook/contacteditor.cpp | 62 | ||||
-rw-r--r-- | core/pim/addressbook/contacteditor.h | 8 |
2 files changed, 29 insertions, 41 deletions
diff --git a/core/pim/addressbook/contacteditor.cpp b/core/pim/addressbook/contacteditor.cpp index 75dd2c1..7682399 100644 --- a/core/pim/addressbook/contacteditor.cpp +++ b/core/pim/addressbook/contacteditor.cpp @@ -86,14 +86,12 @@ ContactEditor::ContactEditor( const OContact &entry, ContactEditor::~ContactEditor() { } void ContactEditor::init() { qWarning("init() START"); - useFullName = true; - uint i = 0; QStringList trlChooserNames; for (i = 0; i <= 6; i++) { slHomeAddress.append( "" ); @@ -1028,17 +1026,18 @@ void ContactEditor::slotFullNameChange( const QString &textChanged ) { cmbFileAs->clear(); cmbFileAs->insertItem( parseName( textChanged, NAME_LF ) ); cmbFileAs->insertItem( parseName( textChanged, NAME_LFM ) ); cmbFileAs->insertItem( parseName( textChanged, NAME_FL ) ); - cmbFileAs->insertItem( parseName( textChanged, NAME_FMLS ) ); + cmbFileAs->insertItem( parseName( textChanged, NAME_FML ) ); + if ( ! txtSuffix->text().isEmpty() ) + cmbFileAs->insertItem( parseName( textChanged, NAME_FML ) + " " + txtSuffix->text() ); cmbFileAs->setCurrentItem( index ); - useFullName = true; } void ContactEditor::slotSuffixChange( const QString& ) { // Just want to update the FileAs combo if the suffix was changed.. slotFullNameChange( txtFullName->text() ); @@ -1065,25 +1064,27 @@ void ContactEditor::slotNote() { } } void ContactEditor::slotName() { QString tmpName; - if (useFullName) { - txtFirstName->setText( parseName(txtFullName->text(), NAME_F) ); - txtMiddleName->setText( parseName(txtFullName->text(), NAME_M) ); - txtLastName->setText( parseName(txtFullName->text(), NAME_L) ); - // txtSuffix->setText( parseName(txtFullName->text(), NAME_S) ); - } + + txtFirstName->setText( parseName(txtFullName->text(), NAME_F) ); + txtMiddleName->setText( parseName(txtFullName->text(), NAME_M) ); + txtLastName->setText( parseName(txtFullName->text(), NAME_L) ); + // txtSuffix->setText( parseName(txtFullName->text(), NAME_S) ); + dlgName->showMaximized(); if ( dlgName->exec() ) { + if ( txtLastName->text().contains( ' ', TRUE ) ) + tmpName = txtLastName->text() + ", " + txtFirstName->text() + " " + txtMiddleName->text(); + else + tmpName = txtFirstName->text() + " " + txtMiddleName->text() + " " + txtLastName->text(); - tmpName = txtFirstName->text() + " " + txtMiddleName->text() + " " + txtLastName->text(); txtFullName->setText( tmpName.simplifyWhiteSpace() ); slotFullNameChange( txtFullName->text() ); - useFullName = false; } } void ContactEditor::setNameFocus() { @@ -1176,14 +1177,14 @@ QString ContactEditor::parseName( const QString fullName, int type ) { case NAME_LF: return strLastName + ", " + strFirstName; case NAME_LFM: return strLastName + ", " + strFirstName + " " + strMiddleName; - case NAME_FMLS: - return strFirstName + " " + strMiddleName + " " + strLastName + " " + txtSuffix->text(); + case NAME_FML: + return strFirstName + " " + strMiddleName + " " + strLastName ; case NAME_F: return strFirstName; case NAME_M: return strMiddleName; @@ -1247,28 +1248,29 @@ void ContactEditor::setEntry( const OContact &entry ) { emails = QStringList(ent.emailList()); defaultEmail = ent.defaultEmail(); if (defaultEmail.isEmpty()) defaultEmail = emails[0]; qDebug("default email=%s",defaultEmail.latin1()); - useFullName = false; txtFirstName->setText( ent.firstName() ); txtMiddleName->setText( ent.middleName() ); txtLastName->setText( ent.lastName() ); txtSuffix->setText( ent.suffix() ); // QString *tmpString = new QString; // *tmpString = ent.firstName() + " " + ent.middleName() + // + " " + ent.lastName() + " " + ent.suffix(); // txtFullName->setText( tmpString->simplifyWhiteSpace() ); - // Lastnames with multiple words need to be protected by a comma ! - if ( ent.lastName().contains( ' ', TRUE ) ) - txtFullName->setText( ent.lastName() + ", " + ent.firstName() + " " + ent.middleName() ); - else - txtFullName->setText( ent.firstName() + " " + ent.middleName() + " " + ent.lastName() ); + if ( !ent.isEmpty() ){ + // Lastnames with multiple words need to be protected by a comma ! + if ( ent.lastName().contains( ' ', TRUE ) ) + txtFullName->setText( ent.lastName() + ", " + ent.firstName() + " " + ent.middleName() ); + else + txtFullName->setText( ent.firstName() + " " + ent.middleName() + " " + ent.lastName() ); + } cmbFileAs->setEditText( ent.fileAs() ); // if (hasTitle) txtJobTitle->setText( ent.jobTitle() ); @@ -1422,20 +1424,12 @@ void ContactEditor::setEntry( const OContact &entry ) { cmbGender->setCurrentItem( gender.toInt() ); txtNote->setText( ent.notes() ); slotAddressTypeChange( cmbAddress->currentItem() ); - // Calling "show()" to arrange all widgets. Otherwise we will get - // a wrong position of the textfields and are unable to put our - // default-email combo over it.. This is very ugly ! - // Does anybody has a better solution ? - // Basically we should rethink the strategy to hide - // a textfield with overwriting.. (se) - show(); - // Get combo-settings from contact and set preset.. contactfields.loadFromRecord( ent ); cmbChooserField1->setCurrentItem( contactfields.getFieldOrder(0, 7) ); cmbChooserField2->setCurrentItem( contactfields.getFieldOrder(1, 9) ); cmbChooserField3->setCurrentItem( contactfields.getFieldOrder(2, 0) ); cmbChooserField4->setCurrentItem( contactfields.getFieldOrder(3, 6) ); @@ -1469,20 +1463,16 @@ void ContactEditor::updateDatePicker() void ContactEditor::saveEntry() { // Store current combo into contact contactfields.saveToRecord( ent ); - if ( useFullName ) { - txtFirstName->setText( parseName( txtFullName->text(), NAME_F ) ); - txtMiddleName->setText( parseName( txtFullName->text(), NAME_M ) ); - txtLastName->setText( parseName( txtFullName->text(), NAME_L ) ); - // txtSuffix->setText( parseName( txtFullName->text(), NAME_S ) ); - - useFullName = false; - } + txtFirstName->setText( parseName( txtFullName->text(), NAME_F ) ); + txtMiddleName->setText( parseName( txtFullName->text(), NAME_M ) ); + txtLastName->setText( parseName( txtFullName->text(), NAME_L ) ); + // txtSuffix->setText( parseName( txtFullName->text(), NAME_S ) ); ent.setFirstName( txtFirstName->text() ); ent.setLastName( txtLastName->text() ); ent.setMiddleName( txtMiddleName->text() ); ent.setSuffix( txtSuffix->text() ); diff --git a/core/pim/addressbook/contacteditor.h b/core/pim/addressbook/contacteditor.h index 954c77e..c6fa48f 100644 --- a/core/pim/addressbook/contacteditor.h +++ b/core/pim/addressbook/contacteditor.h @@ -30,16 +30,16 @@ #include <qmap.h> #include <qstringlist.h> #include <qwidgetstack.h> #include "ocontactfields.h" -const int NAME_LF = 0; +const int NAME_LF = 0; const int NAME_LFM = 1; -const int NAME_FL = 2; -const int NAME_FMLS = 3; +const int NAME_FL = 2; +const int NAME_FML = 3; const int NAME_F = 4; const int NAME_M = 5; const int NAME_L = 6; const int NAME_S = 7; @@ -112,14 +112,12 @@ class ContactEditor : public QDialog { int defaultEmailChooserPosition; void populateDefaultEmailCmb(); void chooserChange( const QString&, int , QLineEdit*, int ); bool cmbChooserChange( int , QWidgetStack*, int ); OContactFields contactfields; - bool useFullName; - OContact ent; QDialog *dlgNote; QDialog *dlgName; QList<QLineEdit> listValue; |