summaryrefslogtreecommitdiff
authorzecke <zecke>2002-05-21 14:21:25 (UTC)
committer zecke <zecke>2002-05-21 14:21:25 (UTC)
commit3eb1e88e5915c9dbd521a150cc5dd7eb7dbb3663 (patch) (unidiff)
tree59f3648e8a0848457f879058b1064017b9feca66
parent54955c2fd698b2a1cf3ba8a79f2612013c8eb2f0 (diff)
downloadopie-3eb1e88e5915c9dbd521a150cc5dd7eb7dbb3663.zip
opie-3eb1e88e5915c9dbd521a150cc5dd7eb7dbb3663.tar.gz
opie-3eb1e88e5915c9dbd521a150cc5dd7eb7dbb3663.tar.bz2
usbaility updates
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/addressbook.cpp21
-rw-r--r--core/pim/addressbook/contacteditor.cpp348
-rw-r--r--core/pim/addressbook/contacteditor.h18
3 files changed, 208 insertions, 179 deletions
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp
index beb953a..8229212 100644
--- a/core/pim/addressbook/addressbook.cpp
+++ b/core/pim/addressbook/addressbook.cpp
@@ -181,27 +181,27 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
181 // not to mention it also does the necessary stuff for the 181 // not to mention it also does the necessary stuff for the
182 // journaling... 182 // journaling...
183 QString str = addressbookXMLFilename(); 183 QString str = addressbookXMLFilename();
184 if ( str.isNull() ) { 184 if ( str.isNull() ) {
185 QMessageBox::warning( this, tr("Out of Space"), 185 QMessageBox::warning( this, tr("Out of Space"),
186 tr("There is not enough space to create\n" 186 tr("There is not enough space to create\n"
187 "neccessary startup files.\n" 187 "neccessary startup files.\n"
188 "\nFree up some space before\nentering data!") 188 "\nFree up some space before\nentering data!")
189 ); 189 );
190 } 190 }
191 191
192 listContainer = new QWidget( this ); 192 listContainer = new QWidget( this );
193 193
194 QVBoxLayout *vb = new QVBoxLayout( listContainer ); 194 QVBoxLayout *vb = new QVBoxLayout( listContainer );
195 195
196 abList = new AbTable( &orderedFields, listContainer, "table" ); 196 abList = new AbTable( &orderedFields, listContainer, "table" );
197 vb->addWidget(abList); 197 vb->addWidget(abList);
198 abList->setHScrollBarMode( QScrollView::AlwaysOff ); 198 abList->setHScrollBarMode( QScrollView::AlwaysOff );
199 connect( abList, SIGNAL( empty( bool ) ), 199 connect( abList, SIGNAL( empty( bool ) ),
200 this, SLOT( listIsEmpty( bool ) ) ); 200 this, SLOT( listIsEmpty( bool ) ) );
201 connect( abList, SIGNAL( details() ), 201 connect( abList, SIGNAL( details() ),
202 this, SLOT( slotListView() ) ); 202 this, SLOT( slotListView() ) );
203 connect( abList, SIGNAL(currentChanged(int,int)), 203 connect( abList, SIGNAL(currentChanged(int,int)),
204 this, SLOT(slotUpdateToolbar()) ); 204 this, SLOT(slotUpdateToolbar()) );
205 205
206 mView = 0; 206 mView = 0;
207 207
@@ -224,39 +224,39 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
224 224
225 fontMenu = new QPopupMenu(this); 225 fontMenu = new QPopupMenu(this);
226 fontMenu->setCheckable( true ); 226 fontMenu->setCheckable( true );
227 connect( fontMenu, SIGNAL(activated(int)), this, SLOT(slotSetFont(int))); 227 connect( fontMenu, SIGNAL(activated(int)), this, SLOT(slotSetFont(int)));
228 228
229 fontMenu->insertItem(tr( "Small" ), 0); 229 fontMenu->insertItem(tr( "Small" ), 0);
230 fontMenu->insertItem(tr( "Normal" ), 1); 230 fontMenu->insertItem(tr( "Normal" ), 1);
231 fontMenu->insertItem(tr( "Large" ), 2); 231 fontMenu->insertItem(tr( "Large" ), 2);
232 232
233 defaultFont = new QFont( abList->font() ); 233 defaultFont = new QFont( abList->font() );
234 234
235 slotSetFont(startFontSize); 235 slotSetFont(startFontSize);
236 236
237 mbList->insertItem( tr("Font"), fontMenu); 237 mbList->insertItem( tr("Font"), fontMenu);
238 setCentralWidget(listContainer); 238 setCentralWidget(listContainer);
239 239
240 // qDebug("adressbook contrsuction: t=%d", t.elapsed() ); 240 // qDebug("adressbook contrsuction: t=%d", t.elapsed() );
241} 241}
242void AddressbookWindow::slotSetFont( int size ) { 242void AddressbookWindow::slotSetFont( int size ) {
243 243
244 if (size > 2 || size < 0) 244 if (size > 2 || size < 0)
245 size = 1; 245 size = 1;
246 246
247 startFontSize = size; 247 startFontSize = size;
248 248
249 QFont *currentFont; 249 QFont *currentFont;
250 250
251 switch (size) { 251 switch (size) {
252 case 0: 252 case 0:
253 fontMenu->setItemChecked(0, true); 253 fontMenu->setItemChecked(0, true);
254 fontMenu->setItemChecked(1, false); 254 fontMenu->setItemChecked(1, false);
255 fontMenu->setItemChecked(2, false); 255 fontMenu->setItemChecked(2, false);
256 abList->setFont( QFont( defaultFont->family(), defaultFont->pointSize() - 2 ) ); 256 abList->setFont( QFont( defaultFont->family(), defaultFont->pointSize() - 2 ) );
257 currentFont = new QFont (abList->font()); 257 currentFont = new QFont (abList->font());
258 abList->resizeRows(currentFont->pixelSize() + 7); 258 abList->resizeRows(currentFont->pixelSize() + 7);
259 break; 259 break;
260 case 1: 260 case 1:
261 fontMenu->setItemChecked(0, false); 261 fontMenu->setItemChecked(0, false);
262 fontMenu->setItemChecked(1, true); 262 fontMenu->setItemChecked(1, true);
@@ -462,25 +462,25 @@ static void parseName( const QString& name, QString *first, QString *middle,
462 } else { 462 } else {
463 int space = name.findRev( ' ' ); 463 int space = name.findRev( ' ' );
464 *last = name.mid( space+1 ); 464 *last = name.mid( space+1 );
465 rest = name.left( space ); 465 rest = name.left( space );
466 } 466 }
467 int space = rest.find( ' ' ); 467 int space = rest.find( ' ' );
468 if ( space <= 0 ) { 468 if ( space <= 0 ) {
469 *first = rest; 469 *first = rest;
470 } else { 470 } else {
471 *first = rest.left( space ); 471 *first = rest.left( space );
472 *middle = rest.mid( space+1 ); 472 *middle = rest.mid( space+1 );
473 } 473 }
474 474
475} 475}
476 476
477 477
478void AddressbookWindow::appMessage(const QCString &msg, const QByteArray &data) 478void AddressbookWindow::appMessage(const QCString &msg, const QByteArray &data)
479{ 479{
480 if (msg == "editPersonal()") { 480 if (msg == "editPersonal()") {
481 editPersonal(); 481 editPersonal();
482 } else if (msg == "editPersonalAndClose()") { 482 } else if (msg == "editPersonalAndClose()") {
483 editPersonal(); 483 editPersonal();
484 close(); 484 close();
485 } else if ( msg == "addContact(QString,QString)" ) { 485 } else if ( msg == "addContact(QString,QString)" ) {
486 QDataStream stream(data,IO_ReadOnly); 486 QDataStream stream(data,IO_ReadOnly);
@@ -494,25 +494,25 @@ void AddressbookWindow::appMessage(const QCString &msg, const QByteArray &data)
494 cnt.setFirstName( fn ); 494 cnt.setFirstName( fn );
495 cnt.setMiddleName( mn ); 495 cnt.setMiddleName( mn );
496 cnt.setLastName( ln ); 496 cnt.setLastName( ln );
497 cnt.setEmails( email ); 497 cnt.setEmails( email );
498 cnt.setDefaultEmail( email ); 498 cnt.setDefaultEmail( email );
499 cnt.setFileAs(); 499 cnt.setFileAs();
500 500
501 if ( bAbEditFirstTime ) { 501 if ( bAbEditFirstTime ) {
502 abEditor = new ContactEditor( cnt, &orderedFields, &slOrderedFields, 502 abEditor = new ContactEditor( cnt, &orderedFields, &slOrderedFields,
503 this, "editor" ); 503 this, "editor" );
504 bAbEditFirstTime = FALSE; 504 bAbEditFirstTime = FALSE;
505 } else { 505 } else {
506 abEditor->setEntry( cnt ); 506 abEditor->setEntry( cnt );
507 } 507 }
508 abView()->init( cnt ); 508 abView()->init( cnt );
509 editEntry( NewEntry ); 509 editEntry( NewEntry );
510 510
511 511
512 512
513 } 513 }
514#if 0 514#if 0
515 else if (msg == "pickAddresses(QCString,QCString,QStringList,...)" ) { 515 else if (msg == "pickAddresses(QCString,QCString,QStringList,...)" ) {
516 QDataStream stream(data,IO_ReadOnly); 516 QDataStream stream(data,IO_ReadOnly);
517 QCString ch,m; 517 QCString ch,m;
518 QStringList types; 518 QStringList types;
@@ -785,25 +785,25 @@ void AddressbookWindow::initFields()
785 785
786 zn = cfg.readEntry( "Category" + QString::number(i), QString::null ); 786 zn = cfg.readEntry( "Category" + QString::number(i), QString::null );
787 while ( !zn.isNull() ) { 787 while ( !zn.isNull() ) {
788 if ( zn.contains( tr("Work") ) || zn.contains( tr("Mb") ) ) { 788 if ( zn.contains( tr("Work") ) || zn.contains( tr("Mb") ) ) {
789 slOrderedFields.clear(); 789 slOrderedFields.clear();
790 break; 790 break;
791 } 791 }
792 slOrderedFields.append( zn ); 792 slOrderedFields.append( zn );
793 zn = cfg.readEntry( "Category" + QString::number(++i), QString::null ); 793 zn = cfg.readEntry( "Category" + QString::number(++i), QString::null );
794 } 794 }
795 cfg.setGroup( "Font" ); 795 cfg.setGroup( "Font" );
796 startFontSize = cfg.readNumEntry( "fontSize", 1 ); 796 startFontSize = cfg.readNumEntry( "fontSize", 1 );
797 797
798 798
799 } else { 799 } else {
800 QString str; 800 QString str;
801 str = getenv("HOME"); 801 str = getenv("HOME");
802 str += "/Settings/AddressBook.conf"; 802 str += "/Settings/AddressBook.conf";
803 QFile::remove( str ); 803 QFile::remove( str );
804 } 804 }
805 if ( slOrderedFields.count() > 0 ) { 805 if ( slOrderedFields.count() > 0 ) {
806 for( QStringList::ConstIterator it = slOrderedFields.begin(); 806 for( QStringList::ConstIterator it = slOrderedFields.begin();
807 it != slOrderedFields.end(); ++it ) { 807 it != slOrderedFields.end(); ++it ) {
808 QValueList<int>::ConstIterator itVl; 808 QValueList<int>::ConstIterator itVl;
809 QStringList::ConstIterator itVis; 809 QStringList::ConstIterator itVis;
@@ -850,32 +850,32 @@ AbLabel *AddressbookWindow::abView()
850 mView = new AbLabel( this, "viewer" ); 850 mView = new AbLabel( this, "viewer" );
851 mView->init( Contact() ); 851 mView->init( Contact() );
852 connect( mView, SIGNAL( okPressed() ), this, SLOT( slotListView() ) ); 852 connect( mView, SIGNAL( okPressed() ), this, SLOT( slotListView() ) );
853 } 853 }
854 return mView; 854 return mView;
855} 855}
856 856
857void AddressbookWindow::slotFind() 857void AddressbookWindow::slotFind()
858{ 858{
859#ifndef MAKE_FOR_SHARP_ROM 859#ifndef MAKE_FOR_SHARP_ROM
860 if ( centralWidget() == abView() ) 860 if ( centralWidget() == abView() )
861 showList(); 861 showList();
862 862
863 FindDialog frmFind( "Contacts", this ); 863 FindDialog frmFind( "Contacts", this );
864 QObject::connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)), abList, SLOT(slotDoFind( const QString&,bool,bool,int))); 864 QObject::connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)), abList, SLOT(slotDoFind( const QString&,bool,bool,int)));
865 QObject::connect( abList, SIGNAL(signalNotFound()), &frmFind, SLOT(slotNotFound()) ); 865 QObject::connect( abList, SIGNAL(signalNotFound()), &frmFind, SLOT(slotNotFound()) );
866 QObject::connect( abList, SIGNAL(signalWrapAround()), &frmFind, SLOT(slotWrapAround()) ); 866 QObject::connect( abList, SIGNAL(signalWrapAround()), &frmFind, SLOT(slotWrapAround()) );
867 867
868 frmFind.exec(); 868 frmFind.exec();
869 869
870 if ( abList->numSelections() ) 870 if ( abList->numSelections() )
871 abList->clearSelection(); 871 abList->clearSelection();
872 872
873 abList->clearFindRow(); 873 abList->clearFindRow();
874#endif 874#endif
875} 875}
876 876
877void AddressbookWindow::slotSetCategory( int c ) 877void AddressbookWindow::slotSetCategory( int c )
878{ 878{
879 if ( c <= 0 ) 879 if ( c <= 0 )
880 return; 880 return;
881 for ( unsigned int i = 1; i < catMenu->count(); i++ ) 881 for ( unsigned int i = 1; i < catMenu->count(); i++ )
@@ -897,24 +897,25 @@ void AddressbookWindow::slotSetLetter( char c ) {
897 897
898 abList->setShowByLetter( c ); 898 abList->setShowByLetter( c );
899 899
900} 900}
901 901
902void AddressbookWindow::populateCategories() 902void AddressbookWindow::populateCategories()
903{ 903{
904 catMenu->clear(); 904 catMenu->clear();
905 905
906 int id, 906 int id,
907 rememberId; 907 rememberId;
908 id = 1; 908 id = 1;
909 rememberId = 0;
909 catMenu->insertItem( tr( "All" ), id++ ); 910 catMenu->insertItem( tr( "All" ), id++ );
910 QStringList categories = abList->categories(); 911 QStringList categories = abList->categories();
911 categories.append( tr( "Unfiled" ) ); 912 categories.append( tr( "Unfiled" ) );
912 for ( QStringList::Iterator it = categories.begin(); 913 for ( QStringList::Iterator it = categories.begin();
913 it != categories.end(); ++it ) { 914 it != categories.end(); ++it ) {
914 catMenu->insertItem( *it, id ); 915 catMenu->insertItem( *it, id );
915 if ( *it == abList->showCategory() ) 916 if ( *it == abList->showCategory() )
916 rememberId = id; 917 rememberId = id;
917 ++id; 918 ++id;
918 } 919 }
919 if ( abList->showCategory().isEmpty() ) 920 if ( abList->showCategory().isEmpty() )
920 slotSetCategory( 1 ); 921 slotSetCategory( 1 );
diff --git a/core/pim/addressbook/contacteditor.cpp b/core/pim/addressbook/contacteditor.cpp
index e74da87..fa60f98 100644
--- a/core/pim/addressbook/contacteditor.cpp
+++ b/core/pim/addressbook/contacteditor.cpp
@@ -48,238 +48,238 @@ void parseEmailFrom( const QString &txt, QString &strDefaultEmail,
48// helper convert from file format to comma delimited... 48// helper convert from file format to comma delimited...
49void parseEmailTo( const QString &strDefaultEmail, 49void parseEmailTo( const QString &strDefaultEmail,
50 const QString &strOtherEmail, QString &strBack ); 50 const QString &strOtherEmail, QString &strBack );
51 51
52 ContactEditor::ContactEditor(const Contact &entry, 52 ContactEditor::ContactEditor(const Contact &entry,
53 const QValueList<int> *newOrderedValues, 53 const QValueList<int> *newOrderedValues,
54 QStringList *slNewOrdered, 54 QStringList *slNewOrdered,
55 QWidget *parent, 55 QWidget *parent,
56 const char *name, 56 const char *name,
57 WFlags fl ) 57 WFlags fl )
58 : QDialog( parent, name, TRUE, fl ), 58 : QDialog( parent, name, TRUE, fl ),
59 orderedValues( newOrderedValues ), 59 orderedValues( newOrderedValues ),
60 slOrdered( slNewOrdered ) 60 slOrdered( *slNewOrdered )
61{ 61{
62 62
63 init(); 63 init();
64 initMap(); 64 initMap();
65 setEntry( entry ); 65 setEntry( entry );
66 qDebug("finish"); 66 qDebug("finish");
67} 67}
68 68
69ContactEditor::~ContactEditor() { 69ContactEditor::~ContactEditor() {
70} 70}
71 71
72void ContactEditor::init() { 72void ContactEditor::init() {
73 73
74 useFullName = TRUE; 74 useFullName = TRUE;
75 75
76 int i = 0; 76 int i = 0;
77 77/** SHut up and stop leaking
78 slHomeAddress = new QStringList; 78 slHomeAddress = new QStringList;
79 slBusinessAddress = new QStringList; 79 slBusinessAddress = new QStringList;
80 slChooserNames = new QStringList; 80 slChooserNames = new QStringList;
81 slChooserValues = new QStringList; 81 slChooserValues = new QStringList;
82 82
83 slDynamicEntries = new QStringList; 83 slDynamicEntries = new QStringList;
84 84*/
85 //*slDynamicEntries = *slOrdered; 85 //*slDynamicEntries = *slOrdered;
86 86
87 for (i = 0; i <= 6; i++) { 87 for (i = 0; i <= 6; i++) {
88 slHomeAddress->append( "" ); 88 slHomeAddress.append( "" );
89 slBusinessAddress->append( "" ); 89 slBusinessAddress.append( "" );
90 } 90 }
91 91
92 { 92 {
93 hasGender = FALSE; 93 hasGender = FALSE;
94 hasTitle = FALSE; 94 hasTitle = FALSE;
95 hasCompany = FALSE; 95 hasCompany = FALSE;
96 hasNotes = FALSE; 96 hasNotes = FALSE;
97 hasStreet = FALSE; 97 hasStreet = FALSE;
98 hasStreet2 = FALSE; 98 hasStreet2 = FALSE;
99 hasPOBox = FALSE; 99 hasPOBox = FALSE;
100 hasCity = FALSE; 100 hasCity = FALSE;
101 hasState = FALSE; 101 hasState = FALSE;
102 hasZip = FALSE; 102 hasZip = FALSE;
103 hasCountry = FALSE; 103 hasCountry = FALSE;
104 104
105 QStringList::ConstIterator it = slOrdered->begin(); 105 QStringList::ConstIterator it = slOrdered.begin();
106 for ( i = 0; it != slOrdered->end(); i++, ++it ) { 106 for ( i = 0; it != slOrdered.end(); i++, ++it ) {
107 107
108 if ( (*it).right( 3 ) == tr( "Fax" ) ) { 108 if ( (*it).right( 3 ) == tr( "Fax" ) ) {
109 slChooserNames->append( *it ); 109 slChooserNames.append( *it );
110 slChooserValues->append( tr( "" ) ); 110 slChooserValues.append("" );
111 //slDynamicEntries->remove( it ); 111 //slDynamicEntries->remove( it );
112 continue; 112 continue;
113 } 113 }
114 114
115 if ( (*it).right( 5 ) == tr( "Phone" ) ) { 115 if ( (*it).right( 5 ) == tr( "Phone" ) ) {
116 slChooserNames->append( *it ); 116 slChooserNames.append( *it );
117 slChooserValues->append( "" ); 117 slChooserValues.append( "" );
118 //slDynamicEntries->remove( it ); 118 //slDynamicEntries->remove( it );
119 continue; 119 continue;
120 } 120 }
121 121
122 if ( (*it).right( 2 ) == tr( "IM" ) ) { 122 if ( (*it).right( 2 ) == tr( "IM" ) ) {
123 slChooserNames->append( *it ); 123 slChooserNames.append( *it );
124 slChooserValues->append( "" ); 124 slChooserValues.append( "" );
125 //slDynamicEntries->remove( it ); 125 //slDynamicEntries->remove( it );
126 continue; 126 continue;
127 } 127 }
128 128
129 if ( (*it).right( 6 ) == tr( "Mobile" ) ) { 129 if ( (*it).right( 6 ) == tr( "Mobile" ) ) {
130 slChooserNames->append( *it ); 130 slChooserNames.append( *it );
131 slChooserValues->append( "" ); 131 slChooserValues.append( "" );
132 //slDynamicEntries->remove( it ); 132 //slDynamicEntries->remove( it );
133 continue; 133 continue;
134 } 134 }
135 135
136 if ( (*it).right( 4 ) == tr( "Page" ) ) { 136 if ( (*it).right( 4 ) == tr( "Page" ) ) {
137 slChooserNames->append( *it ); 137 slChooserNames.append( *it );
138 slChooserValues->append( "" ); 138 slChooserValues.append( "" );
139 //slDynamicEntries->remove( it ); 139 //slDynamicEntries->remove( it );
140 continue; 140 continue;
141 } 141 }
142 142
143 if ( (*it).right( 5 ) == tr( "Pager" ) ) { 143 if ( (*it).right( 5 ) == tr( "Pager" ) ) {
144 slChooserNames->append( *it ); 144 slChooserNames.append( *it );
145 slChooserValues->append( "" ); 145 slChooserValues.append( "" );
146 //slDynamicEntries->remove( it ); 146 //slDynamicEntries->remove( it );
147 continue; 147 continue;
148 } 148 }
149 149
150 if ( *it == tr( "Default Email" ) ) { 150 if ( *it == tr( "Default Email" ) ) {
151 slChooserNames->append( *it ); 151 slChooserNames.append( *it );
152 slChooserValues->append( "" ); 152 slChooserValues.append( "" );
153 //slDynamicEntries->remove( it ); 153 //slDynamicEntries->remove( it );
154 continue; 154 continue;
155 } 155 }
156 156
157 if ( *it == tr( "Emails" ) ) { 157 if ( *it == tr( "Emails" ) ) {
158 slChooserNames->append( *it ); 158 slChooserNames.append( *it );
159 slChooserValues->append( "" ); 159 slChooserValues.append( "" );
160 //slDynamicEntries->remove( it ); 160 //slDynamicEntries->remove( it );
161 continue; 161 continue;
162 } 162 }
163 163
164 if ( *it == tr( "Name Title" ) ) { 164 if ( *it == tr( "Name Title" ) ) {
165 //slDynamicEntries->remove( it ); 165 //slDynamicEntries->remove( it );
166 continue; 166 continue;
167 } 167 }
168 168
169 if ( *it == tr( "First Name" ) ) { 169 if ( *it == tr( "First Name" ) ) {
170 //slDynamicEntries->remove( it ); 170 //slDynamicEntries->remove( it );
171 continue; 171 continue;
172 } 172 }
173 173
174 if ( *it == tr( "Middle Name" ) ) { 174 if ( *it == tr( "Middle Name" ) ) {
175 //slDynamicEntries->remove( it ); 175 //slDynamicEntries->remove( it );
176 continue; 176 continue;
177 } 177 }
178 178
179 if ( *it == tr( "Last Name" ) ) { 179 if ( *it == tr( "Last Name" ) ) {
180 //slDynamicEntries->remove( it ); 180 //slDynamicEntries->remove( it );
181 continue; 181 continue;
182 } 182 }
183 183
184 if ( *it == tr( "Suffix" ) ) { 184 if ( *it == tr( "Suffix" ) ) {
185 //slDynamicEntries->remove( it ); 185 //slDynamicEntries->remove( it );
186 continue; 186 continue;
187 } 187 }
188 188
189 if ( *it == tr( "File As" ) ) { 189 if ( *it == tr( "File As" ) ) {
190 //slDynamicEntries->remove( it ); 190 //slDynamicEntries->remove( it );
191 continue; 191 continue;
192 } 192 }
193 193
194 if ( *it == tr( "Gender" ) ) { 194 if ( *it == tr( "Gender" ) ) {
195 hasGender = TRUE; 195 hasGender = TRUE;
196 //slDynamicEntries->remove( it ); 196 //slDynamicEntries->remove( it );
197 continue; 197 continue;
198 } 198 }
199 199
200 if ( *it == tr( "Job Title" ) ) { 200 if ( *it == tr( "Job Title" ) ) {
201 hasTitle = TRUE; 201 hasTitle = TRUE;
202 //slDynamicEntries->remove( it ); 202 //slDynamicEntries->remove( it );
203 continue; 203 continue;
204 } 204 }
205 205
206 if ( *it == tr( "Company" ) ) { 206 if ( *it == tr( "Company" ) ) {
207 hasCompany = TRUE; 207 hasCompany = TRUE;
208 //slDynamicEntries->remove( it ); 208 //slDynamicEntries->remove( it );
209 continue; 209 continue;
210 } 210 }
211 211
212 if ( *it == tr( "Notes" ) ) { 212 if ( *it == tr( "Notes" ) ) {
213 hasNotes = TRUE; 213 hasNotes = TRUE;
214 //slDynamicEntries->remove( it ); 214 //slDynamicEntries->remove( it );
215 continue; 215 continue;
216 } 216 }
217 217
218 if ( *it == tr( "Groups" ) ) { 218 if ( *it == tr( "Groups" ) ) {
219 //slDynamicEntries->remove( it ); 219 //slDynamicEntries->remove( it );
220 continue; 220 continue;
221 } 221 }
222 222
223 if ( (*it).right( 6 ) == tr( "Street" ) ) { 223 if ( (*it).right( 6 ) == tr( "Street" ) ) {
224 hasStreet = TRUE; 224 hasStreet = TRUE;
225 //slDynamicEntries->remove( it ); 225 //slDynamicEntries->remove( it );
226 continue; 226 continue;
227 } 227 }
228 228
229 if ( (*it).right( 8 ) == tr( "Street 2" ) ) { 229 if ( (*it).right( 8 ) == tr( "Street 2" ) ) {
230 hasStreet2 = TRUE; 230 hasStreet2 = TRUE;
231 //slDynamicEntries->remove( it ); 231 //slDynamicEntries->remove( it );
232 continue; 232 continue;
233 } 233 }
234 234
235 if ( (*it).right( 8 ) == tr( "P.O. Box" ) ) { 235 if ( (*it).right( 8 ) == tr( "P.O. Box" ) ) {
236 hasPOBox = TRUE; 236 hasPOBox = TRUE;
237 //slDynamicEntries->remove( it ); 237 //slDynamicEntries->remove( it );
238 continue; 238 continue;
239 } 239 }
240 240
241 if ( (*it).right( 4 ) == tr( "City" ) ) { 241 if ( (*it).right( 4 ) == tr( "City" ) ) {
242 hasCity = TRUE; 242 hasCity = TRUE;
243 //slDynamicEntries->remove( it ); 243 //slDynamicEntries->remove( it );
244 continue; 244 continue;
245 } 245 }
246 246
247 if ( (*it).right( 5 ) == tr( "State" ) ) { 247 if ( (*it).right( 5 ) == tr( "State" ) ) {
248 hasState = TRUE; 248 hasState = TRUE;
249 //slDynamicEntries->remove( it ); 249 //slDynamicEntries->remove( it );
250 continue; 250 continue;
251 } 251 }
252 252
253 if ( (*it).right( 3 ) == tr( "Zip" ) ) { 253 if ( (*it).right( 3 ) == tr( "Zip" ) ) {
254 hasZip = TRUE; 254 hasZip = TRUE;
255 //slDynamicEntries->remove( it ); 255 //slDynamicEntries->remove( it );
256 continue; 256 continue;
257 } 257 }
258 258
259 if ( (*it).right( 7 ) == tr( "Country" ) ) { 259 if ( (*it).right( 7 ) == tr( "Country" ) ) {
260 hasCountry = TRUE; 260 hasCountry = TRUE;
261 //slDynamicEntries->remove( it ); 261 //slDynamicEntries->remove( it );
262 continue; 262 continue;
263 } 263 }
264 264
265 slDynamicEntries->append( *it ); 265 slDynamicEntries.append( *it );
266 } 266 }
267 } 267 }
268 268
269 QVBoxLayout *vb = new QVBoxLayout( this ); 269 QVBoxLayout *vb = new QVBoxLayout( this );
270 270
271 tabMain = new QTabWidget( this ); 271 tabMain = new QTabWidget( this );
272 vb->addWidget( tabMain ); 272 vb->addWidget( tabMain );
273 273
274 QWidget *tabViewport = new QWidget ( tabMain ); 274 QWidget *tabViewport = new QWidget ( tabMain );
275 275
276 vb = new QVBoxLayout( tabViewport ); 276 vb = new QVBoxLayout( tabViewport );
277 277
278 svGeneral = new QScrollView( tabViewport ); 278 svGeneral = new QScrollView( tabViewport );
279 vb->addWidget( svGeneral, 0, 0 ); 279 vb->addWidget( svGeneral, 0, 0 );
280 svGeneral->setResizePolicy( QScrollView::AutoOneFit ); 280 svGeneral->setResizePolicy( QScrollView::AutoOneFit );
281 svGeneral->setFrameStyle( QFrame::NoFrame ); 281 svGeneral->setFrameStyle( QFrame::NoFrame );
282 282
283 QWidget *container = new QWidget( svGeneral->viewport() ); 283 QWidget *container = new QWidget( svGeneral->viewport() );
284 svGeneral->addChild( container ); 284 svGeneral->addChild( container );
285 285
@@ -337,39 +337,39 @@ void ContactEditor::init() {
337 tabViewport = new QWidget ( tabMain ); 337 tabViewport = new QWidget ( tabMain );
338 338
339 vb = new QVBoxLayout( tabViewport ); 339 vb = new QVBoxLayout( tabViewport );
340 340
341 svAddress = new QScrollView( tabViewport ); 341 svAddress = new QScrollView( tabViewport );
342 vb->addWidget( svAddress, 0, 0 ); 342 vb->addWidget( svAddress, 0, 0 );
343 svAddress->setResizePolicy( QScrollView::AutoOneFit ); 343 svAddress->setResizePolicy( QScrollView::AutoOneFit );
344 svAddress->setFrameStyle( QFrame::NoFrame ); 344 svAddress->setFrameStyle( QFrame::NoFrame );
345 345
346 container = new QWidget( svAddress->viewport() ); 346 container = new QWidget( svAddress->viewport() );
347 svAddress->addChild( container ); 347 svAddress->addChild( container );
348 348
349 gl = new QGridLayout( container, 6, 3, 2, 4 ); 349 gl = new QGridLayout( container, 8, 3, 2, 4 ); // row 7 QSpacerItem
350 350
351 cmbAddress = new QComboBox( FALSE, container ); 351 cmbAddress = new QComboBox( FALSE, container );
352 cmbAddress->insertItem( tr( "Business" ) ); 352 cmbAddress->insertItem( tr( "Business" ) );
353 cmbAddress->insertItem( tr( "Home" ) ); 353 cmbAddress->insertItem( tr( "Home" ) );
354 gl->addMultiCellWidget( cmbAddress, 0, 0, 0, 1 ); 354 gl->addMultiCellWidget( cmbAddress, 0, 0, 0, 1 );
355 355
356 l = new QLabel( tr( "Address" ), container ); 356 l = new QLabel( tr( "Address" ), container );
357 gl->addWidget( l, 1, 0 ); 357 gl->addWidget( l, 1, 0 );
358 txtAddress = new QLineEdit( container ); 358 txtAddress = new QLineEdit( container );
359 gl->addMultiCellWidget( txtAddress, 1, 1, 1, 2 ); 359 gl->addMultiCellWidget( txtAddress, 1, 1, 1, 2 );
360/* 360/*
361 l = new QLabel( tr( "Address 2" ), container ); 361 l = new QLabel( tr( "Address 2" ), container );
362 gl->addWidget( l, 2, 0 ); 362 gl->addWidget( l, 2, 0 );
363 txtAddress2 = new QLineEdit( container ); 363 txtAddress2 = new QLineEdit( container );
364 gl->addMultiCellWidget( txtAddress2, 2, 2, 1, 2 ); 364 gl->addMultiCellWidget( txtAddress2, 2, 2, 1, 2 );
365 365
366 l = new QLabel( tr( "P.O. Box" ), container ); 366 l = new QLabel( tr( "P.O. Box" ), container );
367 gl->addWidget( l, 3, 0 ); 367 gl->addWidget( l, 3, 0 );
368 txtPOBox = new QLineEdit( container ); 368 txtPOBox = new QLineEdit( container );
369 gl->addMultiCellWidget( txtPOBox, 3, 3, 1, 2 ); 369 gl->addMultiCellWidget( txtPOBox, 3, 3, 1, 2 );
370*/ 370*/
371 l = new QLabel( tr( "City" ), container ); 371 l = new QLabel( tr( "City" ), container );
372 gl->addWidget( l, 2, 0 ); 372 gl->addWidget( l, 2, 0 );
373 txtCity = new QLineEdit( container ); 373 txtCity = new QLineEdit( container );
374 gl->addMultiCellWidget( txtCity, 2, 2, 1, 2 ); 374 gl->addMultiCellWidget( txtCity, 2, 2, 1, 2 );
375 375
@@ -598,121 +598,147 @@ void ContactEditor::init() {
598 cmbCountry->insertItem( tr ( "Zambia" ) ); 598 cmbCountry->insertItem( tr ( "Zambia" ) );
599 cmbCountry->insertItem( tr ( "Zimbabwe" ) ); 599 cmbCountry->insertItem( tr ( "Zimbabwe" ) );
600 600
601 cmbCountry->setMaximumWidth( 135 ); 601 cmbCountry->setMaximumWidth( 135 );
602 602
603 gl->addMultiCellWidget( cmbCountry, 5, 5, 1, 2 ); 603 gl->addMultiCellWidget( cmbCountry, 5, 5, 1, 2 );
604 604
605 cmbChooserField4 = new QComboBox( FALSE, container ); 605 cmbChooserField4 = new QComboBox( FALSE, container );
606 cmbChooserField4->setMaximumWidth( 90 ); 606 cmbChooserField4->setMaximumWidth( 90 );
607 gl->addWidget( cmbChooserField4, 6, 0 ); 607 gl->addWidget( cmbChooserField4, 6, 0 );
608 txtChooserField4 = new QLineEdit( container ); 608 txtChooserField4 = new QLineEdit( container );
609 gl->addMultiCellWidget( txtChooserField4, 6, 6, 1, 2 ); 609 gl->addMultiCellWidget( txtChooserField4, 6, 6, 1, 2 );
610
611 QSpacerItem *space = new QSpacerItem(1,1,
612 QSizePolicy::Maximum,
613 QSizePolicy::MinimumExpanding );
614 gl->addItem( space, 7, 0 );
615
610 tabMain->insertTab( tabViewport, tr( "Address" ) ); 616 tabMain->insertTab( tabViewport, tr( "Address" ) );
611 617
612 tabViewport = new QWidget ( tabMain ); 618 tabViewport = new QWidget ( tabMain );
613 619
614 vb = new QVBoxLayout( tabViewport ); 620 vb = new QVBoxLayout( tabViewport );
615 621
616 svDetails = new QScrollView( tabViewport ); 622 svDetails = new QScrollView( tabViewport );
617 vb->addWidget( svDetails, 0, 0 ); 623 vb->addWidget( svDetails, 0, 0 );
618 svDetails->setResizePolicy( QScrollView::AutoOneFit ); 624 svDetails->setResizePolicy( QScrollView::AutoOneFit );
619 svDetails->setFrameStyle( QFrame::NoFrame ); 625 svDetails->setFrameStyle( QFrame::NoFrame );
620 626
621 container = new QWidget( svDetails->viewport() ); 627 container = new QWidget( svDetails->viewport() );
622 svDetails->addChild( container ); 628 svDetails->addChild( container );
623 629
624 gl = new QGridLayout( container, 1, 2, 2, 4 ); 630 gl = new QGridLayout( container, 1, 2, 2, 4 );
625 631
626 QStringList::ConstIterator it = slDynamicEntries->begin(); 632 QStringList::ConstIterator it = slDynamicEntries.begin();
627 for (i = 0; it != slDynamicEntries->end(); i++, ++it) { 633 for (i = 0; it != slDynamicEntries.end(); i++, ++it) {
628 l = new QLabel( *it, container ); 634 l = new QLabel( *it, container );
629 listName.append( l ); 635 listName.append( l );
630 gl->addWidget( l, i, 0 ); 636 gl->addWidget( l, i, 0 );
631 QLineEdit *e = new QLineEdit( container ); 637 QLineEdit *e = new QLineEdit( container );
632 listValue.append( e ); 638 listValue.append( e );
633 gl->addWidget( e, i, 1); 639 gl->addWidget( e, i, 1);
634 } 640 }
635 641
636 l = new QLabel( tr("Gender"), container ); 642 l = new QLabel( tr("Gender"), container );
637 gl->addWidget( l, slDynamicEntries->count(), 0 ); 643 gl->addWidget( l, slDynamicEntries.count(), 0 );
638 cmbGender = new QComboBox( container ); 644 cmbGender = new QComboBox( container );
639 cmbGender->insertItem( "", 0 ); 645 cmbGender->insertItem( "", 0 );
640 cmbGender->insertItem( tr("Male"), 1); 646 cmbGender->insertItem( tr("Male"), 1);
641 cmbGender->insertItem( tr("Female"), 2); 647 cmbGender->insertItem( tr("Female"), 2);
642 gl->addWidget( cmbGender, slDynamicEntries->count(), 1 ); 648 gl->addWidget( cmbGender, slDynamicEntries.count(), 1 );
643 649
644 tabMain->insertTab( tabViewport, tr( "Details" ) ); 650 tabMain->insertTab( tabViewport, tr( "Details" ) );
645 651
646 dlgNote = new QDialog( this, "Note Dialog", TRUE ); 652 dlgNote = new QDialog( this, "Note Dialog", TRUE );
647 dlgNote->setCaption( tr("Enter Note") ); 653 dlgNote->setCaption( tr("Enter Note") );
648 QVBoxLayout *vbNote = new QVBoxLayout( dlgNote ); 654 QVBoxLayout *vbNote = new QVBoxLayout( dlgNote );
649 txtNote = new QMultiLineEdit( dlgNote ); 655 txtNote = new QMultiLineEdit( dlgNote );
650 vbNote->addWidget( txtNote ); 656 vbNote->addWidget( txtNote );
651 connect( btnNote, SIGNAL(clicked()), this, SLOT(slotNote()) ); 657 connect( btnNote, SIGNAL(clicked()), this, SLOT(slotNote()) );
652 658
653 dlgName = new QDialog( this, "Name Dialog", TRUE ); 659 dlgName = new QDialog( this, "Name Dialog", TRUE );
654 dlgName->setCaption( tr("Edit Name") ); 660 dlgName->setCaption( tr("Edit Name") );
655 gl = new QGridLayout( dlgName, 4, 2, 2, 3 ); 661 gl = new QGridLayout( dlgName, 5, 2, 2, 3 );
656 662
657 l = new QLabel( tr("First Name"), dlgName ); 663 l = new QLabel( tr("First Name"), dlgName );
658 gl->addWidget( l, 0, 0 ); 664 gl->addWidget( l, 0, 0 );
659 txtFirstName = new QLineEdit( dlgName ); 665 txtFirstName = new QLineEdit( dlgName );
660 gl->addWidget( txtFirstName, 0, 1 ); 666 gl->addWidget( txtFirstName, 0, 1 );
661 667
662 l = new QLabel( tr("Middle Name"), dlgName ); 668 l = new QLabel( tr("Middle Name"), dlgName );
663 gl->addWidget( l, 1, 0 ); 669 gl->addWidget( l, 1, 0 );
664 txtMiddleName = new QLineEdit( dlgName ); 670 txtMiddleName = new QLineEdit( dlgName );
665 gl->addWidget( txtMiddleName, 1, 1 ); 671 gl->addWidget( txtMiddleName, 1, 1 );
666 672
667 l = new QLabel( tr("Last Name"), dlgName ); 673 l = new QLabel( tr("Last Name"), dlgName );
668 gl->addWidget( l, 2, 0 ); 674 gl->addWidget( l, 2, 0 );
669 txtLastName = new QLineEdit( dlgName ); 675 txtLastName = new QLineEdit( dlgName );
670 gl->addWidget( txtLastName, 2, 1 ); 676 gl->addWidget( txtLastName, 2, 1 );
671 677
672 l = new QLabel( tr("Suffix"), dlgName ); 678 l = new QLabel( tr("Suffix"), dlgName );
673 gl->addWidget( l, 3, 0 ); 679 gl->addWidget( l, 3, 0 );
674 txtSuffix = new QLineEdit( dlgName ); 680 txtSuffix = new QLineEdit( dlgName );
675 gl->addWidget( txtSuffix, 3, 1 ); 681 gl->addWidget( txtSuffix, 3, 1 );
682 space = new QSpacerItem(1,1,
683 QSizePolicy::Maximum,
684 QSizePolicy::MinimumExpanding );
685 gl->addItem( space, 4, 0 );
676 686
677 cmbChooserField1->insertStringList( *slChooserNames ); 687 cmbChooserField1->insertStringList( slChooserNames );
678 cmbChooserField2->insertStringList( *slChooserNames ); 688 cmbChooserField2->insertStringList( slChooserNames );
679 cmbChooserField3->insertStringList( *slChooserNames ); 689 cmbChooserField3->insertStringList( slChooserNames );
680 cmbChooserField4->insertStringList( *slChooserNames ); 690 cmbChooserField4->insertStringList( slChooserNames );
681 691
682 cmbChooserField1->setCurrentItem( 0 ); 692 cmbChooserField1->setCurrentItem( 0 );
683 cmbChooserField2->setCurrentItem( 1 ); 693 cmbChooserField2->setCurrentItem( 1 );
684 cmbChooserField3->setCurrentItem( 2 ); 694 cmbChooserField3->setCurrentItem( 2 );
685 695
686 connect( btnFullName, SIGNAL(clicked()), this, SLOT(slotName()) ); 696 connect( btnFullName, SIGNAL(clicked()), this, SLOT(slotName()) );
687 697
688 connect( txtFullName, SIGNAL(textChanged(const QString &)), this, SLOT(slotFullNameChange(const QString &)) ); 698 connect( txtFullName, SIGNAL(textChanged(const QString &)), this, SLOT(slotFullNameChange(const QString &)) );
689 699
690 connect( txtChooserField1, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser1Change(const QString &)) ); 700 connect( txtChooserField1, SIGNAL(textChanged(const QString &)),
691 connect( txtChooserField2, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser2Change(const QString &)) ); 701 this, SLOT(slotChooser1Change(const QString &)) );
692 connect( txtChooserField3, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser3Change(const QString &)) ); 702 connect( txtChooserField2, SIGNAL(textChanged(const QString &)),
693 connect( txtChooserField4, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser4Change(const QString &)) ); 703 this, SLOT(slotChooser2Change(const QString &)) );
694 connect( txtAddress, SIGNAL(textChanged(const QString &)), this, SLOT(slotAddressChange(const QString &)) ); 704 connect( txtChooserField3, SIGNAL(textChanged(const QString &)),
695 //connect( txtAddress2, SIGNAL(textChanged(const QString &)), this, SLOT(slotAddress2Change(const QString &)) ); 705 this, SLOT(slotChooser3Change(const QString &)) );
696 //connect( txtPOBox, SIGNAL(textChanged(const QString &)), this, SLOT(slotPOBoxChange(const QString &)) ); 706 connect( txtChooserField4, SIGNAL(textChanged(const QString &)),
697 connect( txtCity, SIGNAL(textChanged(const QString &)), this, SLOT(slotCityChange(const QString &)) ); 707 this, SLOT(slotChooser4Change(const QString &)) );
698 connect( txtState, SIGNAL(textChanged(const QString &)), this, SLOT(slotStateChange(const QString &)) ); 708 connect( txtAddress, SIGNAL(textChanged(const QString &)),
699 connect( txtZip, SIGNAL(textChanged(const QString &)), this, SLOT(slotZipChange(const QString &)) ); 709 this, SLOT(slotAddressChange(const QString &)) );
700 connect( cmbCountry, SIGNAL(textChanged(const QString &)), this, SLOT(slotCountryChange(const QString &)) ); 710 //connect( txtAddress2, SIGNAL(textChanged(const QString &)), this, SLOT(slotAddress2Change(const QString &)) );
701 connect( cmbCountry, SIGNAL(activated(const QString &)), this, SLOT(slotCountryChange(const QString &)) ); 711 //connect( txtPOBox, SIGNAL(textChanged(const QString &)), this, SLOT(slotPOBoxChange(const QString &)) );
702 connect( cmbChooserField1, SIGNAL(activated(int)), this, SLOT(slotCmbChooser1Change(int)) ); 712 connect( txtCity, SIGNAL(textChanged(const QString &)),
703 connect( cmbChooserField2, SIGNAL(activated(int)), this, SLOT(slotCmbChooser2Change(int)) ); 713 this, SLOT(slotCityChange(const QString &)) );
704 connect( cmbChooserField3, SIGNAL(activated(int)), this, SLOT(slotCmbChooser3Change(int)) ); 714 connect( txtState, SIGNAL(textChanged(const QString &)),
705 connect( cmbChooserField4, SIGNAL(activated(int)), this, SLOT(slotCmbChooser4Change(int)) ); 715 this, SLOT(slotStateChange(const QString &)) );
706 connect( cmbAddress, SIGNAL(activated(int)), this, SLOT(slotAddressTypeChange(int)) ); 716 connect( txtZip, SIGNAL(textChanged(const QString &)),
717 this, SLOT(slotZipChange(const QString &)) );
718 connect( cmbCountry, SIGNAL(textChanged(const QString &)),
719 this, SLOT(slotCountryChange(const QString &)) );
720 connect( cmbCountry, SIGNAL(activated(const QString &)),
721 this, SLOT(slotCountryChange(const QString &)) );
722 connect( cmbChooserField1, SIGNAL(activated(int)),
723 this, SLOT(slotCmbChooser1Change(int)) );
724 connect( cmbChooserField2, SIGNAL(activated(int)),
725 this, SLOT(slotCmbChooser2Change(int)) );
726 connect( cmbChooserField3, SIGNAL(activated(int)),
727 this, SLOT(slotCmbChooser3Change(int)) );
728 connect( cmbChooserField4, SIGNAL(activated(int)),
729 this, SLOT(slotCmbChooser4Change(int)) );
730 connect( cmbAddress, SIGNAL(activated(int)),
731 this, SLOT(slotAddressTypeChange(int)) );
732
707 new QPEDialogListener(this); 733 new QPEDialogListener(this);
708} 734}
709 735
710void ContactEditor::initMap() 736void ContactEditor::initMap()
711{ 737{
712 /* 738 /*
713 // since the fields and the XML fields exist, create a map 739 // since the fields and the XML fields exist, create a map
714 // between them... 740 // between them...
715 Config cfg1( "AddressBook" ); 741 Config cfg1( "AddressBook" );
716 Config cfg2( "AddressBook" ); 742 Config cfg2( "AddressBook" );
717 QString strCfg1, 743 QString strCfg1,
718 strCfg2; 744 strCfg2;
@@ -730,190 +756,192 @@ o cfg2.setGroup( "XMLFields" );
730 strCfg1 = cfg1.readEntry( "Field" + QString::number(i), 756 strCfg1 = cfg1.readEntry( "Field" + QString::number(i),
731 QString::null ); 757 QString::null );
732 strCfg2 = cfg2.readEntry( "XMLField" + QString::number(i++), 758 strCfg2 = cfg2.readEntry( "XMLField" + QString::number(i++),
733 QString::null ); 759 QString::null );
734 } 760 }
735 */ 761 */
736} 762}
737 763
738void ContactEditor::slotChooser1Change( const QString &textChanged ) { 764void ContactEditor::slotChooser1Change( const QString &textChanged ) {
739 765
740 int index = cmbChooserField1->currentItem(); 766 int index = cmbChooserField1->currentItem();
741 767
742 (*slChooserValues)[index] = textChanged; 768 slChooserValues[index] = textChanged;
743 769
744} 770}
745 771
746void ContactEditor::slotChooser2Change( const QString &textChanged ) { 772void ContactEditor::slotChooser2Change( const QString &textChanged ) {
747 773
748 int index = cmbChooserField2->currentItem(); 774 int index = cmbChooserField2->currentItem();
749 775
750 (*slChooserValues)[index] = textChanged; 776 slChooserValues[index] = textChanged;
751 777
752} 778}
753 779
754void ContactEditor::slotChooser3Change( const QString &textChanged ) { 780void ContactEditor::slotChooser3Change( const QString &textChanged ) {
755 781
756 int index = cmbChooserField3->currentItem(); 782 int index = cmbChooserField3->currentItem();
757 783
758 (*slChooserValues)[index] = textChanged; 784 slChooserValues[index] = textChanged;
759 785
760} 786}
761 787
762void ContactEditor::slotChooser4Change( const QString &textChanged ) { 788void ContactEditor::slotChooser4Change( const QString &textChanged ) {
763 789
764 int index = cmbChooserField4->currentItem(); 790 int index = cmbChooserField4->currentItem();
765 791
766 (*slChooserValues)[index] = textChanged; 792 slChooserValues[index] = textChanged;
767 793
768} 794}
769 795
770void ContactEditor::slotAddressChange( const QString &textChanged ) { 796void ContactEditor::slotAddressChange( const QString &textChanged ) {
771 797
772 if ( cmbAddress->currentItem() == 0 ) { 798 if ( cmbAddress->currentItem() == 0 ) {
773 (*slBusinessAddress)[0] = textChanged; 799 slBusinessAddress[0] = textChanged;
774 } else { 800 } else {
775 (*slHomeAddress)[0] = textChanged; 801 slHomeAddress[0] = textChanged;
776 } 802 }
777} 803}
778 804
779void ContactEditor::slotAddress2Change( const QString &textChanged ) { 805void ContactEditor::slotAddress2Change( const QString &textChanged ) {
780 806
781 if ( cmbAddress->currentItem() == 0 ) { 807 if ( cmbAddress->currentItem() == 0 ) {
782 (*slBusinessAddress)[1] = textChanged; 808 slBusinessAddress[1] = textChanged;
783 } else { 809 } else {
784 (*slHomeAddress)[1] = textChanged; 810 slHomeAddress[1] = textChanged;
785 } 811 }
786} 812}
787 813
788void ContactEditor::slotPOBoxChange( const QString &textChanged ) { 814void ContactEditor::slotPOBoxChange( const QString &textChanged ) {
789 815
790 if ( cmbAddress->currentItem() == 0 ) { 816 if ( cmbAddress->currentItem() == 0 ) {
791 (*slBusinessAddress)[2] = textChanged; 817 slBusinessAddress[2] = textChanged;
792 } else { 818 } else {
793 (*slHomeAddress)[2] = textChanged; 819 slHomeAddress[2] = textChanged;
794 } 820 }
795} 821}
796 822
797void ContactEditor::slotCityChange( const QString &textChanged ) { 823void ContactEditor::slotCityChange( const QString &textChanged ) {
798 824
799 if ( cmbAddress->currentItem() == 0 ) { 825 if ( cmbAddress->currentItem() == 0 ) {
800 (*slBusinessAddress)[3] = textChanged; 826 slBusinessAddress[3] = textChanged;
801 } else { 827 } else {
802 (*slHomeAddress)[3] = textChanged; 828 slHomeAddress[3] = textChanged;
803 } 829 }
804} 830}
805 831
806void ContactEditor::slotStateChange( const QString &textChanged ) { 832void ContactEditor::slotStateChange( const QString &textChanged ) {
807 833
808 834
809 if ( cmbAddress->currentItem() == 0 ) { 835 if ( cmbAddress->currentItem() == 0 ) {
810 (*slBusinessAddress)[4] = textChanged; 836 slBusinessAddress[4] = textChanged;
811 } else { 837 } else {
812 (*slHomeAddress)[4] = textChanged; 838 slHomeAddress[4] = textChanged;
813 } 839 }
814} 840}
815 841
816void ContactEditor::slotZipChange( const QString &textChanged ) { 842void ContactEditor::slotZipChange( const QString &textChanged ) {
817 843
818 if ( cmbAddress->currentItem() == 0 ) { 844 if ( cmbAddress->currentItem() == 0 ) {
819 (*slBusinessAddress)[5] = textChanged; 845 slBusinessAddress[5] = textChanged;
820 } else { 846 } else {
821 (*slHomeAddress)[5] = textChanged; 847 slHomeAddress[5] = textChanged;
822 } 848 }
823} 849}
824 850
825void ContactEditor::slotCountryChange( const QString &textChanged ) { 851void ContactEditor::slotCountryChange( const QString &textChanged ) {
826 852
827 if ( cmbAddress->currentItem() == 0 ) { 853 if ( cmbAddress->currentItem() == 0 ) {
828 (*slBusinessAddress)[6] = textChanged; 854 slBusinessAddress[6] = textChanged;
829 } else { 855 } else {
830 (*slHomeAddress)[6] = textChanged; 856 slHomeAddress[6] = textChanged;
831 } 857 }
832} 858}
833 859
834void ContactEditor::slotCmbChooser1Change( int index ) { 860void ContactEditor::slotCmbChooser1Change( int index ) {
835 861
836 txtChooserField1->setText( (*slChooserValues)[index] ); 862 txtChooserField1->setText( slChooserValues[index] );
837 863 txtChooserField1->setFocus();
838} 864}
839 865
840void ContactEditor::slotCmbChooser2Change( int index ) { 866void ContactEditor::slotCmbChooser2Change( int index ) {
841 867
842 txtChooserField2->setText( (*slChooserValues)[index] ); 868 txtChooserField2->setText( slChooserValues[index] );
843 869 txtChooserField2->setFocus();
844} 870}
845 871
846void ContactEditor::slotCmbChooser3Change( int index ) { 872void ContactEditor::slotCmbChooser3Change( int index ) {
847 873
848 txtChooserField3->setText( (*slChooserValues)[index] ); 874 txtChooserField3->setText( slChooserValues[index] );
875 txtChooserField3->setFocus();
849 876
850} 877}
851 878
852void ContactEditor::slotCmbChooser4Change( int index ) { 879void ContactEditor::slotCmbChooser4Change( int index ) {
853 880
854 txtChooserField4->setText( (*slChooserValues)[index] ); 881 txtChooserField4->setText( slChooserValues[index] );
882 txtChooserField4->setFocus();
855 883
856} 884}
857 885
858void ContactEditor::slotAddressTypeChange( int index ) { 886void ContactEditor::slotAddressTypeChange( int index ) {
859 887
860 if ( index == 0 ) { 888 if ( index == 0 ) {
861 889
862 txtAddress->setText( (*slBusinessAddress)[0] ); 890 txtAddress->setText( slBusinessAddress[0] );
863 //txtAddress2->setText( (*slBusinessAddress)[1] ); 891 //txtAddress2->setText( (*slBusinessAddress)[1] );
864 //txtPOBox->setText( (*slBusinessAddress)[2] ); 892 //txtPOBox->setText( (*slBusinessAddress)[2] );
865 txtCity->setText( (*slBusinessAddress)[3] ); 893 txtCity->setText( slBusinessAddress[3] );
866 txtState->setText( (*slBusinessAddress)[4] ); 894 txtState->setText( slBusinessAddress[4] );
867 txtZip->setText( (*slBusinessAddress)[5] ); 895 txtZip->setText( slBusinessAddress[5] );
868 QLineEdit *txtTmp = cmbCountry->lineEdit(); 896 QLineEdit *txtTmp = cmbCountry->lineEdit();
869 txtTmp->setText( (*slBusinessAddress)[6] ); 897 txtTmp->setText( slBusinessAddress[6] );
870 898
871 } else { 899 } else {
872 900
873 txtAddress->setText( (*slHomeAddress)[0] ); 901 txtAddress->setText( slHomeAddress[0] );
874 //txtAddress2->setText( (*slHomeAddress)[1] ); 902 //txtAddress2->setText( (*slHomeAddress)[1] );
875 //txtPOBox->setText( (*slHomeAddress)[2] ); 903 //txtPOBox->setText( (*slHomeAddress)[2] );
876 txtCity->setText( (*slHomeAddress)[3] ); 904 txtCity->setText( slHomeAddress[3] );
877 txtState->setText( (*slHomeAddress)[4] ); 905 txtState->setText( slHomeAddress[4] );
878 txtZip->setText( (*slHomeAddress)[5] ); 906 txtZip->setText( slHomeAddress[5] );
879 QLineEdit *txtTmp = cmbCountry->lineEdit(); 907 QLineEdit *txtTmp = cmbCountry->lineEdit();
880 txtTmp->setText( (*slHomeAddress)[6] ); 908 txtTmp->setText( slHomeAddress[6] );
881 909
882 } 910 }
883 911
884} 912}
885 913
886void ContactEditor::slotFullNameChange( const QString &textChanged ) { 914void ContactEditor::slotFullNameChange( const QString &textChanged ) {
887 915
888 int index = cmbFileAs->currentItem(); 916 int index = cmbFileAs->currentItem();
889 917
890 cmbFileAs->clear(); 918 cmbFileAs->clear();
891 919
892 cmbFileAs->insertItem( parseName( textChanged, 0 ) ); 920 cmbFileAs->insertItem( parseName( textChanged, 0 ) );
893 cmbFileAs->insertItem( parseName( textChanged, 1 ) ); 921 cmbFileAs->insertItem( parseName( textChanged, 1 ) );
894 cmbFileAs->insertItem( parseName( textChanged, 2 ) ); 922 cmbFileAs->insertItem( parseName( textChanged, 2 ) );
895 cmbFileAs->insertItem( parseName( textChanged, 3 ) ); 923 cmbFileAs->insertItem( parseName( textChanged, 3 ) );
896 924
897 cmbFileAs->setCurrentItem( index ); 925 cmbFileAs->setCurrentItem( index );
898 926
899 useFullName = TRUE; 927 useFullName = TRUE;
900 928
901 } 929}
902 930
903void ContactEditor::loadFields() { 931void ContactEditor::loadFields() {
904 932
905 QStringList::ConstIterator it; 933 QStringList::ConstIterator it;
906 QListIterator<QLabel> lit( listName ); 934 QListIterator<QLabel> lit( listName );
907 for ( it = slDynamicEntries->begin(); *lit; ++lit, ++it) { 935 for ( it = slDynamicEntries.begin(); *lit; ++lit, ++it) {
908 (*lit)->setText( *it ); 936 (*lit)->setText( *it );
909 } 937 }
910} 938}
911 939
912void ContactEditor::accept() { 940void ContactEditor::accept() {
913 941
914 if ( isEmpty() ) { 942 if ( isEmpty() ) {
915 cleanupFields(); 943 cleanupFields();
916 reject(); 944 reject();
917 } else { 945 } else {
918 saveEntry(); 946 saveEntry();
919 cleanupFields(); 947 cleanupFields();
@@ -950,54 +978,54 @@ void ContactEditor::slotName() {
950 978
951void ContactEditor::setNameFocus() { 979void ContactEditor::setNameFocus() {
952 980
953 txtFullName->setFocus(); 981 txtFullName->setFocus();
954 982
955} 983}
956 984
957bool ContactEditor::isEmpty() { 985bool ContactEditor::isEmpty() {
958 // Test and see if the record should be saved. 986 // Test and see if the record should be saved.
959 // More strict than the original qtopia, needs name or fileas to save 987 // More strict than the original qtopia, needs name or fileas to save
960 988
961 QString t = txtFullName->text(); 989 QString t = txtFullName->text();
962 if ( !t.isEmpty() && containsAlphaNum( t ) ) 990 if ( !t.isEmpty() && containsAlphaNum( t ) )
963 return false; 991 return false;
964 992
965 t = cmbFileAs->currentText(); 993 t = cmbFileAs->currentText();
966 if ( !t.isEmpty() && containsAlphaNum( t ) ) 994 if ( !t.isEmpty() && containsAlphaNum( t ) )
967 return false; 995 return false;
968 996
969 return true; 997 return true;
970 998
971} 999}
972 1000
973QString ContactEditor::parseName( const QString fullName, int type ) { 1001QString ContactEditor::parseName( const QString fullName, int type ) {
974 1002
975 QString simplifiedName( fullName.simplifyWhiteSpace() ); 1003 QString simplifiedName( fullName.simplifyWhiteSpace() );
976 QString strFirstName; 1004 QString strFirstName;
977 QString strMiddleName; 1005 QString strMiddleName;
978 QString strLastName; 1006 QString strLastName;
979 QString strSuffix; 1007 QString strSuffix;
980 QString strTitle; 1008 QString strTitle;
981 int commapos; 1009 int commapos;
982 int spCount; 1010 int spCount;
983 int spPos; 1011 int spPos;
984 int spPos2; 1012 int spPos2;
985 1013
986 1014
987 commapos = simplifiedName.find( ',', 0, TRUE); 1015 commapos = simplifiedName.find( ',', 0, TRUE);
988 spCount = simplifiedName.contains( ' ', TRUE ); 1016 spCount = simplifiedName.contains( ' ', TRUE );
989 1017
990 if ( commapos == -1 ) { 1018 if ( commapos == -1 ) {
991 1019
992 switch (spCount) { 1020 switch (spCount) {
993 case 0: 1021 case 0:
994 return simplifiedName; 1022 return simplifiedName;
995 1023
996 case 1: 1024 case 1:
997 spPos = simplifiedName.find( ' ', 0, TRUE ); 1025 spPos = simplifiedName.find( ' ', 0, TRUE );
998 strFirstName = simplifiedName.left( spPos ); 1026 strFirstName = simplifiedName.left( spPos );
999 strLastName = simplifiedName.mid( spPos + 1 ); 1027 strLastName = simplifiedName.mid( spPos + 1 );
1000 break; 1028 break;
1001 1029
1002 case 2: 1030 case 2:
1003 spPos = simplifiedName.find( ' ', 0, TRUE ); 1031 spPos = simplifiedName.find( ' ', 0, TRUE );
@@ -1035,25 +1063,25 @@ QString ContactEditor::parseName( const QString fullName, int type ) {
1035 spPos2 = simplifiedName.find( ' ', spPos + 1, TRUE ); 1063 spPos2 = simplifiedName.find( ' ', spPos + 1, TRUE );
1036 strFirstName = simplifiedName.mid( spPos + 1, (spPos2 - 1) - spPos ); 1064 strFirstName = simplifiedName.mid( spPos + 1, (spPos2 - 1) - spPos );
1037 spPos = simplifiedName.find( ' ', spPos2 + 1, TRUE ); 1065 spPos = simplifiedName.find( ' ', spPos2 + 1, TRUE );
1038 strMiddleName = simplifiedName.mid( spPos2 + 1, (spPos - 1) - spPos2 ); 1066 strMiddleName = simplifiedName.mid( spPos2 + 1, (spPos - 1) - spPos2 );
1039 spPos2 = simplifiedName.find( ' ', spPos + 1, TRUE ); 1067 spPos2 = simplifiedName.find( ' ', spPos + 1, TRUE );
1040 strLastName = simplifiedName.mid( spPos + 1, (spPos2 - 1) - spPos ); 1068 strLastName = simplifiedName.mid( spPos + 1, (spPos2 - 1) - spPos );
1041 strSuffix = simplifiedName.mid( spPos2 + 1 ); 1069 strSuffix = simplifiedName.mid( spPos2 + 1 );
1042 break; 1070 break;
1043 } 1071 }
1044 } else { 1072 } else {
1045 simplifiedName.replace( commapos, 1, " " ); 1073 simplifiedName.replace( commapos, 1, " " );
1046 simplifiedName = simplifiedName.simplifyWhiteSpace(); 1074 simplifiedName = simplifiedName.simplifyWhiteSpace();
1047 1075
1048 switch (spCount) { 1076 switch (spCount) {
1049 case 0: 1077 case 0:
1050 return simplifiedName; 1078 return simplifiedName;
1051 1079
1052 case 1: 1080 case 1:
1053 spPos = simplifiedName.find( ' ', 0, TRUE ); 1081 spPos = simplifiedName.find( ' ', 0, TRUE );
1054 strLastName = simplifiedName.left( spPos ); 1082 strLastName = simplifiedName.left( spPos );
1055 strFirstName = simplifiedName.mid( spPos + 1 ); 1083 strFirstName = simplifiedName.mid( spPos + 1 );
1056 break; 1084 break;
1057 1085
1058 case 2: 1086 case 2:
1059 spPos = simplifiedName.find( ' ', 0, TRUE ); 1087 spPos = simplifiedName.find( ' ', 0, TRUE );
@@ -1089,25 +1117,25 @@ QString ContactEditor::parseName( const QString fullName, int type ) {
1089 spPos = simplifiedName.find( ' ', 0, TRUE ); 1117 spPos = simplifiedName.find( ' ', 0, TRUE );
1090 strLastName = simplifiedName.left( spPos ); 1118 strLastName = simplifiedName.left( spPos );
1091 spPos2 = simplifiedName.find( ' ', spPos + 1, TRUE ); 1119 spPos2 = simplifiedName.find( ' ', spPos + 1, TRUE );
1092 strTitle = simplifiedName.mid( spPos + 1, (spPos2 - 1) - spPos ); 1120 strTitle = simplifiedName.mid( spPos + 1, (spPos2 - 1) - spPos );
1093 spPos = simplifiedName.find( ' ', spPos2 + 1, TRUE ); 1121 spPos = simplifiedName.find( ' ', spPos2 + 1, TRUE );
1094 strFirstName = simplifiedName.mid( spPos2 + 1, (spPos - 1) - spPos ); 1122 strFirstName = simplifiedName.mid( spPos2 + 1, (spPos - 1) - spPos );
1095 spPos2 = simplifiedName.find( ' ', spPos + 1, TRUE ); 1123 spPos2 = simplifiedName.find( ' ', spPos + 1, TRUE );
1096 strMiddleName = simplifiedName.mid( spPos + 1, (spPos2 - 1) - spPos ); 1124 strMiddleName = simplifiedName.mid( spPos + 1, (spPos2 - 1) - spPos );
1097 strSuffix = simplifiedName.mid( spPos2 + 1 ); 1125 strSuffix = simplifiedName.mid( spPos2 + 1 );
1098 break; 1126 break;
1099 } 1127 }
1100 } 1128 }
1101 1129
1102 switch (type) { 1130 switch (type) {
1103 case NAME_FL: 1131 case NAME_FL:
1104 return strFirstName + " " + strLastName; 1132 return strFirstName + " " + strLastName;
1105 1133
1106 case NAME_LF: 1134 case NAME_LF:
1107 return strLastName + ", " + strFirstName; 1135 return strLastName + ", " + strFirstName;
1108 1136
1109 case NAME_LFM: 1137 case NAME_LFM:
1110 return strLastName + ", " + strFirstName + " " + strMiddleName; 1138 return strLastName + ", " + strFirstName + " " + strMiddleName;
1111 1139
1112 case NAME_FMLS: 1140 case NAME_FMLS:
1113 return strFirstName + " " + strMiddleName + " " + strLastName + " " + strSuffix; 1141 return strFirstName + " " + strMiddleName + " " + strLastName + " " + strSuffix;
@@ -1121,37 +1149,37 @@ QString ContactEditor::parseName( const QString fullName, int type ) {
1121 case NAME_L: 1149 case NAME_L:
1122 return strLastName; 1150 return strLastName;
1123 1151
1124 case NAME_S: 1152 case NAME_S:
1125 return strSuffix; 1153 return strSuffix;
1126 1154
1127 } 1155 }
1128 return QString::null; 1156 return QString::null;
1129} 1157}
1130 1158
1131void ContactEditor::cleanupFields() { 1159void ContactEditor::cleanupFields() {
1132 1160
1133 QStringList::Iterator it = slChooserValues->begin(); 1161 QStringList::Iterator it = slChooserValues.begin();
1134 for ( int i = 0; it != slChooserValues->end(); i++, ++it ) { 1162 for ( int i = 0; it != slChooserValues.end(); i++, ++it ) {
1135 (*it) = ""; 1163 (*it) = "";
1136 } 1164 }
1137 1165
1138 for ( int i = 0; i < 7; i++ ) { 1166 for ( int i = 0; i < 7; i++ ) {
1139 (*slHomeAddress)[i] = ""; 1167 slHomeAddress[i] = "";
1140 (*slBusinessAddress)[i] = ""; 1168 slBusinessAddress[i] = "";
1141 } 1169 }
1142 1170
1143 QStringList::ConstIterator cit; 1171 QStringList::ConstIterator cit;
1144 QListIterator<QLineEdit> itLE( listValue ); 1172 QListIterator<QLineEdit> itLE( listValue );
1145 for ( cit = slDynamicEntries->begin(); cit != slDynamicEntries->end(); ++cit, ++itLE) { 1173 for ( cit = slDynamicEntries.begin(); cit != slDynamicEntries.end(); ++cit, ++itLE) {
1146 (*itLE)->setText( "" ); 1174 (*itLE)->setText( "" );
1147 } 1175 }
1148 1176
1149 txtFirstName->setText(""); 1177 txtFirstName->setText("");
1150 txtMiddleName->setText(""); 1178 txtMiddleName->setText("");
1151 txtLastName->setText(""); 1179 txtLastName->setText("");
1152 txtSuffix->setText(""); 1180 txtSuffix->setText("");
1153 txtNote->setText(""); 1181 txtNote->setText("");
1154 txtFullName->setText(""); 1182 txtFullName->setText("");
1155 txtJobTitle->setText(""); 1183 txtJobTitle->setText("");
1156 txtOrganization->setText(""); 1184 txtOrganization->setText("");
1157 txtChooserField1->setText(""); 1185 txtChooserField1->setText("");
@@ -1165,88 +1193,88 @@ void ContactEditor::cleanupFields() {
1165 txtZip->setText(""); 1193 txtZip->setText("");
1166 QLineEdit *txtTmp = cmbCountry->lineEdit(); 1194 QLineEdit *txtTmp = cmbCountry->lineEdit();
1167 txtTmp->setText(""); 1195 txtTmp->setText("");
1168 txtTmp = cmbFileAs->lineEdit(); 1196 txtTmp = cmbFileAs->lineEdit();
1169 txtTmp->setText(""); 1197 txtTmp->setText("");
1170 1198
1171} 1199}
1172 1200
1173void ContactEditor::setEntry( const Contact &entry ) { 1201void ContactEditor::setEntry( const Contact &entry ) {
1174 1202
1175 cleanupFields(); 1203 cleanupFields();
1176 1204
1177 1205
1178 ent = entry; 1206 ent = entry;
1179 1207
1180 useFullName = FALSE; 1208 useFullName = FALSE;
1181 txtFirstName->setText( ent.firstName() ); 1209 txtFirstName->setText( ent.firstName() );
1182 txtMiddleName->setText( ent.middleName() ); 1210 txtMiddleName->setText( ent.middleName() );
1183 txtLastName->setText( ent.lastName() ); 1211 txtLastName->setText( ent.lastName() );
1184 txtSuffix->setText( ent.suffix() ); 1212 txtSuffix->setText( ent.suffix() );
1185 1213
1186 QString *tmpString = new QString; 1214 QString *tmpString = new QString;
1187 *tmpString = ent.firstName() + " " + ent.middleName() + 1215 *tmpString = ent.firstName() + " " + ent.middleName() +
1188 + " " + ent.lastName() + " " + ent.suffix(); 1216 + " " + ent.lastName() + " " + ent.suffix();
1189 1217
1190 txtFullName->setText( tmpString->simplifyWhiteSpace() ); 1218 txtFullName->setText( tmpString->simplifyWhiteSpace() );
1191 1219
1192 cmbFileAs->setEditText( ent.fileAs() ); 1220 cmbFileAs->setEditText( ent.fileAs() );
1193 1221
1194 if (hasTitle) 1222 if (hasTitle)
1195 txtJobTitle->setText( ent.jobTitle() ); 1223 txtJobTitle->setText( ent.jobTitle() );
1196 1224
1197 if (hasCompany) 1225 if (hasCompany)
1198 txtOrganization->setText( ent.company() ); 1226 txtOrganization->setText( ent.company() );
1199 1227
1200 if (hasNotes) 1228 if (hasNotes)
1201 txtNote->setText( ent.notes() ); 1229 txtNote->setText( ent.notes() );
1202 1230
1203 if (hasStreet) { 1231 if (hasStreet) {
1204 (*slHomeAddress)[0] = ent.homeStreet(); 1232 slHomeAddress[0] = ent.homeStreet();
1205 (*slBusinessAddress)[0] = ent.businessStreet(); 1233 slBusinessAddress[0] = ent.businessStreet();
1206 } 1234 }
1207/* 1235/*
1208 if (hasStreet2) { 1236 if (hasStreet2) {
1209 (*slHomeAddress)[1] = ent.homeStreet2(); 1237 (*slHomeAddress)[1] = ent.homeStreet2();
1210 (*slBusinessAddress)[1] = ent.businessStreet2(); 1238 (*slBusinessAddress)[1] = ent.businessStreet2();
1211 } 1239 }
1212 1240
1213 if (hasPOBox) { 1241 if (hasPOBox) {
1214 (*slHomeAddress)[2] = ent.homePOBox(); 1242 (*slHomeAddress)[2] = ent.homePOBox();
1215 (*slBusinessAddress)[2] = ent.businessPOBox(); 1243 (*slBusinessAddress)[2] = ent.businessPOBox();
1216 } 1244 }
1217*/ 1245*/
1218 if (hasCity) { 1246 if (hasCity) {
1219 (*slHomeAddress)[3] = ent.homeCity(); 1247 slHomeAddress[3] = ent.homeCity();
1220 (*slBusinessAddress)[3] = ent.businessCity(); 1248 slBusinessAddress[3] = ent.businessCity();
1221 } 1249 }
1222 1250
1223 if (hasState) { 1251 if (hasState) {
1224 (*slHomeAddress)[4] = ent.homeState(); 1252 slHomeAddress[4] = ent.homeState();
1225 (*slBusinessAddress)[4] = ent.businessState(); 1253 slBusinessAddress[4] = ent.businessState();
1226 } 1254 }
1227 1255
1228 if (hasZip) { 1256 if (hasZip) {
1229 (*slHomeAddress)[5] = ent.homeZip(); 1257 slHomeAddress[5] = ent.homeZip();
1230 (*slBusinessAddress)[5] = ent.businessZip(); 1258 slBusinessAddress[5] = ent.businessZip();
1231 } 1259 }
1232 1260
1233 if (hasCountry) { 1261 if (hasCountry) {
1234 (*slHomeAddress)[6] = ent.homeCountry(); 1262 slHomeAddress[6] = ent.homeCountry();
1235 (*slBusinessAddress)[6] = ent.businessCountry(); 1263 slBusinessAddress[6] = ent.businessCountry();
1236 } 1264 }
1237 1265
1238 QStringList::ConstIterator it; 1266 QStringList::ConstIterator it;
1239 QListIterator<QLineEdit> itLE( listValue ); 1267 QListIterator<QLineEdit> itLE( listValue );
1240 for ( it = slDynamicEntries->begin(); it != slDynamicEntries->end(); ++it, ++itLE) { 1268 for ( it = slDynamicEntries.begin(); it != slDynamicEntries.end(); ++it, ++itLE) {
1241 if ( *it == "Department" ) 1269 if ( *it == "Department" )
1242 (*itLE)->setText( ent.department() ); 1270 (*itLE)->setText( ent.department() );
1243 1271
1244 if ( *it == "Company" ) 1272 if ( *it == "Company" )
1245 (*itLE)->setText( ent.company() ); 1273 (*itLE)->setText( ent.company() );
1246 1274
1247 if ( *it == "Office" ) 1275 if ( *it == "Office" )
1248 (*itLE)->setText( ent.office() ); 1276 (*itLE)->setText( ent.office() );
1249 1277
1250 if ( *it == "Profession" ) 1278 if ( *it == "Profession" )
1251 (*itLE)->setText( ent.profession() ); 1279 (*itLE)->setText( ent.profession() );
1252 1280
@@ -1265,25 +1293,25 @@ void ContactEditor::setEntry( const Contact &entry ) {
1265 if ( *it == "Anniversary" ) 1293 if ( *it == "Anniversary" )
1266 (*itLE)->setText( ent.anniversary() ); 1294 (*itLE)->setText( ent.anniversary() );
1267 1295
1268 if ( *it == "Nickname" ) 1296 if ( *it == "Nickname" )
1269 (*itLE)->setText( ent.nickname() ); 1297 (*itLE)->setText( ent.nickname() );
1270 1298
1271 if ( *it == "Children" ) 1299 if ( *it == "Children" )
1272 (*itLE)->setText( ent.children() ); 1300 (*itLE)->setText( ent.children() );
1273 1301
1274 } 1302 }
1275 1303
1276 QStringList::Iterator itV; 1304 QStringList::Iterator itV;
1277 for ( it = slChooserNames->begin(), itV = slChooserValues->begin(); it != slChooserNames->end(); ++it, ++itV ) { 1305 for ( it = slChooserNames.begin(), itV = slChooserValues.begin(); it != slChooserNames.end(); ++it, ++itV ) {
1278 1306
1279 if ( *it == "Business Phone" || *it == "Work Phone" ) 1307 if ( *it == "Business Phone" || *it == "Work Phone" )
1280 *itV = ent.businessPhone(); 1308 *itV = ent.businessPhone();
1281/* 1309/*
1282 if ( *it == "Business 2 Phone" ) 1310 if ( *it == "Business 2 Phone" )
1283 *itV = ent.business2Phone(); 1311 *itV = ent.business2Phone();
1284*/ 1312*/
1285 if ( *it == "Business Fax" || *it == "Work Fax" ) 1313 if ( *it == "Business Fax" || *it == "Work Fax" )
1286 *itV = ent.businessFax(); 1314 *itV = ent.businessFax();
1287 1315
1288 if ( *it == "Business Mobile" || *it == "work Mobile" ) 1316 if ( *it == "Business Mobile" || *it == "work Mobile" )
1289 *itV = ent.businessMobile(); 1317 *itV = ent.businessMobile();
@@ -1337,113 +1365,113 @@ void ContactEditor::setEntry( const Contact &entry ) {
1337 *itV = ent.MSNIM(); 1365 *itV = ent.MSNIM();
1338 1366
1339 if ( *it == "Yahoo IM" ) 1367 if ( *it == "Yahoo IM" )
1340 *itV = ent.yahooIM(); 1368 *itV = ent.yahooIM();
1341*/ 1369*/
1342 if ( *it == "Home Web Page" ) 1370 if ( *it == "Home Web Page" )
1343 *itV = ent.homeWebpage(); 1371 *itV = ent.homeWebpage();
1344 if ( *it == "Business Web Page" || *it == "Work Web Page" ) 1372 if ( *it == "Business Web Page" || *it == "Work Web Page" )
1345 *itV = ent.businessWebpage(); 1373 *itV = ent.businessWebpage();
1346 1374
1347 1375
1348 } 1376 }
1349 1377
1350 cmbCat->setCategories( ent.categories(), "Contacts", tr("Contacts") ); 1378 cmbCat->setCategories( ent.categories(), "Contacts", tr("Contacts") );
1351 1379
1352 QString gender = ent.gender(); 1380 QString gender = ent.gender();
1353 cmbGender->setCurrentItem( gender.toInt() ); 1381 cmbGender->setCurrentItem( gender.toInt() );
1354 1382
1355 txtNote->setText( ent.notes() ); 1383 txtNote->setText( ent.notes() );
1356 1384
1357 slotCmbChooser1Change( cmbChooserField1->currentItem() ); 1385 slotCmbChooser1Change( cmbChooserField1->currentItem() );
1358 slotCmbChooser2Change( cmbChooserField2->currentItem() ); 1386 slotCmbChooser2Change( cmbChooserField2->currentItem() );
1359 slotCmbChooser3Change( cmbChooserField3->currentItem() ); 1387 slotCmbChooser3Change( cmbChooserField3->currentItem() );
1360 1388
1361 slotAddressTypeChange( cmbAddress->currentItem() ); 1389 slotAddressTypeChange( cmbAddress->currentItem() );
1362 1390
1363} 1391}
1364 1392
1365void ContactEditor::saveEntry() { 1393void ContactEditor::saveEntry() {
1366 1394
1367 if ( useFullName == TRUE ) { 1395 if ( useFullName == TRUE ) {
1368 txtFirstName->setText( parseName( txtFullName->text(), NAME_F ) ); 1396 txtFirstName->setText( parseName( txtFullName->text(), NAME_F ) );
1369 txtMiddleName->setText( parseName( txtFullName->text(), NAME_M ) ); 1397 txtMiddleName->setText( parseName( txtFullName->text(), NAME_M ) );
1370 txtLastName->setText( parseName( txtFullName->text(), NAME_L ) ); 1398 txtLastName->setText( parseName( txtFullName->text(), NAME_L ) );
1371 txtSuffix->setText( parseName( txtFullName->text(), NAME_S ) ); 1399 txtSuffix->setText( parseName( txtFullName->text(), NAME_S ) );
1372 1400
1373 useFullName = FALSE; 1401 useFullName = FALSE;
1374 } 1402 }
1375 1403
1376 /*if ( ent.firstName() != txtFirstName->text() || 1404 /*if ( ent.firstName() != txtFirstName->text() ||
1377 ent.lastName != txtLastName->text() || 1405 ent.lastName != txtLastName->text() ||
1378 ent.middleName != txtMiddleName->text() ) { 1406 ent.middleName != txtMiddleName->text() ) {
1379 */ 1407 */
1380 ent.setFirstName( txtFirstName->text() ); 1408 ent.setFirstName( txtFirstName->text() );
1381 ent.setLastName( txtLastName->text() ); 1409 ent.setLastName( txtLastName->text() );
1382 ent.setMiddleName( txtMiddleName->text() ); 1410 ent.setMiddleName( txtMiddleName->text() );
1383 ent.setSuffix( txtSuffix->text() ); 1411 ent.setSuffix( txtSuffix->text() );
1384 1412
1385 //} 1413 //}
1386 1414
1387 ent.setFileAs( cmbFileAs->currentText() ); 1415 ent.setFileAs( cmbFileAs->currentText() );
1388 1416
1389 ent.setCategories( cmbCat->currentCategories() ); 1417 ent.setCategories( cmbCat->currentCategories() );
1390 1418
1391 if (hasTitle) 1419 if (hasTitle)
1392 ent.setJobTitle( txtJobTitle->text() ); 1420 ent.setJobTitle( txtJobTitle->text() );
1393 1421
1394 if (hasCompany) 1422 if (hasCompany)
1395 ent.setCompany( txtOrganization->text() ); 1423 ent.setCompany( txtOrganization->text() );
1396 1424
1397 if (hasNotes) 1425 if (hasNotes)
1398 ent.setNotes( txtNote->text() ); 1426 ent.setNotes( txtNote->text() );
1399 1427
1400 if (hasStreet) { 1428 if (hasStreet) {
1401 ent.setHomeStreet( (*slHomeAddress)[0] ); 1429 ent.setHomeStreet( slHomeAddress[0] );
1402 ent.setBusinessStreet( (*slBusinessAddress)[0] ); 1430 ent.setBusinessStreet( slBusinessAddress[0] );
1403 } 1431 }
1404/* 1432/*
1405 if (hasStreet2) { 1433 if (hasStreet2) {
1406 ent.setHomeStreet2( (*slHomeAddress)[1] ); 1434 ent.setHomeStreet2( (*slHomeAddress)[1] );
1407 ent.setBusinessStreet2( (*slBusinessAddress)[1] ); 1435 ent.setBusinessStreet2( (*slBusinessAddress)[1] );
1408 } 1436 }
1409 1437
1410 if (hasPOBox) { 1438 if (hasPOBox) {
1411 ent.setHomePOBox( (*slHomeAddress)[2] ); 1439 ent.setHomePOBox( (*slHomeAddress)[2] );
1412 ent.setBusinessPOBox( (*slBusinessAddress)[2] ); 1440 ent.setBusinessPOBox( (*slBusinessAddress)[2] );
1413 } 1441 }
1414*/ 1442*/
1415 if (hasCity) { 1443 if (hasCity) {
1416 ent.setHomeCity( (*slHomeAddress)[3] ); 1444 ent.setHomeCity( slHomeAddress[3] );
1417 ent.setBusinessCity( (*slBusinessAddress)[3] ); 1445 ent.setBusinessCity( slBusinessAddress[3] );
1418 } 1446 }
1419 1447
1420 if (hasState) { 1448 if (hasState) {
1421 ent.setHomeState( (*slHomeAddress)[4] ); 1449 ent.setHomeState( slHomeAddress[4] );
1422 ent.setBusinessState( (*slBusinessAddress)[4] ); 1450 ent.setBusinessState( slBusinessAddress[4] );
1423 } 1451 }
1424 1452
1425 if (hasZip) { 1453 if (hasZip) {
1426 ent.setHomeZip( (*slHomeAddress)[5] ); 1454 ent.setHomeZip( slHomeAddress[5] );
1427 ent.setBusinessZip( (*slBusinessAddress)[5] ); 1455 ent.setBusinessZip( slBusinessAddress[5] );
1428 } 1456 }
1429 1457
1430 if (hasCountry) { 1458 if (hasCountry) {
1431 ent.setHomeCountry( (*slHomeAddress)[6] ); 1459 ent.setHomeCountry( slHomeAddress[6] );
1432 ent.setBusinessCountry( (*slBusinessAddress)[6] ); 1460 ent.setBusinessCountry( slBusinessAddress[6] );
1433 } 1461 }
1434 1462
1435 QStringList::ConstIterator it; 1463 QStringList::ConstIterator it;
1436 QListIterator<QLineEdit> itLE( listValue ); 1464 QListIterator<QLineEdit> itLE( listValue );
1437 for ( it = slDynamicEntries->begin(); it != slDynamicEntries->end(); ++it, ++itLE) { 1465 for ( it = slDynamicEntries.begin(); it != slDynamicEntries.end(); ++it, ++itLE) {
1438 if ( *it == "Department" ) 1466 if ( *it == "Department" )
1439 ent.setDepartment( (*itLE)->text() ); 1467 ent.setDepartment( (*itLE)->text() );
1440 1468
1441 if ( *it == "Company" ) 1469 if ( *it == "Company" )
1442 ent.setCompany( (*itLE)->text() ); 1470 ent.setCompany( (*itLE)->text() );
1443 1471
1444 if ( *it == "Office" ) 1472 if ( *it == "Office" )
1445 ent.setOffice( (*itLE)->text() ); 1473 ent.setOffice( (*itLE)->text() );
1446 1474
1447 if ( *it == "Profession" ) 1475 if ( *it == "Profession" )
1448 ent.setProfession( (*itLE)->text() ); 1476 ent.setProfession( (*itLE)->text() );
1449 1477
@@ -1462,25 +1490,25 @@ void ContactEditor::saveEntry() {
1462 if ( *it == "Anniversary" ) 1490 if ( *it == "Anniversary" )
1463 ent.setAnniversary( (*itLE)->text() ); 1491 ent.setAnniversary( (*itLE)->text() );
1464 1492
1465 if ( *it == "Nickname" ) 1493 if ( *it == "Nickname" )
1466 ent.setNickname( (*itLE)->text() ); 1494 ent.setNickname( (*itLE)->text() );
1467 1495
1468 if ( *it == "Children" ) 1496 if ( *it == "Children" )
1469 ent.setChildren( (*itLE)->text() ); 1497 ent.setChildren( (*itLE)->text() );
1470 1498
1471 } 1499 }
1472 1500
1473 QStringList::ConstIterator itV; 1501 QStringList::ConstIterator itV;
1474 for ( it = slChooserNames->begin(), itV = slChooserValues->begin(); it != slChooserNames->end(); ++it, ++itV ) { 1502 for ( it = slChooserNames.begin(), itV = slChooserValues.begin(); it != slChooserNames.end(); ++it, ++itV ) {
1475 1503
1476 if ( *it == "Business Phone" || *it == "Work Phone" ) 1504 if ( *it == "Business Phone" || *it == "Work Phone" )
1477 ent.setBusinessPhone( *itV ); 1505 ent.setBusinessPhone( *itV );
1478/* 1506/*
1479 if ( *it == "Business 2 Phone" ) 1507 if ( *it == "Business 2 Phone" )
1480 ent.setBusiness2Phone( *itV ); 1508 ent.setBusiness2Phone( *itV );
1481*/ 1509*/
1482 if ( *it == "Business Fax" || *it == "Work Fax" ) 1510 if ( *it == "Business Fax" || *it == "Work Fax" )
1483 ent.setBusinessFax( *itV ); 1511 ent.setBusinessFax( *itV );
1484 1512
1485 if ( *it == "Business Mobile" || *it == "Work Mobile" ) 1513 if ( *it == "Business Mobile" || *it == "Work Mobile" )
1486 ent.setBusinessMobile( *itV ); 1514 ent.setBusinessMobile( *itV );
@@ -1539,25 +1567,25 @@ void ContactEditor::saveEntry() {
1539 ent.setMSNIM( *itV ); 1567 ent.setMSNIM( *itV );
1540 1568
1541 if ( *it == "Yahoo IM" ) 1569 if ( *it == "Yahoo IM" )
1542 ent.setYahooIM( *itV ); 1570 ent.setYahooIM( *itV );
1543*/ 1571*/
1544 if ( *it == "Home Web Page" ) 1572 if ( *it == "Home Web Page" )
1545 ent.setHomeWebpage( *itV ); 1573 ent.setHomeWebpage( *itV );
1546 if ( *it == "Business Web Page" || *it == "Work Web Page" ) 1574 if ( *it == "Business Web Page" || *it == "Work Web Page" )
1547 ent.setBusinessWebpage( *itV ); 1575 ent.setBusinessWebpage( *itV );
1548 1576
1549 1577
1550 } 1578 }
1551 1579
1552 int gender = cmbGender->currentItem(); 1580 int gender = cmbGender->currentItem();
1553 ent.setGender( QString::number( gender ) ); 1581 ent.setGender( QString::number( gender ) );
1554 1582
1555 QString str = txtNote->text(); 1583 QString str = txtNote->text();
1556 if ( !str.isNull() ) 1584 if ( !str.isNull() )
1557 ent.setNotes( str ); 1585 ent.setNotes( str );
1558 1586
1559} 1587}
1560 1588
1561void parseEmailFrom( const QString &txt, QString &strDefaultEmail, 1589void parseEmailFrom( const QString &txt, QString &strDefaultEmail,
1562 QString &strAll ) 1590 QString &strAll )
1563{ 1591{
diff --git a/core/pim/addressbook/contacteditor.h b/core/pim/addressbook/contacteditor.h
index a58a860..4f3b56e 100644
--- a/core/pim/addressbook/contacteditor.h
+++ b/core/pim/addressbook/contacteditor.h
@@ -41,25 +41,25 @@ const int NAME_S = 7;
41 41
42class QScrollView; 42class QScrollView;
43class QTabWidget; 43class QTabWidget;
44class QMultiLineEdit; 44class QMultiLineEdit;
45class QLineEdit; 45class QLineEdit;
46class QComboBox; 46class QComboBox;
47class QPushButton; 47class QPushButton;
48class CategorySelect; 48class CategorySelect;
49class QLabel; 49class QLabel;
50 50
51class ContactEditor : public QDialog { 51class ContactEditor : public QDialog {
52 Q_OBJECT 52 Q_OBJECT
53 53
54 public: 54 public:
55 ContactEditor(const Contact &entry, 55 ContactEditor(const Contact &entry,
56 const QValueList<int> *newOrderedValues, 56 const QValueList<int> *newOrderedValues,
57 QStringList *slNewOrdered, 57 QStringList *slNewOrdered,
58 QWidget *parent = 0, 58 QWidget *parent = 0,
59 const char *name = 0, 59 const char *name = 0,
60 WFlags fl = 0 ); 60 WFlags fl = 0 );
61 ~ContactEditor(); 61 ~ContactEditor();
62 void loadFields(); 62 void loadFields();
63 void setNameFocus(); 63 void setNameFocus();
64 Contact entry() const { return ent; } 64 Contact entry() const { return ent; }
65 65
@@ -69,25 +69,25 @@ class ContactEditor : public QDialog {
69 void setEntry(const Contact &entry); 69 void setEntry(const Contact &entry);
70 70
71 protected slots: 71 protected slots:
72 void accept(); 72 void accept();
73 73
74 private: 74 private:
75 void init(); 75 void init();
76 void initMap(); 76 void initMap();
77 void saveEntry(); 77 void saveEntry();
78 bool isEmpty(); 78 bool isEmpty();
79 void cleanupFields(); 79 void cleanupFields();
80 QString parseName( QString fullName, int type ); 80 QString parseName( QString fullName, int type );
81 81
82 private slots: 82 private slots:
83 void slotChooser1Change( const QString &textChanged ); 83 void slotChooser1Change( const QString &textChanged );
84 void slotChooser2Change( const QString &textChanged ); 84 void slotChooser2Change( const QString &textChanged );
85 void slotChooser3Change( const QString &textChanged ); 85 void slotChooser3Change( const QString &textChanged );
86 void slotChooser4Change( const QString &textChanged ); 86 void slotChooser4Change( const QString &textChanged );
87 void slotCmbChooser1Change( int index ); 87 void slotCmbChooser1Change( int index );
88 void slotCmbChooser2Change( int index ); 88 void slotCmbChooser2Change( int index );
89 void slotCmbChooser3Change( int index ); 89 void slotCmbChooser3Change( int index );
90 void slotCmbChooser4Change( int index ); 90 void slotCmbChooser4Change( int index );
91 void slotAddressTypeChange( int index ); 91 void slotAddressTypeChange( int index );
92 void slotAddressChange( const QString &textChanged ); 92 void slotAddressChange( const QString &textChanged );
93 void slotAddress2Change( const QString &textChanged ); 93 void slotAddress2Change( const QString &textChanged );
@@ -100,31 +100,31 @@ class ContactEditor : public QDialog {
100 100
101 private: 101 private:
102 bool useFullName, hasGender, hasTitle, hasCompany, hasNotes, hasStreet, hasStreet2, hasPOBox, hasCity, hasState, hasZip, hasCountry; 102 bool useFullName, hasGender, hasTitle, hasCompany, hasNotes, hasStreet, hasStreet2, hasPOBox, hasCity, hasState, hasZip, hasCountry;
103 103
104 Contact ent; 104 Contact ent;
105 105
106 QDialog *dlgNote; 106 QDialog *dlgNote;
107 QDialog *dlgName; 107 QDialog *dlgName;
108 108
109 QList<QLineEdit> listValue; 109 QList<QLineEdit> listValue;
110 QList<QLabel> listName; 110 QList<QLabel> listName;
111 const QValueList<int> *orderedValues; 111 const QValueList<int> *orderedValues;
112 QStringList *slOrdered; 112 QStringList slOrdered;
113 QStringList *slDynamicEntries; 113 QStringList slDynamicEntries;
114 114
115 QStringList *slHomeAddress; 115 QStringList slHomeAddress;
116 QStringList *slBusinessAddress; 116 QStringList slBusinessAddress;
117 QStringList *slChooserNames; 117 QStringList slChooserNames;
118 QStringList *slChooserValues; 118 QStringList slChooserValues;
119 119
120 QMultiLineEdit *txtNote; 120 QMultiLineEdit *txtNote;
121 QLabel *lblNote; 121 QLabel *lblNote;
122 122
123 //QLineEdit *txtTitle; 123 //QLineEdit *txtTitle;
124 QLineEdit *txtFirstName; 124 QLineEdit *txtFirstName;
125 QLineEdit *txtMiddleName; 125 QLineEdit *txtMiddleName;
126 QLineEdit *txtLastName; 126 QLineEdit *txtLastName;
127 QLineEdit *txtSuffix; 127 QLineEdit *txtSuffix;
128 128
129 QTabWidget *tabMain; 129 QTabWidget *tabMain;
130 QScrollView *svGeneral; 130 QScrollView *svGeneral;
@@ -134,25 +134,25 @@ class ContactEditor : public QDialog {
134 QLineEdit *txtJobTitle; 134 QLineEdit *txtJobTitle;
135 QLineEdit *txtOrganization; 135 QLineEdit *txtOrganization;
136 QLineEdit *txtChooserField1; 136 QLineEdit *txtChooserField1;
137 QLineEdit *txtChooserField2; 137 QLineEdit *txtChooserField2;
138 QLineEdit *txtChooserField3; 138 QLineEdit *txtChooserField3;
139 QLineEdit *txtChooserField4; 139 QLineEdit *txtChooserField4;
140 QComboBox *cmbChooserField1; 140 QComboBox *cmbChooserField1;
141 QComboBox *cmbChooserField2; 141 QComboBox *cmbChooserField2;
142 QComboBox *cmbChooserField3; 142 QComboBox *cmbChooserField3;
143 QComboBox *cmbChooserField4; 143 QComboBox *cmbChooserField4;
144 QComboBox *cmbFileAs; 144 QComboBox *cmbFileAs;
145 CategorySelect *cmbCat; 145 CategorySelect *cmbCat;
146 146
147 QScrollView *svAddress; 147 QScrollView *svAddress;
148 QLineEdit *txtAddress; 148 QLineEdit *txtAddress;
149 //QLineEdit *txtAddress2; 149 //QLineEdit *txtAddress2;
150 //QLineEdit *txtPOBox; 150 //QLineEdit *txtPOBox;
151 QLineEdit *txtCity; 151 QLineEdit *txtCity;
152 QLineEdit *txtState; 152 QLineEdit *txtState;
153 QLineEdit *txtZip; 153 QLineEdit *txtZip;
154 QComboBox *cmbAddress; 154 QComboBox *cmbAddress;
155 QComboBox *cmbCountry; 155 QComboBox *cmbCountry;
156 156
157 QScrollView *svDetails; 157 QScrollView *svDetails;
158 QComboBox *cmbGender; 158 QComboBox *cmbGender;