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
@@ -187,15 +187,15 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
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() ),
@@ -230,13 +230,13 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
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 ) {
@@ -244,13 +244,13 @@ void AddressbookWindow::slotSetFont( int size ) {
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 ) );
@@ -468,13 +468,13 @@ static void parseName( const QString& name, QString *first, QString *middle,
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()") {
@@ -500,13 +500,13 @@ void AddressbookWindow::appMessage(const QCString &msg, const QByteArray &data)
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
@@ -791,13 +791,13 @@ void AddressbookWindow::initFields()
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 );
@@ -856,20 +856,20 @@ AbLabel *AddressbookWindow::abView()
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}
@@ -903,12 +903,13 @@ void 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 );
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
@@ -54,15 +54,15 @@ ContactEditor::ContactEditor( const Contact &entry,
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
@@ -71,25 +71,25 @@ ContactEditor::~ContactEditor() {
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;
@@ -98,182 +98,182 @@ void ContactEditor::init() {
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 );
@@ -343,13 +343,13 @@ void ContactEditor::init() {
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
@@ -357,13 +357,13 @@ void ContactEditor::init() {
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 );
@@ -604,12 +604,18 @@ void ContactEditor::init() {
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
@@ -620,42 +626,42 @@ void ContactEditor::init() {
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
@@ -670,43 +676,63 @@ void ContactEditor::init() {
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 /*
@@ -736,151 +762,153 @@ o cfg2.setGroup( "XMLFields" );
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 ) {
@@ -895,19 +923,19 @@ void ContactEditor::slotFullNameChange( const QString &textChanged ) {
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
@@ -956,15 +984,15 @@ void ContactEditor::setNameFocus() {
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
@@ -979,19 +1007,19 @@ QString ContactEditor::parseName( const QString fullName, int type ) {
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 );
@@ -1041,13 +1069,13 @@ QString ContactEditor::parseName( const QString fullName, int type ) {
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 );
@@ -1095,13 +1123,13 @@ QString ContactEditor::parseName( const QString fullName, int type ) {
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;
@@ -1127,25 +1155,25 @@ QString ContactEditor::parseName( const QString fullName, int type ) {
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("");
@@ -1171,41 +1199,41 @@ void ContactEditor::cleanupFields() {
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 }
@@ -1213,34 +1241,34 @@ void ContactEditor::setEntry( const Contact &entry ) {
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
@@ -1271,13 +1299,13 @@ void ContactEditor::setEntry( const Contact &entry ) {
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();
@@ -1343,13 +1371,13 @@ void ContactEditor::setEntry( const Contact &entry ) {
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() );
@@ -1366,43 +1394,43 @@ void 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 }
@@ -1410,34 +1438,34 @@ void ContactEditor::saveEntry() {
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
@@ -1468,13 +1496,13 @@ void ContactEditor::saveEntry() {
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 );
@@ -1545,13 +1573,13 @@ void ContactEditor::saveEntry() {
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 );
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
@@ -47,13 +47,13 @@ class 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,
@@ -75,13 +75,13 @@ class ContactEditor : public QDialog {
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 );
@@ -106,19 +106,19 @@ class ContactEditor : public QDialog {
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;
@@ -140,13 +140,13 @@ class ContactEditor : public QDialog {
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;