summaryrefslogtreecommitdiff
authortux_mike <tux_mike>2002-04-08 21:07:14 (UTC)
committer tux_mike <tux_mike>2002-04-08 21:07:14 (UTC)
commit3c37907fd38287a8402cca1063ce6ba69c75e954 (patch) (unidiff)
tree41bc02fc351a0db0667ddbd7f6d12cfb19a6ffee
parent9dd42008cd6dea68520c58a569874a7cc8230eb0 (diff)
downloadopie-3c37907fd38287a8402cca1063ce6ba69c75e954.zip
opie-3c37907fd38287a8402cca1063ce6ba69c75e954.tar.gz
opie-3c37907fd38287a8402cca1063ce6ba69c75e954.tar.bz2
Fixed little bugs, added macro to disable find on sharp rom, other small feature additons.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/addressbook.cpp16
-rw-r--r--core/pim/addressbook/contacteditor.cpp255
-rw-r--r--core/pim/addressbook/contacteditor.h4
3 files changed, 261 insertions, 14 deletions
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp
index e8fa37c..5a8038b 100644
--- a/core/pim/addressbook/addressbook.cpp
+++ b/core/pim/addressbook/addressbook.cpp
@@ -8,49 +8,53 @@
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#define QTOPIA_INTERNAL_FD 21#define QTOPIA_INTERNAL_FD
22 22
23#include "contacteditor.h" 23#include "contacteditor.h"
24#include "ablabel.h" 24#include "ablabel.h"
25#include "abtable.h" 25#include "abtable.h"
26#include "addresssettings.h" 26#include "addresssettings.h"
27#include "addressbook.h" 27#include "addressbook.h"
28 28
29#include <qpe/qpeapplication.h> 29#include <qpe/qpeapplication.h>
30#include <qpe/config.h> 30#include <qpe/config.h>
31#include <qpe/contact.h> 31#include <qpe/contact.h>
32
33#ifndef MAKE_FOR_SHARP_ROM
32#include <qpe/finddialog.h> 34#include <qpe/finddialog.h>
35#endif
36
33#include <qpe/global.h> 37#include <qpe/global.h>
34#include <qpe/resource.h> 38#include <qpe/resource.h>
35#include <qpe/ir.h> 39#include <qpe/ir.h>
36#include <qpe/qpemessagebox.h> 40#include <qpe/qpemessagebox.h>
37#include <qpe/qcopenvelope_qws.h> 41#include <qpe/qcopenvelope_qws.h>
38 42
39#include <qaction.h> 43#include <qaction.h>
40#include <qdialog.h> 44#include <qdialog.h>
41#include <qdir.h> 45#include <qdir.h>
42#include <qfile.h> 46#include <qfile.h>
43#include <qimage.h> 47#include <qimage.h>
44#include <qlayout.h> 48#include <qlayout.h>
45#include <qpe/qpemenubar.h> 49#include <qpe/qpemenubar.h>
46#include <qmessagebox.h> 50#include <qmessagebox.h>
47#include <qpixmap.h> 51#include <qpixmap.h>
48#include <qpopupmenu.h> 52#include <qpopupmenu.h>
49#include <qpe/qpetoolbar.h> 53#include <qpe/qpetoolbar.h>
50#include <qstringlist.h> 54#include <qstringlist.h>
51#include <qtoolbutton.h> 55#include <qtoolbutton.h>
52#include <qwhatsthis.h> 56#include <qwhatsthis.h>
53 57
54#include <stdlib.h> 58#include <stdlib.h>
55#include <sys/stat.h> 59#include <sys/stat.h>
56#include <sys/types.h> 60#include <sys/types.h>
@@ -108,54 +112,56 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
108 listTools = new QPEToolBar( this, "list operations" ); 112 listTools = new QPEToolBar( this, "list operations" );
109 113
110 114
111 QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 115 QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null,
112 0, this, 0 ); 116 0, this, 0 );
113 actionNew = a; 117 actionNew = a;
114 connect( a, SIGNAL( activated() ), this, SLOT( slotListNew() ) ); 118 connect( a, SIGNAL( activated() ), this, SLOT( slotListNew() ) );
115 a->addTo( edit ); 119 a->addTo( edit );
116 a->addTo( listTools ); 120 a->addTo( listTools );
117 121
118 a = new QAction( tr( "Edit" ), Resource::loadPixmap( "edit" ), QString::null, 122 a = new QAction( tr( "Edit" ), Resource::loadPixmap( "edit" ), QString::null,
119 0, this, 0 ); 123 0, this, 0 );
120 actionEdit = a; 124 actionEdit = a;
121 connect( a, SIGNAL( activated() ), this, SLOT( slotViewEdit() ) ); 125 connect( a, SIGNAL( activated() ), this, SLOT( slotViewEdit() ) );
122 a->addTo( edit ); 126 a->addTo( edit );
123 a->addTo( listTools ); 127 a->addTo( listTools );
124 128
125 a = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null, 129 a = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null,
126 0, this, 0 ); 130 0, this, 0 );
127 actionTrash = a; 131 actionTrash = a;
128 connect( a, SIGNAL( activated() ), this, SLOT( slotListDelete() ) ); 132 connect( a, SIGNAL( activated() ), this, SLOT( slotListDelete() ) );
129 a->addTo( edit ); 133 a->addTo( edit );
130 a->addTo( listTools ); 134 a->addTo( listTools );
131 135
136#ifndef MAKE_FOR_SHARP_ROM
132 a = new QAction( tr( "Find" ), Resource::loadPixmap( "mag" ), 137 a = new QAction( tr( "Find" ), Resource::loadPixmap( "mag" ),
133 QString::null, 0, this, 0 ); 138 QString::null, 0, this, 0 );
134 actionFind = a; 139 actionFind = a;
135 connect( a, SIGNAL(activated()), this, SLOT(slotFind()) ); 140 connect( a, SIGNAL(activated()), this, SLOT(slotFind()) );
136 a->addTo( edit ); 141 a->addTo( edit );
137 a->addTo( listTools ); 142 a->addTo( listTools );
143#endif
138 144
139 145
140 a = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "qtmail/reply" ), 146 a = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "qtmail/reply" ),
141 QString::null, 0, this, 0 ); 147 QString::null, 0, this, 0 );
142 //a->setEnabled( FALSE ); we got support for it now :) zecke 148 //a->setEnabled( FALSE ); we got support for it now :) zecke
143 actionMail = a; 149 actionMail = a;
144 connect( a, SIGNAL( activated() ), this, SLOT( writeMail() ) ); 150 connect( a, SIGNAL( activated() ), this, SLOT( writeMail() ) );
145 a->addTo( edit ); 151 a->addTo( edit );
146 a->addTo( listTools ); 152 a->addTo( listTools );
147 153
148 154
149 155
150 if ( Ir::supported() ) { 156 if ( Ir::supported() ) {
151 a = new QAction( tr ("Beam Entry" ), Resource::loadPixmap( "beam" ), QString::null, 157 a = new QAction( tr ("Beam Entry" ), Resource::loadPixmap( "beam" ), QString::null,
152 0, this, 0 ); 158 0, this, 0 );
153 actionBeam = a; 159 actionBeam = a;
154 connect( a, SIGNAL( activated() ), this, SLOT( slotBeam() ) ); 160 connect( a, SIGNAL( activated() ), this, SLOT( slotBeam() ) );
155 a->addTo( edit ); 161 a->addTo( edit );
156 a->addTo( listTools ); 162 a->addTo( listTools );
157 } 163 }
158 164
159 edit->insertSeparator(); 165 edit->insertSeparator();
160 166
161 a = new QAction( tr("My Personal Details"), QString::null, 0, 0, 0, TRUE ); 167 a = new QAction( tr("My Personal Details"), QString::null, 0, 0, 0, TRUE );
@@ -489,58 +495,62 @@ void AddressbookWindow::editPersonal()
489 495
490 abEditor->setCaption(tr("Edit My Personal Details")); 496 abEditor->setCaption(tr("Edit My Personal Details"));
491 abEditor->showMaximized(); 497 abEditor->showMaximized();
492 498
493 // fix the foxus... 499 // fix the foxus...
494 abEditor->setNameFocus(); 500 abEditor->setNameFocus();
495 if ( abEditor->exec() ) { 501 if ( abEditor->exec() ) {
496 setFocus(); 502 setFocus();
497 Contact new_personal = abEditor->entry(); 503 Contact new_personal = abEditor->entry();
498 QString fname = addressbookPersonalVCardName(); 504 QString fname = addressbookPersonalVCardName();
499 Contact::writeVCard( fname, new_personal ); 505 Contact::writeVCard( fname, new_personal );
500 abView()->init(new_personal); 506 abView()->init(new_personal);
501 abView()->sync(); 507 abView()->sync();
502 } 508 }
503 abEditor->setCaption( tr("Edit Address") ); 509 abEditor->setCaption( tr("Edit Address") );
504} 510}
505 511
506void AddressbookWindow::slotPersonalView() 512void AddressbookWindow::slotPersonalView()
507{ 513{
508 if (!actionPersonal->isOn()) { 514 if (!actionPersonal->isOn()) {
509 // we just turned it off 515 // we just turned it off
510 setCaption( tr("Contacts") ); 516 setCaption( tr("Contacts") );
511 actionNew->setEnabled(TRUE); 517 actionNew->setEnabled(TRUE);
512 actionTrash->setEnabled(TRUE); 518 actionTrash->setEnabled(TRUE);
519#ifndef MAKE_FOR_SHARP_ROM
513 actionFind->setEnabled(TRUE); 520 actionFind->setEnabled(TRUE);
521#endif
514 slotUpdateToolbar(); // maybe some of the above could be moved there 522 slotUpdateToolbar(); // maybe some of the above could be moved there
515 showList(); 523 showList();
516 return; 524 return;
517 } 525 }
518 526
519 // XXX need to disable some QActions. 527 // XXX need to disable some QActions.
520 actionNew->setEnabled(FALSE); 528 actionNew->setEnabled(FALSE);
521 actionTrash->setEnabled(FALSE); 529 actionTrash->setEnabled(FALSE);
530#ifndef MAKE_FOR_SHARP_ROM
522 actionFind->setEnabled(FALSE); 531 actionFind->setEnabled(FALSE);
532#endif
523 actionMail->setEnabled(FALSE); 533 actionMail->setEnabled(FALSE);
524 534
525 setCaption( tr("Contacts - My Personal Details") ); 535 setCaption( tr("Contacts - My Personal Details") );
526 QString filename = addressbookPersonalVCardName(); 536 QString filename = addressbookPersonalVCardName();
527 Contact me; 537 Contact me;
528 if (QFile::exists(filename)) 538 if (QFile::exists(filename))
529 me = Contact::readVCard( filename )[0]; 539 me = Contact::readVCard( filename )[0];
530 540
531 abView()->init( me ); 541 abView()->init( me );
532 abView()->sync(); 542 abView()->sync();
533 abList->hide(); 543 abList->hide();
534 setCentralWidget( abView() ); 544 setCentralWidget( abView() );
535 mView->show(); 545 mView->show();
536 mView->setFocus(); 546 mView->setFocus();
537} 547}
538 548
539void AddressbookWindow::editEntry( EntryMode entryMode ) 549void AddressbookWindow::editEntry( EntryMode entryMode )
540{ 550{
541 Contact entry; 551 Contact entry;
542 if ( bAbEditFirstTime ) { 552 if ( bAbEditFirstTime ) {
543 abEditor = new ContactEditor( entry, &orderedFields, &slOrderedFields, 553 abEditor = new ContactEditor( entry, &orderedFields, &slOrderedFields,
544 this, "editor" ); 554 this, "editor" );
545 bAbEditFirstTime = FALSE; 555 bAbEditFirstTime = FALSE;
546 if ( entryMode == EditEntry ) 556 if ( entryMode == EditEntry )
@@ -755,58 +765,64 @@ void AddressbookWindow::initFields()
755 slOrderedFields.remove( tr("Name Title") ); 765 slOrderedFields.remove( tr("Name Title") );
756 slOrderedFields.remove( tr("First Name") ); 766 slOrderedFields.remove( tr("First Name") );
757 slOrderedFields.remove( tr("Last Name") ); 767 slOrderedFields.remove( tr("Last Name") );
758 slOrderedFields.remove( tr("File As") ); 768 slOrderedFields.remove( tr("File As") );
759 slOrderedFields.remove( tr("Default Email") ); 769 slOrderedFields.remove( tr("Default Email") );
760 slOrderedFields.remove( tr("Notes") ); 770 slOrderedFields.remove( tr("Notes") );
761 slOrderedFields.remove( tr("Gender") ); 771 slOrderedFields.remove( tr("Gender") );
762 772
763 } 773 }
764} 774}
765 775
766 776
767AbLabel *AddressbookWindow::abView() 777AbLabel *AddressbookWindow::abView()
768{ 778{
769 if ( !mView ) { 779 if ( !mView ) {
770 mView = new AbLabel( this, "viewer" ); 780 mView = new AbLabel( this, "viewer" );
771 mView->init( Contact() ); 781 mView->init( Contact() );
772 connect( mView, SIGNAL( okPressed() ), this, SLOT( slotListView() ) ); 782 connect( mView, SIGNAL( okPressed() ), this, SLOT( slotListView() ) );
773 } 783 }
774 return mView; 784 return mView;
775} 785}
776 786
777void AddressbookWindow::slotFind() 787void AddressbookWindow::slotFind()
778{ 788{
789#ifndef MAKE_FOR_SHARP_ROM
779 if ( centralWidget() == abView() ) 790 if ( centralWidget() == abView() )
780 showList(); 791 showList();
792
781 FindDialog frmFind( "Contacts", this ); 793 FindDialog frmFind( "Contacts", this );
782 QObject::connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)), abList, SLOT(slotDoFind( const QString&,bool,bool,int))); 794 QObject::connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)), abList, SLOT(slotDoFind( const QString&,bool,bool,int)));
783 QObject::connect( abList, SIGNAL(signalNotFound()), &frmFind, SLOT(slotNotFound()) ); 795 QObject::connect( abList, SIGNAL(signalNotFound()), &frmFind, SLOT(slotNotFound()) );
784 QObject::connect( abList, SIGNAL(signalWrapAround()), &frmFind, SLOT(slotWrapAround()) ); 796 QObject::connect( abList, SIGNAL(signalWrapAround()), &frmFind, SLOT(slotWrapAround()) );
797
785 frmFind.exec(); 798 frmFind.exec();
799
786 if ( abList->numSelections() ) 800 if ( abList->numSelections() )
787 abList->clearSelection(); 801 abList->clearSelection();
802
788 abList->clearFindRow(); 803 abList->clearFindRow();
804#endif
789} 805}
790 806
791void AddressbookWindow::slotSetCategory( int c ) 807void AddressbookWindow::slotSetCategory( int c )
792{ 808{
793 if ( c <= 0 ) 809 if ( c <= 0 )
794 return; 810 return;
795 for ( unsigned int i = 1; i < catMenu->count(); i++ ) 811 for ( unsigned int i = 1; i < catMenu->count(); i++ )
796 catMenu->setItemChecked( i, c == (int)i ); 812 catMenu->setItemChecked( i, c == (int)i );
797 if ( c == 1 ) { 813 if ( c == 1 ) {
798 abList->setShowCategory( QString::null ); 814 abList->setShowCategory( QString::null );
799 setCaption( tr("Contacts") + " - " + tr ( "All" ) ); 815 setCaption( tr("Contacts") + " - " + tr ( "All" ) );
800 } else if ( c == (int)catMenu->count() ) { 816 } else if ( c == (int)catMenu->count() ) {
801 abList->setShowCategory( tr( "Unfiled" ) ); 817 abList->setShowCategory( tr( "Unfiled" ) );
802 setCaption( tr("Contacts") + " - " + tr( "Unfiled" ) ); 818 setCaption( tr("Contacts") + " - " + tr( "Unfiled" ) );
803 } else { 819 } else {
804 QString cat = abList->categories()[c - 2]; 820 QString cat = abList->categories()[c - 2];
805 abList->setShowCategory( cat ); 821 abList->setShowCategory( cat );
806 setCaption( tr("Contacts") + " - " + cat ); 822 setCaption( tr("Contacts") + " - " + cat );
807 } 823 }
808} 824}
809 825
810void AddressbookWindow::populateCategories() 826void AddressbookWindow::populateCategories()
811{ 827{
812 catMenu->clear(); 828 catMenu->clear();
diff --git a/core/pim/addressbook/contacteditor.cpp b/core/pim/addressbook/contacteditor.cpp
index 6edab2c..cbcd11f 100644
--- a/core/pim/addressbook/contacteditor.cpp
+++ b/core/pim/addressbook/contacteditor.cpp
@@ -262,177 +262,387 @@ void ContactEditor::init() {
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
286 QGridLayout *gl = new QGridLayout( container, 1, 1, 2, 3 ); 286 QGridLayout *gl = new QGridLayout( container, 1, 1, 2, 4 );
287 gl->setResizeMode( QLayout::FreeResize ); 287 gl->setResizeMode( QLayout::FreeResize );
288 288
289 btnFullName = new QPushButton( tr( "Full Name..." ), container ); 289 btnFullName = new QPushButton( tr( "Full Name..." ), container );
290 gl->addWidget( btnFullName, 0, 0 ); 290 gl->addWidget( btnFullName, 0, 0 );
291 txtFullName = new QLineEdit( container ); 291 txtFullName = new QLineEdit( container );
292 gl->addWidget( txtFullName, 0, 1 ); 292 gl->addWidget( txtFullName, 0, 1 );
293 293
294 QLabel *l = new QLabel( tr( "Job Title" ), container ); 294 QLabel *l = new QLabel( tr( "Job Title" ), container );
295 gl->addWidget( l, 1, 0 ); 295 gl->addWidget( l, 1, 0 );
296 txtJobTitle = new QLineEdit( container ); 296 txtJobTitle = new QLineEdit( container );
297 gl->addWidget( txtJobTitle, 1, 1 ); 297 gl->addWidget( txtJobTitle, 1, 1 );
298 298
299 l = new QLabel( tr( "Organization" ), container ); 299 l = new QLabel( tr( "Organization" ), container );
300 gl->addWidget( l, 2, 0 ); 300 gl->addWidget( l, 2, 0 );
301 txtOrganization = new QLineEdit( container ); 301 txtOrganization = new QLineEdit( container );
302 gl->addWidget( txtOrganization, 2, 1 ); 302 gl->addWidget( txtOrganization, 2, 1 );
303 303
304 cmbChooserField1 = new QComboBox( FALSE, container ); 304 cmbChooserField1 = new QComboBox( FALSE, container );
305 cmbChooserField1->setMaximumWidth( 100 ); 305 cmbChooserField1->setMaximumWidth( 90 );
306 gl->addWidget( cmbChooserField1, 3, 0 ); 306 gl->addWidget( cmbChooserField1, 3, 0 );
307 txtChooserField1 = new QLineEdit( container ); 307 txtChooserField1 = new QLineEdit( container );
308 gl->addWidget( txtChooserField1, 3, 1 ); 308 gl->addWidget( txtChooserField1, 3, 1 );
309 309
310 cmbChooserField2 = new QComboBox( FALSE, container ); 310 cmbChooserField2 = new QComboBox( FALSE, container );
311 cmbChooserField2->setMaximumWidth( 100 ); 311 cmbChooserField2->setMaximumWidth( 90 );
312 gl->addWidget( cmbChooserField2, 4, 0 ); 312 gl->addWidget( cmbChooserField2, 4, 0 );
313 txtChooserField2 = new QLineEdit( container ); 313 txtChooserField2 = new QLineEdit( container );
314 gl->addWidget( txtChooserField2, 4, 1 ); 314 gl->addWidget( txtChooserField2, 4, 1 );
315 315
316 cmbChooserField3 = new QComboBox( FALSE, container ); 316 cmbChooserField3 = new QComboBox( FALSE, container );
317 cmbChooserField3->setMaximumWidth( 100 ); 317 cmbChooserField3->setMaximumWidth( 90 );
318 gl->addWidget( cmbChooserField3, 5, 0 ); 318 gl->addWidget( cmbChooserField3, 5, 0 );
319 txtChooserField3 = new QLineEdit( container ); 319 txtChooserField3 = new QLineEdit( container );
320 gl->addWidget( txtChooserField3, 5, 1 ); 320 gl->addWidget( txtChooserField3, 5, 1 );
321 321
322 l = new QLabel( tr( "File As" ), container ); 322 l = new QLabel( tr( "File As" ), container );
323 gl->addWidget( l, 6, 0 ); 323 gl->addWidget( l, 6, 0 );
324 cmbFileAs = new QComboBox( TRUE, container ); 324 cmbFileAs = new QComboBox( TRUE, container );
325 gl->addWidget( cmbFileAs, 6, 1 ); 325 gl->addWidget( cmbFileAs, 6, 1 );
326 326
327 l = new QLabel( tr( "Category" ), container ); 327 l = new QLabel( tr( "Category" ), container );
328 gl->addWidget( l, 7, 0 ); 328 gl->addWidget( l, 7, 0 );
329 cmbCat = new CategorySelect( container ); 329 cmbCat = new CategorySelect( container );
330 gl->addWidget( cmbCat, 7, 1 ); 330 gl->addWidget( cmbCat, 7, 1 );
331 331
332 btnNote = new QPushButton( tr( "Notes..." ), container ); 332 btnNote = new QPushButton( tr( "Notes..." ), container );
333 gl->addWidget( btnNote, 8, 1 ); 333 gl->addWidget( btnNote, 8, 1 );
334 334
335 tabMain->insertTab( tabViewport, tr( "General" ) ); 335 tabMain->insertTab( tabViewport, tr( "General" ) );
336 336
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, 5, 3, 2, 3 ); 349 gl = new QGridLayout( container, 6, 3, 2, 4 );
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
376 l = new QLabel( tr( "State" ), container ); 376 l = new QLabel( tr( "State" ), container );
377 gl->addWidget( l, 3, 0 ); 377 gl->addWidget( l, 3, 0 );
378 txtState = new QLineEdit( container ); 378 txtState = new QLineEdit( container );
379 gl->addMultiCellWidget( txtState, 3, 3, 1, 2 ); 379 gl->addMultiCellWidget( txtState, 3, 3, 1, 2 );
380 380
381 l = new QLabel( tr( "Zip Code" ), container ); 381 l = new QLabel( tr( "Zip Code" ), container );
382 gl->addWidget( l, 4, 0 ); 382 gl->addWidget( l, 4, 0 );
383 txtZip = new QLineEdit( container ); 383 txtZip = new QLineEdit( container );
384 gl->addMultiCellWidget( txtZip, 4, 4, 1, 2 ); 384 gl->addMultiCellWidget( txtZip, 4, 4, 1, 2 );
385 385
386 l = new QLabel( tr( "Country" ), container ); 386 l = new QLabel( tr( "Country" ), container );
387 gl->addWidget( l, 5, 0 ); 387 gl->addWidget( l, 5, 0 );
388 cmbCountry = new QComboBox( TRUE, container ); 388 cmbCountry = new QComboBox( TRUE, container );
389 cmbCountry->insertItem( tr( "" ) ); 389 cmbCountry->insertItem( tr( "" ) );
390 cmbCountry->insertItem( tr( "United States" ) ); 390 cmbCountry->insertItem( tr ( "United States" ) );
391 cmbCountry->insertItem( tr( "United Kingdom" ) ); 391 cmbCountry->insertItem( tr ( "United Kingdom" ) );
392 cmbCountry->insertItem( tr( "Japan" ) ); 392 cmbCountry->insertItem( tr ( "Afganistan" ) );
393 cmbCountry->insertItem( tr( "France" ) ); 393 cmbCountry->insertItem( tr ( "Albania" ) );
394 cmbCountry->insertItem( tr( "Germany" ) ); 394 cmbCountry->insertItem( tr ( "Algeria" ) );
395 cmbCountry->insertItem( tr( "Norway" ) ); 395 cmbCountry->insertItem( tr ( "American Samoa" ) );
396 cmbCountry->insertItem( tr( "Canada" ) ); 396 cmbCountry->insertItem( tr ( "Andorra" ) );
397 397 cmbCountry->insertItem( tr ( "Angola" ) );
398 cmbCountry->insertItem( tr ( "Anguilla" ) );
399 cmbCountry->insertItem( tr ( "Antartica" ) );
400 cmbCountry->insertItem( tr ( "Argentina" ) );
401 cmbCountry->insertItem( tr ( "Armania" ) );
402 cmbCountry->insertItem( tr ( "Aruba" ) );
403 cmbCountry->insertItem( tr ( "Australia" ) );
404 cmbCountry->insertItem( tr ( "Austria" ) );
405 cmbCountry->insertItem( tr ( "Azerbaijan" ) );
406 cmbCountry->insertItem( tr ( "Bahamas" ) );
407 cmbCountry->insertItem( tr ( "Bahrain" ) );
408 cmbCountry->insertItem( tr ( "Bangladesh" ) );
409 cmbCountry->insertItem( tr ( "Barbados" ) );
410 cmbCountry->insertItem( tr ( "Belarus" ) );
411 cmbCountry->insertItem( tr ( "Belgium" ) );
412 cmbCountry->insertItem( tr ( "Belize" ) );
413 cmbCountry->insertItem( tr ( "Benin" ) );
414 cmbCountry->insertItem( tr ( "Bermuda" ) );
415 cmbCountry->insertItem( tr ( "Bhutan" ) );
416 cmbCountry->insertItem( tr ( "Boliva" ) );
417 cmbCountry->insertItem( tr ( "Botswana" ) );
418 cmbCountry->insertItem( tr ( "Bouvet Island" ) );
419 cmbCountry->insertItem( tr ( "Brazil" ) );
420 cmbCountry->insertItem( tr ( "Brunei Darussalam" ) );
421 cmbCountry->insertItem( tr ( "Bulgaria" ) );
422 cmbCountry->insertItem( tr ( "Burkina Faso" ) );
423 cmbCountry->insertItem( tr ( "Burundi" ) );
424 cmbCountry->insertItem( tr ( "Cambodia" ) );
425 cmbCountry->insertItem( tr ( "Camaroon" ) );
426 cmbCountry->insertItem( tr ( "Canada" ) );
427 cmbCountry->insertItem( tr ( "Cape Verde" ) );
428 cmbCountry->insertItem( tr ( "Cayman Islands" ) );
429 cmbCountry->insertItem( tr ( "Chad" ) );
430 cmbCountry->insertItem( tr ( "Chile" ) );
431 cmbCountry->insertItem( tr ( "China" ) );
432 cmbCountry->insertItem( tr ( "Christmas Island" ) );
433 cmbCountry->insertItem( tr ( "Colombia" ) );
434 cmbCountry->insertItem( tr ( "Comoros" ) );
435 cmbCountry->insertItem( tr ( "Congo" ) );
436 cmbCountry->insertItem( tr ( "Cook Island" ) );
437 cmbCountry->insertItem( tr ( "Costa Rica" ) );
438 cmbCountry->insertItem( tr ( "Cote d'Ivoire" ) );
439 cmbCountry->insertItem( tr ( "Croatia" ) );
440 cmbCountry->insertItem( tr ( "Cuba" ) );
441 cmbCountry->insertItem( tr ( "Cyprus" ) );
442 cmbCountry->insertItem( tr ( "Czech Republic" ) );
443 cmbCountry->insertItem( tr ( "Denmark" ) );
444 cmbCountry->insertItem( tr ( "Djibouti" ) );
445 cmbCountry->insertItem( tr ( "Dominica" ) );
446 cmbCountry->insertItem( tr ( "Dominican Republic" ) );
447 cmbCountry->insertItem( tr ( "East Timor" ) );
448 cmbCountry->insertItem( tr ( "Ecuador" ) );
449 cmbCountry->insertItem( tr ( "Egypt" ) );
450 cmbCountry->insertItem( tr ( "El Salvador" ) );
451 cmbCountry->insertItem( tr ( "Equatorial Guinea" ) );
452 cmbCountry->insertItem( tr ( "Eritrea" ) );
453 cmbCountry->insertItem( tr ( "Estonia" ) );
454 cmbCountry->insertItem( tr ( "Ethiopia" ) );
455 cmbCountry->insertItem( tr ( "Falkland Islands" ) );
456 cmbCountry->insertItem( tr ( "Faroe Islands" ) );
457 cmbCountry->insertItem( tr ( "Fiji" ) );
458 cmbCountry->insertItem( tr ( "Finland" ) );
459 cmbCountry->insertItem( tr ( "France" ) );
460 cmbCountry->insertItem( tr ( "French Guiana" ) );
461 cmbCountry->insertItem( tr ( "French Polynesia" ) );
462 cmbCountry->insertItem( tr ( "Gabon" ) );
463 cmbCountry->insertItem( tr ( "Gambia" ) );
464 cmbCountry->insertItem( tr ( "Georgia" ) );
465 cmbCountry->insertItem( tr ( "Germany" ) );
466 cmbCountry->insertItem( tr ( "Gahna" ) );
467 cmbCountry->insertItem( tr ( "Gibraltar" ) );
468 cmbCountry->insertItem( tr ( "Greece" ) );
469 cmbCountry->insertItem( tr ( "Greenland" ) );
470 cmbCountry->insertItem( tr ( "Grenada" ) );
471 cmbCountry->insertItem( tr ( "Guadelupe" ) );
472 cmbCountry->insertItem( tr ( "Guam" ) );
473 cmbCountry->insertItem( tr ( "Guatemala" ) );
474 cmbCountry->insertItem( tr ( "Guinea" ) );
475 cmbCountry->insertItem( tr ( "Guinea-bissau" ) );
476 cmbCountry->insertItem( tr ( "Guyana" ) );
477 cmbCountry->insertItem( tr ( "Haiti" ) );
478 cmbCountry->insertItem( tr ( "Holy See" ) );
479 cmbCountry->insertItem( tr ( "Honduras" ) );
480 cmbCountry->insertItem( tr ( "Hong Kong" ) );
481 cmbCountry->insertItem( tr ( "Hungary" ) );
482 cmbCountry->insertItem( tr ( "Iceland" ) );
483 cmbCountry->insertItem( tr ( "India" ) );
484 cmbCountry->insertItem( tr ( "Indonesia" ) );
485 cmbCountry->insertItem( tr ( "Ireland" ) );
486 cmbCountry->insertItem( tr ( "Israel" ) );
487 cmbCountry->insertItem( tr ( "Italy" ) );
488 cmbCountry->insertItem( tr ( "Jamacia" ) );
489 cmbCountry->insertItem( tr ( "Japan" ) );
490 cmbCountry->insertItem( tr ( "Jordan" ) );
491 cmbCountry->insertItem( tr ( "Kazakhstan" ) );
492 cmbCountry->insertItem( tr ( "Kenya" ) );
493 cmbCountry->insertItem( tr ( "Kribati" ) );
494 cmbCountry->insertItem( tr ( "Korea" ) );
495 cmbCountry->insertItem( tr ( "Kuait" ) );
496 cmbCountry->insertItem( tr ( "Kyrgyztan" ) );
497 cmbCountry->insertItem( tr ( "Laos" ) );
498 cmbCountry->insertItem( tr ( "Latvia" ) );
499 cmbCountry->insertItem( tr ( "Lebanon" ) );
500 cmbCountry->insertItem( tr ( "Lesotho" ) );
501 cmbCountry->insertItem( tr ( "Liberia" ) );
502 cmbCountry->insertItem( tr ( "Liechtenstein" ) );
503 cmbCountry->insertItem( tr ( "Lithuania" ) );
504 cmbCountry->insertItem( tr ( "Luxembourg" ) );
505 cmbCountry->insertItem( tr ( "Macau" ) );
506 cmbCountry->insertItem( tr ( "Macedonia" ) );
507 cmbCountry->insertItem( tr ( "Madagascar" ) );
508 cmbCountry->insertItem( tr ( "Malawi" ) );
509 cmbCountry->insertItem( tr ( "Malaysia" ) );
510 cmbCountry->insertItem( tr ( "Maldives" ) );
511 cmbCountry->insertItem( tr ( "Mali" ) );
512 cmbCountry->insertItem( tr ( "Malta" ) );
513 cmbCountry->insertItem( tr ( "Martinique" ) );
514 cmbCountry->insertItem( tr ( "Mauritania" ) );
515 cmbCountry->insertItem( tr ( "Mauritius" ) );
516 cmbCountry->insertItem( tr ( "Mayotte" ) );
517 cmbCountry->insertItem( tr ( "Mexico" ) );
518 cmbCountry->insertItem( tr ( "Micronesia" ) );
519 cmbCountry->insertItem( tr ( "Moldova" ) );
520 cmbCountry->insertItem( tr ( "Monaco" ) );
521 cmbCountry->insertItem( tr ( "Mongolia" ) );
522 cmbCountry->insertItem( tr ( "Montserrat" ) );
523 cmbCountry->insertItem( tr ( "Morocco" ) );
524 cmbCountry->insertItem( tr ( "Mozambique" ) );
525 cmbCountry->insertItem( tr ( "Myanmar" ) );
526 cmbCountry->insertItem( tr ( "Namibia" ) );
527 cmbCountry->insertItem( tr ( "Nauru" ) );
528 cmbCountry->insertItem( tr ( "Nepal" ) );
529 cmbCountry->insertItem( tr ( "Netherlands" ) );
530 cmbCountry->insertItem( tr ( "New Caledonia" ) );
531 cmbCountry->insertItem( tr ( "New Zealand" ) );
532 cmbCountry->insertItem( tr ( "Nicaragua" ) );
533 cmbCountry->insertItem( tr ( "Niger" ) );
534 cmbCountry->insertItem( tr ( "Nigeria" ) );
535 cmbCountry->insertItem( tr ( "Niue" ) );
536 cmbCountry->insertItem( tr ( "Norway" ) );
537 cmbCountry->insertItem( tr ( "Oman" ) );
538 cmbCountry->insertItem( tr ( "Pakistan" ) );
539 cmbCountry->insertItem( tr ( "Palau" ) );
540 cmbCountry->insertItem( tr ( "Palestinian Territory" ) );
541 cmbCountry->insertItem( tr ( "Panama" ) );
542 cmbCountry->insertItem( tr ( "Papua New Guinea" ) );
543 cmbCountry->insertItem( tr ( "Paraguay" ) );
544 cmbCountry->insertItem( tr ( "Peru" ) );
545 cmbCountry->insertItem( tr ( "Philippines" ) );
546 cmbCountry->insertItem( tr ( "Pitcairn" ) );
547 cmbCountry->insertItem( tr ( "Poland" ) );
548 cmbCountry->insertItem( tr ( "Portugal" ) );
549 cmbCountry->insertItem( tr ( "Puerto Rico" ) );
550 cmbCountry->insertItem( tr ( "Qatar" ) );
551 cmbCountry->insertItem( tr ( "Reunion" ) );
552 cmbCountry->insertItem( tr ( "Romania" ) );
553 cmbCountry->insertItem( tr ( "Russia" ) );
554 cmbCountry->insertItem( tr ( "Rwanda" ) );
555 cmbCountry->insertItem( tr ( "Saint Lucia" ) );
556 cmbCountry->insertItem( tr ( "Samoa" ) );
557 cmbCountry->insertItem( tr ( "San Marino" ) );
558 cmbCountry->insertItem( tr ( "Saudi Arabia" ) );
559 cmbCountry->insertItem( tr ( "Senegal" ) );
560 cmbCountry->insertItem( tr ( "Seychelles" ) );
561 cmbCountry->insertItem( tr ( "Sierra Leone" ) );
562 cmbCountry->insertItem( tr ( "Singapore" ) );
563 cmbCountry->insertItem( tr ( "Slovakia" ) );
564 cmbCountry->insertItem( tr ( "Slovenia" ) );
565 cmbCountry->insertItem( tr ( "Solomon Islands" ) );
566 cmbCountry->insertItem( tr ( "Somalia" ) );
567 cmbCountry->insertItem( tr ( "South Africa" ) );
568 cmbCountry->insertItem( tr ( "Spain" ) );
569 cmbCountry->insertItem( tr ( "Sri Lanka" ) );
570 cmbCountry->insertItem( tr ( "St. Helena" ) );
571 cmbCountry->insertItem( tr ( "Sudan" ) );
572 cmbCountry->insertItem( tr ( "Suriname" ) );
573 cmbCountry->insertItem( tr ( "Swaziland" ) );
574 cmbCountry->insertItem( tr ( "Sweden" ) );
575 cmbCountry->insertItem( tr ( "Switzerland" ) );
576 cmbCountry->insertItem( tr ( "Taiwan" ) );
577 cmbCountry->insertItem( tr ( "Tajikistan" ) );
578 cmbCountry->insertItem( tr ( "Tanzania" ) );
579 cmbCountry->insertItem( tr ( "Thailand" ) );
580 cmbCountry->insertItem( tr ( "Togo" ) );
581 cmbCountry->insertItem( tr ( "Tokelau" ) );
582 cmbCountry->insertItem( tr ( "Tonga" ) );
583 cmbCountry->insertItem( tr ( "Tunisia" ) );
584 cmbCountry->insertItem( tr ( "Turkey" ) );
585 cmbCountry->insertItem( tr ( "Turkmenistan" ) );
586 cmbCountry->insertItem( tr ( "Tuvalu" ) );
587 cmbCountry->insertItem( tr ( "Uganda" ) );
588 cmbCountry->insertItem( tr ( "Ukraine" ) );
589 cmbCountry->insertItem( tr ( "Uruguay" ) );
590 cmbCountry->insertItem( tr ( "Uzbekistan" ) );
591 cmbCountry->insertItem( tr ( "Vanuatu" ) );
592 cmbCountry->insertItem( tr ( "Venezuela" ) );
593 cmbCountry->insertItem( tr ( "Viet Nam" ) );
594 cmbCountry->insertItem( tr ( "Virgin Islands" ) );
595 cmbCountry->insertItem( tr ( "Western Sahara" ) );
596 cmbCountry->insertItem( tr ( "Yemen" ) );
597 cmbCountry->insertItem( tr ( "Yugoslavia" ) );
598 cmbCountry->insertItem( tr ( "Zambia" ) );
599 cmbCountry->insertItem( tr ( "Zimbabwe" ) );
600
601 cmbCountry->setMaximumWidth( 135 );
602
398 gl->addMultiCellWidget( cmbCountry, 5, 5, 1, 2 ); 603 gl->addMultiCellWidget( cmbCountry, 5, 5, 1, 2 );
399 604
605 cmbChooserField4 = new QComboBox( FALSE, container );
606 cmbChooserField4->setMaximumWidth( 90 );
607 gl->addWidget( cmbChooserField4, 6, 0 );
608 txtChooserField4 = new QLineEdit( container );
609 gl->addMultiCellWidget( txtChooserField4, 6, 6, 1, 2 );
400 tabMain->insertTab( tabViewport, tr( "Address" ) ); 610 tabMain->insertTab( tabViewport, tr( "Address" ) );
401 611
402 tabViewport = new QWidget ( tabMain ); 612 tabViewport = new QWidget ( tabMain );
403 613
404 vb = new QVBoxLayout( tabViewport ); 614 vb = new QVBoxLayout( tabViewport );
405 615
406 svDetails = new QScrollView( tabViewport ); 616 svDetails = new QScrollView( tabViewport );
407 vb->addWidget( svDetails, 0, 0 ); 617 vb->addWidget( svDetails, 0, 0 );
408 svDetails->setResizePolicy( QScrollView::AutoOneFit ); 618 svDetails->setResizePolicy( QScrollView::AutoOneFit );
409 svDetails->setFrameStyle( QFrame::NoFrame ); 619 svDetails->setFrameStyle( QFrame::NoFrame );
410 620
411 container = new QWidget( svDetails->viewport() ); 621 container = new QWidget( svDetails->viewport() );
412 svDetails->addChild( container ); 622 svDetails->addChild( container );
413 623
414 gl = new QGridLayout( container, 1, 2, 2, 3 ); 624 gl = new QGridLayout( container, 1, 2, 2, 4 );
415 625
416 QStringList::ConstIterator it = slDynamicEntries->begin(); 626 QStringList::ConstIterator it = slDynamicEntries->begin();
417 for (i = 0; it != slDynamicEntries->end(); i++, ++it) { 627 for (i = 0; it != slDynamicEntries->end(); i++, ++it) {
418 l = new QLabel( *it, container ); 628 l = new QLabel( *it, container );
419 listName.append( l ); 629 listName.append( l );
420 gl->addWidget( l, i, 0 ); 630 gl->addWidget( l, i, 0 );
421 QLineEdit *e = new QLineEdit( container ); 631 QLineEdit *e = new QLineEdit( container );
422 listValue.append( e ); 632 listValue.append( e );
423 gl->addWidget( e, i, 1); 633 gl->addWidget( e, i, 1);
424 } 634 }
425 635
426 l = new QLabel( tr("Gender"), container ); 636 l = new QLabel( tr("Gender"), container );
427 gl->addWidget( l, slDynamicEntries->count(), 0 ); 637 gl->addWidget( l, slDynamicEntries->count(), 0 );
428 cmbGender = new QComboBox( container ); 638 cmbGender = new QComboBox( container );
429 cmbGender->insertItem( "", 0 ); 639 cmbGender->insertItem( "", 0 );
430 cmbGender->insertItem( tr("Male"), 1); 640 cmbGender->insertItem( tr("Male"), 1);
431 cmbGender->insertItem( tr("Female"), 2); 641 cmbGender->insertItem( tr("Female"), 2);
432 gl->addWidget( cmbGender, slDynamicEntries->count(), 1 ); 642 gl->addWidget( cmbGender, slDynamicEntries->count(), 1 );
433 643
434 tabMain->insertTab( tabViewport, tr( "Details" ) ); 644 tabMain->insertTab( tabViewport, tr( "Details" ) );
435 645
436 dlgNote = new QDialog( this, "Note Dialog", TRUE ); 646 dlgNote = new QDialog( this, "Note Dialog", TRUE );
437 dlgNote->setCaption( tr("Enter Note") ); 647 dlgNote->setCaption( tr("Enter Note") );
438 QVBoxLayout *vbNote = new QVBoxLayout( dlgNote ); 648 QVBoxLayout *vbNote = new QVBoxLayout( dlgNote );
@@ -446,71 +656,74 @@ void ContactEditor::init() {
446 656
447 l = new QLabel( tr("First Name"), dlgName ); 657 l = new QLabel( tr("First Name"), dlgName );
448 gl->addWidget( l, 0, 0 ); 658 gl->addWidget( l, 0, 0 );
449 txtFirstName = new QLineEdit( dlgName ); 659 txtFirstName = new QLineEdit( dlgName );
450 gl->addWidget( txtFirstName, 0, 1 ); 660 gl->addWidget( txtFirstName, 0, 1 );
451 661
452 l = new QLabel( tr("Middle Name"), dlgName ); 662 l = new QLabel( tr("Middle Name"), dlgName );
453 gl->addWidget( l, 1, 0 ); 663 gl->addWidget( l, 1, 0 );
454 txtMiddleName = new QLineEdit( dlgName ); 664 txtMiddleName = new QLineEdit( dlgName );
455 gl->addWidget( txtMiddleName, 1, 1 ); 665 gl->addWidget( txtMiddleName, 1, 1 );
456 666
457 l = new QLabel( tr("Last Name"), dlgName ); 667 l = new QLabel( tr("Last Name"), dlgName );
458 gl->addWidget( l, 2, 0 ); 668 gl->addWidget( l, 2, 0 );
459 txtLastName = new QLineEdit( dlgName ); 669 txtLastName = new QLineEdit( dlgName );
460 gl->addWidget( txtLastName, 2, 1 ); 670 gl->addWidget( txtLastName, 2, 1 );
461 671
462 l = new QLabel( tr("Suffix"), dlgName ); 672 l = new QLabel( tr("Suffix"), dlgName );
463 gl->addWidget( l, 3, 0 ); 673 gl->addWidget( l, 3, 0 );
464 txtSuffix = new QLineEdit( dlgName ); 674 txtSuffix = new QLineEdit( dlgName );
465 gl->addWidget( txtSuffix, 3, 1 ); 675 gl->addWidget( txtSuffix, 3, 1 );
466 676
467 cmbChooserField1->insertStringList( *slChooserNames ); 677 cmbChooserField1->insertStringList( *slChooserNames );
468 cmbChooserField2->insertStringList( *slChooserNames ); 678 cmbChooserField2->insertStringList( *slChooserNames );
469 cmbChooserField3->insertStringList( *slChooserNames ); 679 cmbChooserField3->insertStringList( *slChooserNames );
680 cmbChooserField4->insertStringList( *slChooserNames );
470 681
471 cmbChooserField1->setCurrentItem( 0 ); 682 cmbChooserField1->setCurrentItem( 0 );
472 cmbChooserField2->setCurrentItem( 1 ); 683 cmbChooserField2->setCurrentItem( 1 );
473 cmbChooserField3->setCurrentItem( 2 ); 684 cmbChooserField3->setCurrentItem( 2 );
474 685
475 connect( btnFullName, SIGNAL(clicked()), this, SLOT(slotName()) ); 686 connect( btnFullName, SIGNAL(clicked()), this, SLOT(slotName()) );
476 687
477 connect( txtFullName, SIGNAL(textChanged(const QString &)), this, SLOT(slotFullNameChange(const QString &)) ); 688 connect( txtFullName, SIGNAL(textChanged(const QString &)), this, SLOT(slotFullNameChange(const QString &)) );
478 689
479 connect( txtChooserField1, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser1Change(const QString &)) ); 690 connect( txtChooserField1, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser1Change(const QString &)) );
480 connect( txtChooserField2, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser2Change(const QString &)) ); 691 connect( txtChooserField2, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser2Change(const QString &)) );
481 connect( txtChooserField3, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser3Change(const QString &)) ); 692 connect( txtChooserField3, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser3Change(const QString &)) );
693 connect( txtChooserField4, SIGNAL(textChanged(const QString &)), this, SLOT(slotChooser4Change(const QString &)) );
482 connect( txtAddress, SIGNAL(textChanged(const QString &)), this, SLOT(slotAddressChange(const QString &)) ); 694 connect( txtAddress, SIGNAL(textChanged(const QString &)), this, SLOT(slotAddressChange(const QString &)) );
483 //connect( txtAddress2, SIGNAL(textChanged(const QString &)), this, SLOT(slotAddress2Change(const QString &)) ); 695 //connect( txtAddress2, SIGNAL(textChanged(const QString &)), this, SLOT(slotAddress2Change(const QString &)) );
484 //connect( txtPOBox, SIGNAL(textChanged(const QString &)), this, SLOT(slotPOBoxChange(const QString &)) ); 696 //connect( txtPOBox, SIGNAL(textChanged(const QString &)), this, SLOT(slotPOBoxChange(const QString &)) );
485 connect( txtCity, SIGNAL(textChanged(const QString &)), this, SLOT(slotCityChange(const QString &)) ); 697 connect( txtCity, SIGNAL(textChanged(const QString &)), this, SLOT(slotCityChange(const QString &)) );
486 connect( txtState, SIGNAL(textChanged(const QString &)), this, SLOT(slotStateChange(const QString &)) ); 698 connect( txtState, SIGNAL(textChanged(const QString &)), this, SLOT(slotStateChange(const QString &)) );
487 connect( txtZip, SIGNAL(textChanged(const QString &)), this, SLOT(slotZipChange(const QString &)) ); 699 connect( txtZip, SIGNAL(textChanged(const QString &)), this, SLOT(slotZipChange(const QString &)) );
488 connect( cmbCountry, SIGNAL(textChanged(const QString &)), this, SLOT(slotCountryChange(const QString &)) ); 700 connect( cmbCountry, SIGNAL(textChanged(const QString &)), this, SLOT(slotCountryChange(const QString &)) );
489 connect( cmbCountry, SIGNAL(activated(const QString &)), this, SLOT(slotCountryChange(const QString &)) ); 701 connect( cmbCountry, SIGNAL(activated(const QString &)), this, SLOT(slotCountryChange(const QString &)) );
490 connect( cmbChooserField1, SIGNAL(activated(int)), this, SLOT(slotCmbChooser1Change(int)) ); 702 connect( cmbChooserField1, SIGNAL(activated(int)), this, SLOT(slotCmbChooser1Change(int)) );
491 connect( cmbChooserField2, SIGNAL(activated(int)), this, SLOT(slotCmbChooser2Change(int)) ); 703 connect( cmbChooserField2, SIGNAL(activated(int)), this, SLOT(slotCmbChooser2Change(int)) );
492 connect( cmbChooserField3, SIGNAL(activated(int)), this, SLOT(slotCmbChooser3Change(int)) ); 704 connect( cmbChooserField3, SIGNAL(activated(int)), this, SLOT(slotCmbChooser3Change(int)) );
705 connect( cmbChooserField4, SIGNAL(activated(int)), this, SLOT(slotCmbChooser4Change(int)) );
493 connect( cmbAddress, SIGNAL(activated(int)), this, SLOT(slotAddressTypeChange(int)) ); 706 connect( cmbAddress, SIGNAL(activated(int)), this, SLOT(slotAddressTypeChange(int)) );
494 new QPEDialogListener(this); 707 new QPEDialogListener(this);
495} 708}
496 709
497void ContactEditor::initMap() 710void ContactEditor::initMap()
498{ 711{
499 /* 712 /*
500 // since the fields and the XML fields exist, create a map 713 // since the fields and the XML fields exist, create a map
501 // between them... 714 // between them...
502 Config cfg1( "AddressBook" ); 715 Config cfg1( "AddressBook" );
503 Config cfg2( "AddressBook" ); 716 Config cfg2( "AddressBook" );
504 QString strCfg1, 717 QString strCfg1,
505 strCfg2; 718 strCfg2;
506 int i; 719 int i;
507 720
508 // This stuff better exist... 721 // This stuff better exist...
509 cfg1.setGroup( "AddressFields" ); 722 cfg1.setGroup( "AddressFields" );
510o cfg2.setGroup( "XMLFields" ); 723o cfg2.setGroup( "XMLFields" );
511 i = 0; 724 i = 0;
512 strCfg1 = cfg1.readEntry( "Field" + QString::number(i), QString::null ); 725 strCfg1 = cfg1.readEntry( "Field" + QString::number(i), QString::null );
513 strCfg2 = cfg2.readEntry( "XMLField" + QString::number(i++), 726 strCfg2 = cfg2.readEntry( "XMLField" + QString::number(i++),
514 QString::null ); 727 QString::null );
515 while ( !strCfg1.isNull() && !strCfg2.isNull() ) { 728 while ( !strCfg1.isNull() && !strCfg2.isNull() ) {
516 mapField.insert( strCfg1, strCfg2 ); 729 mapField.insert( strCfg1, strCfg2 );
@@ -525,48 +738,56 @@ o cfg2.setGroup( "XMLFields" );
525void ContactEditor::slotChooser1Change( const QString &textChanged ) { 738void ContactEditor::slotChooser1Change( const QString &textChanged ) {
526 739
527 int index = cmbChooserField1->currentItem(); 740 int index = cmbChooserField1->currentItem();
528 741
529 (*slChooserValues)[index] = textChanged; 742 (*slChooserValues)[index] = textChanged;
530 743
531} 744}
532 745
533void ContactEditor::slotChooser2Change( const QString &textChanged ) { 746void ContactEditor::slotChooser2Change( const QString &textChanged ) {
534 747
535 int index = cmbChooserField2->currentItem(); 748 int index = cmbChooserField2->currentItem();
536 749
537 (*slChooserValues)[index] = textChanged; 750 (*slChooserValues)[index] = textChanged;
538 751
539} 752}
540 753
541void ContactEditor::slotChooser3Change( const QString &textChanged ) { 754void ContactEditor::slotChooser3Change( const QString &textChanged ) {
542 755
543 int index = cmbChooserField3->currentItem(); 756 int index = cmbChooserField3->currentItem();
544 757
545 (*slChooserValues)[index] = textChanged; 758 (*slChooserValues)[index] = textChanged;
546 759
547} 760}
548 761
762void ContactEditor::slotChooser4Change( const QString &textChanged ) {
763
764 int index = cmbChooserField4->currentItem();
765
766 (*slChooserValues)[index] = textChanged;
767
768}
769
549void ContactEditor::slotAddressChange( const QString &textChanged ) { 770void ContactEditor::slotAddressChange( const QString &textChanged ) {
550 771
551 if ( cmbAddress->currentItem() == 0 ) { 772 if ( cmbAddress->currentItem() == 0 ) {
552 (*slBusinessAddress)[0] = textChanged; 773 (*slBusinessAddress)[0] = textChanged;
553 } else { 774 } else {
554 (*slHomeAddress)[0] = textChanged; 775 (*slHomeAddress)[0] = textChanged;
555 } 776 }
556} 777}
557 778
558void ContactEditor::slotAddress2Change( const QString &textChanged ) { 779void ContactEditor::slotAddress2Change( const QString &textChanged ) {
559 780
560 if ( cmbAddress->currentItem() == 0 ) { 781 if ( cmbAddress->currentItem() == 0 ) {
561 (*slBusinessAddress)[1] = textChanged; 782 (*slBusinessAddress)[1] = textChanged;
562 } else { 783 } else {
563 (*slHomeAddress)[1] = textChanged; 784 (*slHomeAddress)[1] = textChanged;
564 } 785 }
565} 786}
566 787
567void ContactEditor::slotPOBoxChange( const QString &textChanged ) { 788void ContactEditor::slotPOBoxChange( const QString &textChanged ) {
568 789
569 if ( cmbAddress->currentItem() == 0 ) { 790 if ( cmbAddress->currentItem() == 0 ) {
570 (*slBusinessAddress)[2] = textChanged; 791 (*slBusinessAddress)[2] = textChanged;
571 } else { 792 } else {
572 (*slHomeAddress)[2] = textChanged; 793 (*slHomeAddress)[2] = textChanged;
@@ -607,48 +828,54 @@ void ContactEditor::slotCountryChange( const QString &textChanged ) {
607 (*slBusinessAddress)[6] = textChanged; 828 (*slBusinessAddress)[6] = textChanged;
608 } else { 829 } else {
609 (*slHomeAddress)[6] = textChanged; 830 (*slHomeAddress)[6] = textChanged;
610 } 831 }
611} 832}
612 833
613void ContactEditor::slotCmbChooser1Change( int index ) { 834void ContactEditor::slotCmbChooser1Change( int index ) {
614 835
615 txtChooserField1->setText( (*slChooserValues)[index] ); 836 txtChooserField1->setText( (*slChooserValues)[index] );
616 837
617} 838}
618 839
619void ContactEditor::slotCmbChooser2Change( int index ) { 840void ContactEditor::slotCmbChooser2Change( int index ) {
620 841
621 txtChooserField2->setText( (*slChooserValues)[index] ); 842 txtChooserField2->setText( (*slChooserValues)[index] );
622 843
623} 844}
624 845
625void ContactEditor::slotCmbChooser3Change( int index ) { 846void ContactEditor::slotCmbChooser3Change( int index ) {
626 847
627 txtChooserField3->setText( (*slChooserValues)[index] ); 848 txtChooserField3->setText( (*slChooserValues)[index] );
628 849
629} 850}
630 851
852void ContactEditor::slotCmbChooser4Change( int index ) {
853
854 txtChooserField4->setText( (*slChooserValues)[index] );
855
856}
857
631void ContactEditor::slotAddressTypeChange( int index ) { 858void ContactEditor::slotAddressTypeChange( int index ) {
632 859
633 if ( index == 0 ) { 860 if ( index == 0 ) {
634 861
635 txtAddress->setText( (*slBusinessAddress)[0] ); 862 txtAddress->setText( (*slBusinessAddress)[0] );
636 //txtAddress2->setText( (*slBusinessAddress)[1] ); 863 //txtAddress2->setText( (*slBusinessAddress)[1] );
637 //txtPOBox->setText( (*slBusinessAddress)[2] ); 864 //txtPOBox->setText( (*slBusinessAddress)[2] );
638 txtCity->setText( (*slBusinessAddress)[3] ); 865 txtCity->setText( (*slBusinessAddress)[3] );
639 txtState->setText( (*slBusinessAddress)[4] ); 866 txtState->setText( (*slBusinessAddress)[4] );
640 txtZip->setText( (*slBusinessAddress)[5] ); 867 txtZip->setText( (*slBusinessAddress)[5] );
641 QLineEdit *txtTmp = cmbCountry->lineEdit(); 868 QLineEdit *txtTmp = cmbCountry->lineEdit();
642 txtTmp->setText( (*slBusinessAddress)[6] ); 869 txtTmp->setText( (*slBusinessAddress)[6] );
643 870
644 } else { 871 } else {
645 872
646 txtAddress->setText( (*slHomeAddress)[0] ); 873 txtAddress->setText( (*slHomeAddress)[0] );
647 //txtAddress2->setText( (*slHomeAddress)[1] ); 874 //txtAddress2->setText( (*slHomeAddress)[1] );
648 //txtPOBox->setText( (*slHomeAddress)[2] ); 875 //txtPOBox->setText( (*slHomeAddress)[2] );
649 txtCity->setText( (*slHomeAddress)[3] ); 876 txtCity->setText( (*slHomeAddress)[3] );
650 txtState->setText( (*slHomeAddress)[4] ); 877 txtState->setText( (*slHomeAddress)[4] );
651 txtZip->setText( (*slHomeAddress)[5] ); 878 txtZip->setText( (*slHomeAddress)[5] );
652 QLineEdit *txtTmp = cmbCountry->lineEdit(); 879 QLineEdit *txtTmp = cmbCountry->lineEdit();
653 txtTmp->setText( (*slHomeAddress)[6] ); 880 txtTmp->setText( (*slHomeAddress)[6] );
654 881
diff --git a/core/pim/addressbook/contacteditor.h b/core/pim/addressbook/contacteditor.h
index a799672..a58a860 100644
--- a/core/pim/addressbook/contacteditor.h
+++ b/core/pim/addressbook/contacteditor.h
@@ -62,97 +62,101 @@ class ContactEditor : public QDialog {
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
66 public slots: 66 public slots:
67 void slotNote(); 67 void slotNote();
68 void slotName(); 68 void slotName();
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 slotCmbChooser1Change( int index ); 87 void slotCmbChooser1Change( int index );
87 void slotCmbChooser2Change( int index ); 88 void slotCmbChooser2Change( int index );
88 void slotCmbChooser3Change( int index ); 89 void slotCmbChooser3Change( int index );
90 void slotCmbChooser4Change( int index );
89 void slotAddressTypeChange( int index ); 91 void slotAddressTypeChange( int index );
90 void slotAddressChange( const QString &textChanged ); 92 void slotAddressChange( const QString &textChanged );
91 void slotAddress2Change( const QString &textChanged ); 93 void slotAddress2Change( const QString &textChanged );
92 void slotPOBoxChange( const QString &textChanged ); 94 void slotPOBoxChange( const QString &textChanged );
93 void slotCityChange( const QString &textChanged ); 95 void slotCityChange( const QString &textChanged );
94 void slotStateChange( const QString &textChanged ); 96 void slotStateChange( const QString &textChanged );
95 void slotZipChange( const QString &textChanged ); 97 void slotZipChange( const QString &textChanged );
96 void slotCountryChange( const QString &textChanged ); 98 void slotCountryChange( const QString &textChanged );
97 void slotFullNameChange( const QString &textChanged ); 99 void slotFullNameChange( const QString &textChanged );
98 100
99 private: 101 private:
100 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;
101 103
102 Contact ent; 104 Contact ent;
103 105
104 QDialog *dlgNote; 106 QDialog *dlgNote;
105 QDialog *dlgName; 107 QDialog *dlgName;
106 108
107 QList<QLineEdit> listValue; 109 QList<QLineEdit> listValue;
108 QList<QLabel> listName; 110 QList<QLabel> listName;
109 const QValueList<int> *orderedValues; 111 const QValueList<int> *orderedValues;
110 QStringList *slOrdered; 112 QStringList *slOrdered;
111 QStringList *slDynamicEntries; 113 QStringList *slDynamicEntries;
112 114
113 QStringList *slHomeAddress; 115 QStringList *slHomeAddress;
114 QStringList *slBusinessAddress; 116 QStringList *slBusinessAddress;
115 QStringList *slChooserNames; 117 QStringList *slChooserNames;
116 QStringList *slChooserValues; 118 QStringList *slChooserValues;
117 119
118 QMultiLineEdit *txtNote; 120 QMultiLineEdit *txtNote;
119 QLabel *lblNote; 121 QLabel *lblNote;
120 122
121 //QLineEdit *txtTitle; 123 //QLineEdit *txtTitle;
122 QLineEdit *txtFirstName; 124 QLineEdit *txtFirstName;
123 QLineEdit *txtMiddleName; 125 QLineEdit *txtMiddleName;
124 QLineEdit *txtLastName; 126 QLineEdit *txtLastName;
125 QLineEdit *txtSuffix; 127 QLineEdit *txtSuffix;
126 128
127 QTabWidget *tabMain; 129 QTabWidget *tabMain;
128 QScrollView *svGeneral; 130 QScrollView *svGeneral;
129 QPushButton *btnFullName; 131 QPushButton *btnFullName;
130 QPushButton *btnNote; 132 QPushButton *btnNote;
131 QLineEdit *txtFullName; 133 QLineEdit *txtFullName;
132 QLineEdit *txtJobTitle; 134 QLineEdit *txtJobTitle;
133 QLineEdit *txtOrganization; 135 QLineEdit *txtOrganization;
134 QLineEdit *txtChooserField1; 136 QLineEdit *txtChooserField1;
135 QLineEdit *txtChooserField2; 137 QLineEdit *txtChooserField2;
136 QLineEdit *txtChooserField3; 138 QLineEdit *txtChooserField3;
139 QLineEdit *txtChooserField4;
137 QComboBox *cmbChooserField1; 140 QComboBox *cmbChooserField1;
138 QComboBox *cmbChooserField2; 141 QComboBox *cmbChooserField2;
139 QComboBox *cmbChooserField3; 142 QComboBox *cmbChooserField3;
143 QComboBox *cmbChooserField4;
140 QComboBox *cmbFileAs; 144 QComboBox *cmbFileAs;
141 CategorySelect *cmbCat; 145 CategorySelect *cmbCat;
142 146
143 QScrollView *svAddress; 147 QScrollView *svAddress;
144 QLineEdit *txtAddress; 148 QLineEdit *txtAddress;
145 //QLineEdit *txtAddress2; 149 //QLineEdit *txtAddress2;
146 //QLineEdit *txtPOBox; 150 //QLineEdit *txtPOBox;
147 QLineEdit *txtCity; 151 QLineEdit *txtCity;
148 QLineEdit *txtState; 152 QLineEdit *txtState;
149 QLineEdit *txtZip; 153 QLineEdit *txtZip;
150 QComboBox *cmbAddress; 154 QComboBox *cmbAddress;
151 QComboBox *cmbCountry; 155 QComboBox *cmbCountry;
152 156
153 QScrollView *svDetails; 157 QScrollView *svDetails;
154 QComboBox *cmbGender; 158 QComboBox *cmbGender;
155 159
156}; 160};
157 161
158#endif 162#endif