summaryrefslogtreecommitdiff
authortille <tille>2002-12-19 00:00:42 (UTC)
committer tille <tille>2002-12-19 00:00:42 (UTC)
commit4fc6648f5953d453a31edaf288480ff2458c431f (patch) (side-by-side diff)
treeaff033c63297fef4c37e561c7ce961ce3f15421f
parent7f98b97ff4b112ddc7025b34649a4ed331b37548 (diff)
downloadopie-4fc6648f5953d453a31edaf288480ff2458c431f.zip
opie-4fc6648f5953d453a31edaf288480ff2458c431f.tar.gz
opie-4fc6648f5953d453a31edaf288480ff2458c431f.tar.bz2
fix for email <-> default email bug
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/contacteditor.cpp57
-rw-r--r--core/pim/addressbook/contacteditor.h4
2 files changed, 44 insertions, 17 deletions
diff --git a/core/pim/addressbook/contacteditor.cpp b/core/pim/addressbook/contacteditor.cpp
index cc3908a..4e73114 100644
--- a/core/pim/addressbook/contacteditor.cpp
+++ b/core/pim/addressbook/contacteditor.cpp
@@ -55,10 +55,10 @@ static inline bool constainsWhiteSpace( const QString &str );
void parseEmailFrom( const QString &txt, QString &strDefaultEmail,
QString &strAll );
// helper convert from file format to comma delimited...
-//void parseEmailTo( const QString &strDefaultEmail,
-// const QString &strOtherEmail, QString &strBack );
+void parseEmailTo( const QString &strDefaultEmail,
+ const QString &strOtherEmail, QString &strBack );
ContactEditor::ContactEditor( const OContact &entry,
QWidget *parent,
const char *name,
@@ -77,9 +77,9 @@ ContactEditor::ContactEditor( const OContact &entry,
ContactEditor::~ContactEditor() {
}
void ContactEditor::init() {
-
+
useFullName = true;
uint i = 0;
@@ -595,10 +595,8 @@ void ContactEditor::init() {
connect( txtChooserField4, SIGNAL(textChanged(const QString &)),
this, SLOT(slotChooser4Change(const QString &)) );
connect( txtAddress, SIGNAL(textChanged(const QString &)),
this, SLOT(slotAddressChange(const QString &)) );
- //connect( txtAddress2, SIGNAL(textChanged(const QString &)), this, SLOT(slotAddress2Change(const QString &)) );
- //connect( txtPOBox, SIGNAL(textChanged(const QString &)), this, SLOT(slotPOBoxChange(const QString &)) );
connect( txtCity, SIGNAL(textChanged(const QString &)),
this, SLOT(slotCityChange(const QString &)) );
connect( txtState, SIGNAL(textChanged(const QString &)),
this, SLOT(slotStateChange(const QString &)) );
@@ -630,29 +628,45 @@ void ContactEditor::defaultEmailChanged(int i){
slChooserValues[index] = cmbDefaultEmail->text(i);
}
-void ContactEditor::chooserChange( const QString &textChanged, int index, QLineEdit *inputWid, int widgetPos ) {
+void ContactEditor::populateDefaultEmailCmb(){
+ cmbDefaultEmail->clear();
+ cmbDefaultEmail->insertStringList(emails);
+ for ( int i = 0; i < cmbDefaultEmail->count(); i++){
+ qDebug(" populateDefaultEmailCmb text >%s< defaultEmail >%s<",cmbDefaultEmail->text( i ).latin1(),defaultEmail.latin1());
+ if ( cmbDefaultEmail->text( i ).stripWhiteSpace() == defaultEmail.stripWhiteSpace() ){
+ cmbDefaultEmail->setCurrentItem( i );
+ qDebug("set");
+ }
+ }
+}
- qDebug("defaultEmailChooserPosition %i, widgetPos %i ",defaultEmailChooserPosition,widgetPos);
- if (slChooserNames[index] == "Default Email"){
+void ContactEditor::chooserChange( const QString &textChanged, int index, QLineEdit *inputWid, int widgetPos ) {
+ QString type = slChooserNames[index];
+ qDebug("ContactEditor::chooserChange( type=>%s<, textChanged=>%s< index=%i, widgetPos=%i",type.latin1(),textChanged.latin1(), index, widgetPos );
+ if ( type == "Default Email"){
+ defaultEmail = textChanged;
if (cmbDefaultEmail) delete cmbDefaultEmail;
cmbDefaultEmail = new QComboBox(inputWid->parentWidget());
- cmbDefaultEmail->setGeometry(inputWid->frameGeometry());
- cmbDefaultEmail->insertStringList(ent.emailList());
- connect(cmbDefaultEmail,SIGNAL(activated(int)),
- SLOT(defaultEmailChanged(int)));
- QString demail = ent.defaultEmail();
- for ( int i = 0; i < cmbDefaultEmail->count(); i++)
- if ( cmbDefaultEmail->text( i ) == demail )
- cmbDefaultEmail->setCurrentItem( i );
-
+ cmbDefaultEmail->setGeometry(inputWid->frameGeometry());
cmbDefaultEmail->show();
+ populateDefaultEmailCmb();
+ connect(cmbDefaultEmail,SIGNAL(activated(int)),
+ SLOT(defaultEmailChanged(int)));
defaultEmailChooserPosition = widgetPos;
}else if (defaultEmailChooserPosition == widgetPos){
qDebug("cmbDefaultEmail->hide()");
if (cmbDefaultEmail) cmbDefaultEmail->hide();
+ widgetPos=-1;
+ }else if (type == "Emails"){
+ qDebug("emails");
+ QString de;
+ emails = QStringList::split (",", textChanged );
+
+ populateDefaultEmailCmb();
}
+
slChooserValues[index] = textChanged;
@@ -738,8 +752,9 @@ void ContactEditor::slotCountryChange( const QString &textChanged ) {
slHomeAddress[6] = textChanged;
}
}
+
void ContactEditor::slotCmbChooser1Change( int index ) {
txtChooserField1->setText( slChooserValues[index] );
txtChooserField1->setFocus();
@@ -1059,8 +1074,9 @@ QString ContactEditor::parseName( const QString fullName, int type ) {
}
void ContactEditor::cleanupFields() {
QStringList::Iterator it = slChooserValues.begin();
+
for ( int i = 0; it != slChooserValues.end(); i++, ++it ) {
(*it) = "";
}
@@ -1101,8 +1117,15 @@ void ContactEditor::setEntry( const OContact &entry ) {
cleanupFields();
ent = 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() );
diff --git a/core/pim/addressbook/contacteditor.h b/core/pim/addressbook/contacteditor.h
index 63257f8..bcef679 100644
--- a/core/pim/addressbook/contacteditor.h
+++ b/core/pim/addressbook/contacteditor.h
@@ -103,9 +103,11 @@ class ContactEditor : public QDialog {
void defaultEmailChanged(int);
private:
int defaultEmailChooserPosition;
+ void populateDefaultEmailCmb();
void chooserChange( const QString&, int , QLineEdit*, int );
+
bool useFullName;
OContact ent;
@@ -123,8 +125,10 @@ class ContactEditor : public QDialog {
QStringList slHomeAddress;
QStringList slBusinessAddress;
QStringList slChooserNames;
QStringList slChooserValues;
+ QStringList emails;
+ QString defaultEmail;
QMultiLineEdit *txtNote;
QLabel *lblNote;