summaryrefslogtreecommitdiff
authordrw <drw>2005-04-06 22:41:05 (UTC)
committer drw <drw>2005-04-06 22:41:05 (UTC)
commit6ea302df768201e4ab8dd2ec797a5cc9ea6589bf (patch) (unidiff)
tree9cffcfa9fecd49d0d6a0498de0cccd9aef52bf75
parentcd1b15147d372d8786c855764d397553651c358d (diff)
downloadopie-6ea302df768201e4ab8dd2ec797a5cc9ea6589bf.zip
opie-6ea302df768201e4ab8dd2ec797a5cc9ea6589bf.tar.gz
opie-6ea302df768201e4ab8dd2ec797a5cc9ea6589bf.tar.bz2
Use OResource for loading images
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/abtable.cpp22
-rw-r--r--core/pim/addressbook/addressbook.cpp26
-rw-r--r--core/pim/addressbook/configdlg.cpp13
-rw-r--r--core/pim/addressbook/contacteditor.cpp9
4 files changed, 37 insertions, 33 deletions
diff --git a/core/pim/addressbook/abtable.cpp b/core/pim/addressbook/abtable.cpp
index 60f3177..539d6ba 100644
--- a/core/pim/addressbook/abtable.cpp
+++ b/core/pim/addressbook/abtable.cpp
@@ -1,282 +1,282 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** Copyright (c) 2002 Stefan Eilers (eilers.stefan@epost.de) 3** Copyright (c) 2002 Stefan Eilers (eilers.stefan@epost.de)
4** 4**
5** This file is part of Qt Palmtop Environment. 5** This file is part of Qt Palmtop Environment.
6** 6**
7** This file may be distributed and/or modified under the terms of the 7** This file may be distributed and/or modified under the terms of the
8** GNU General Public License version 2 as published by the Free Software 8** GNU General Public License version 2 as published by the Free Software
9** Foundation and appearing in the file LICENSE.GPL included in the 9** Foundation and appearing in the file LICENSE.GPL included in the
10** packaging of this file. 10** packaging of this file.
11** 11**
12** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 12** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
13** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 13** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
14** 14**
15** See http://www.trolltech.com/gpl/ for GPL licensing information. 15** See http://www.trolltech.com/gpl/ for GPL licensing information.
16** 16**
17** Contact info@trolltech.com if any conditions of this licensing are 17** Contact info@trolltech.com if any conditions of this licensing are
18** not clear to you. 18** not clear to you.
19** 19**
20**********************************************************************/ 20**********************************************************************/
21 21
22#include <opie2/odebug.h> 22#include <opie2/odebug.h>
23#include <opie2/opimrecordlist.h> 23#include <opie2/opimrecordlist.h>
24#include <opie2/oresource.h>
24 25
25#include <qpe/timestring.h> 26#include <qpe/timestring.h>
26#include <qpe/resource.h>
27 27
28#include "abtable.h" 28#include "abtable.h"
29 29
30#include <errno.h> 30#include <errno.h>
31#include <fcntl.h> 31#include <fcntl.h>
32#include <unistd.h> 32#include <unistd.h>
33#include <stdlib.h> 33#include <stdlib.h>
34 34
35#include <ctype.h> //toupper() for key hack 35#include <ctype.h> //toupper() for key hack
36 36
37#if 0 37#if 0
38 38
39/*! 39/*!
40 \class AbTableItem abtable.h 40 \class AbTableItem abtable.h
41 41
42 \brief QTableItem based class for showing a field of an entry 42 \brief QTableItem based class for showing a field of an entry
43*/ 43*/
44 44
45AbTableItem::AbTableItem( QTable *t, EditType et, const QString &s, 45AbTableItem::AbTableItem( QTable *t, EditType et, const QString &s,
46 const QString &secondSortKey) 46 const QString &secondSortKey)
47 : QTableItem( t, et, s ) 47 : QTableItem( t, et, s )
48{ 48{
49 // sortKey = s.lower() + QChar( '\0' ) + secondSortKey.lower(); 49 // sortKey = s.lower() + QChar( '\0' ) + secondSortKey.lower();
50 sortKey = Qtopia::buildSortKey( s, secondSortKey ); 50 sortKey = Qtopia::buildSortKey( s, secondSortKey );
51} 51}
52 52
53int AbTableItem::alignment() const 53int AbTableItem::alignment() const
54{ 54{
55 return AlignLeft|AlignVCenter; 55 return AlignLeft|AlignVCenter;
56} 56}
57 57
58QString AbTableItem::key() const 58QString AbTableItem::key() const
59{ 59{
60 return sortKey; 60 return sortKey;
61} 61}
62 62
63// A way to reset the item, without out doing a delete or a new... 63// A way to reset the item, without out doing a delete or a new...
64void AbTableItem::setItem( const QString &txt, const QString &secondKey ) 64void AbTableItem::setItem( const QString &txt, const QString &secondKey )
65{ 65{
66 setText( txt ); 66 setText( txt );
67 sortKey = Qtopia::buildSortKey( txt, secondKey ); 67 sortKey = Qtopia::buildSortKey( txt, secondKey );
68 68
69 // sortKey = txt.lower() + QChar( '\0' ) + secondKey.lower(); 69 // sortKey = txt.lower() + QChar( '\0' ) + secondKey.lower();
70} 70}
71 71
72/*! 72/*!
73 \class AbPickItem abtable.h 73 \class AbPickItem abtable.h
74 74
75 \brief QTableItem based class for showing slection of an entry 75 \brief QTableItem based class for showing slection of an entry
76*/ 76*/
77 77
78AbPickItem::AbPickItem( QTable *t ) : 78AbPickItem::AbPickItem( QTable *t ) :
79 QTableItem(t, WhenCurrent, "?") 79 QTableItem(t, WhenCurrent, "?")
80{ 80{
81} 81}
82 82
83QWidget *AbPickItem::createEditor() const 83QWidget *AbPickItem::createEditor() const
84{ 84{
85 QComboBox* combo = new QComboBox( table()->viewport() ); 85 QComboBox* combo = new QComboBox( table()->viewport() );
86 ( (AbPickItem*)this )->cb = combo; 86 ( (AbPickItem*)this )->cb = combo;
87 AbTable* t = static_cast<AbTable*>(table()); 87 AbTable* t = static_cast<AbTable*>(table());
88 QStringList c = t->choiceNames(); 88 QStringList c = t->choiceNames();
89 int cur = 0; 89 int cur = 0;
90 for (QStringList::ConstIterator it = c.begin(); it!=c.end(); ++it) { 90 for (QStringList::ConstIterator it = c.begin(); it!=c.end(); ++it) {
91 if ( *it == text() ) 91 if ( *it == text() )
92 cur = combo->count(); 92 cur = combo->count();
93 combo->insertItem(*it); 93 combo->insertItem(*it);
94 } 94 }
95 combo->setCurrentItem(cur); 95 combo->setCurrentItem(cur);
96 return combo; 96 return combo;
97} 97}
98 98
99void AbPickItem::setContentFromEditor( QWidget *w ) 99void AbPickItem::setContentFromEditor( QWidget *w )
100{ 100{
101 if ( w->inherits("QComboBox") ) 101 if ( w->inherits("QComboBox") )
102 setText( ( (QComboBox*)w )->currentText() ); 102 setText( ( (QComboBox*)w )->currentText() );
103 else 103 else
104 QTableItem::setContentFromEditor( w ); 104 QTableItem::setContentFromEditor( w );
105} 105}
106 106
107#endif 107#endif
108 108
109/*! 109/*!
110 \class AbTable abtable.h 110 \class AbTable abtable.h
111 111
112 \brief QTable based class for showing a list of entries 112 \brief QTable based class for showing a list of entries
113*/ 113*/
114 114
115AbTable::AbTable( const QValueList<int> order, QWidget *parent, const char *name ) 115AbTable::AbTable( const QValueList<int> order, QWidget *parent, const char *name )
116 : QTable( parent, name ), 116 : QTable( parent, name ),
117 lastSortCol( -1 ), 117 lastSortCol( -1 ),
118 asc( TRUE ), 118 asc( TRUE ),
119 intFields( order ), 119 intFields( order ),
120 enablePainting( true ), 120 enablePainting( true ),
121 columnVisible( true ), 121 columnVisible( true ),
122 countNested( 0 ) 122 countNested( 0 )
123{ 123{
124 //odebug << "C'tor start" << oendl; 124 //odebug << "C'tor start" << oendl;
125 setSelectionMode( NoSelection ); 125 setSelectionMode( NoSelection );
126 init(); 126 init();
127 setSorting( false ); // The table should not sort by itself! 127 setSorting( false ); // The table should not sort by itself!
128 128
129 connect( this, SIGNAL(clicked(int,int,int,const QPoint&)), 129 connect( this, SIGNAL(clicked(int,int,int,const QPoint&)),
130 this, SLOT(itemClicked(int,int)) ); 130 this, SLOT(itemClicked(int,int)) );
131 131
132 // contactList.clear(); 132 // contactList.clear();
133 //odebug << "C'tor end" << oendl; 133 //odebug << "C'tor end" << oendl;
134} 134}
135 135
136AbTable::~AbTable() 136AbTable::~AbTable()
137{ 137{
138} 138}
139 139
140void AbTable::init() 140void AbTable::init()
141{ 141{
142 // :SX showChar = '\0'; 142 // :SX showChar = '\0';
143 setNumRows( 0 ); 143 setNumRows( 0 );
144 setNumCols( 2 ); 144 setNumCols( 2 );
145 145
146 horizontalHeader()->setLabel( 0, tr( "Full Name" )); 146 horizontalHeader()->setLabel( 0, tr( "Full Name" ));
147 horizontalHeader()->setLabel( 1, tr( "Contact" )); 147 horizontalHeader()->setLabel( 1, tr( "Contact" ));
148 setLeftMargin( 0 ); 148 setLeftMargin( 0 );
149 verticalHeader()->hide(); 149 verticalHeader()->hide();
150 columnVisible = true; 150 columnVisible = true;
151} 151}
152 152
153void AbTable::setContacts( const Opie::OPimContactAccess::List& viewList ) 153void AbTable::setContacts( const Opie::OPimContactAccess::List& viewList )
154{ 154{
155 odebug << "AbTable::setContacts()" << oendl; 155 odebug << "AbTable::setContacts()" << oendl;
156 156
157 clear(); 157 clear();
158 m_viewList = viewList; 158 m_viewList = viewList;
159 159
160 setPaintingEnabled( FALSE ); 160 setPaintingEnabled( FALSE );
161 161
162 setNumRows( m_viewList.count() ); 162 setNumRows( m_viewList.count() );
163 163
164 164
165 updateVisible(); 165 updateVisible();
166 166
167 setPaintingEnabled( TRUE ); 167 setPaintingEnabled( TRUE );
168 168
169} 169}
170 170
171void AbTable::setOrderedList( const QValueList<int> ordered ) 171void AbTable::setOrderedList( const QValueList<int> ordered )
172{ 172{
173 intFields = ordered; 173 intFields = ordered;
174} 174}
175 175
176 176
177bool AbTable::selectContact( int UID ) 177bool AbTable::selectContact( int UID )
178{ 178{
179 odebug << "AbTable::selectContact( " << UID << " )" << oendl; 179 odebug << "AbTable::selectContact( " << UID << " )" << oendl;
180 int rows = numRows(); 180 int rows = numRows();
181 bool found = false; 181 bool found = false;
182 182
183 setPaintingEnabled( FALSE ); 183 setPaintingEnabled( FALSE );
184 odebug << "Search start" << oendl; 184 odebug << "Search start" << oendl;
185 for ( int r = 0; r < rows; ++r ) { 185 for ( int r = 0; r < rows; ++r ) {
186 if ( m_viewList.uidAt( r ) == UID ){ 186 if ( m_viewList.uidAt( r ) == UID ){
187 ensureCellVisible( r, 0 ); 187 ensureCellVisible( r, 0 );
188 setCurrentCell( r, 0 ); 188 setCurrentCell( r, 0 );
189 found = true; 189 found = true;
190 break; 190 break;
191 } 191 }
192 } 192 }
193 odebug << "Search end" << oendl; 193 odebug << "Search end" << oendl;
194 194
195 if ( !found ){ 195 if ( !found ){
196 ensureCellVisible( 0,0 ); 196 ensureCellVisible( 0,0 );
197 setCurrentCell( 0, 0 ); 197 setCurrentCell( 0, 0 );
198 } 198 }
199 199
200 setPaintingEnabled( TRUE ); 200 setPaintingEnabled( TRUE );
201 201
202 return true; 202 return true;
203} 203}
204 204
205 205
206void AbTable::columnClicked( int col ) 206void AbTable::columnClicked( int col )
207{ 207{
208 odebug << "columClicked(" << col << ")" << oendl; 208 odebug << "columClicked(" << col << ")" << oendl;
209 209
210 if ( col == 0 ){ 210 if ( col == 0 ){
211 odebug << "Change sort order: " << asc << oendl; 211 odebug << "Change sort order: " << asc << oendl;
212 asc = !asc; 212 asc = !asc;
213 emit signalSortOrderChanged( asc ); 213 emit signalSortOrderChanged( asc );
214 } 214 }
215} 215}
216 216
217void AbTable::resort() 217void AbTable::resort()
218{ 218{
219 owarn << "void AbTable::resort() NOT POSSIBLE !!" << oendl; 219 owarn << "void AbTable::resort() NOT POSSIBLE !!" << oendl;
220 220
221} 221}
222 222
223Opie::OPimContact AbTable::currentEntry() 223Opie::OPimContact AbTable::currentEntry()
224{ 224{
225 return m_viewList[currentRow()]; 225 return m_viewList[currentRow()];
226} 226}
227 227
228int AbTable::currentEntry_UID() 228int AbTable::currentEntry_UID()
229{ 229{
230 return ( currentEntry().uid() ); 230 return ( currentEntry().uid() );
231} 231}
232 232
233void AbTable::clear() 233void AbTable::clear()
234{ 234{
235 odebug << "void AbTable::clear()" << oendl; 235 odebug << "void AbTable::clear()" << oendl;
236 // contactList.clear(); 236 // contactList.clear();
237 237
238 setPaintingEnabled( FALSE ); 238 setPaintingEnabled( FALSE );
239 for ( int r = 0; r < numRows(); ++r ) { 239 for ( int r = 0; r < numRows(); ++r ) {
240 for ( int c = 0; c < numCols(); ++c ) { 240 for ( int c = 0; c < numCols(); ++c ) {
241 if ( cellWidget( r, c ) ) 241 if ( cellWidget( r, c ) )
242 clearCellWidget( r, c ); 242 clearCellWidget( r, c );
243 clearCell( r, c ); 243 clearCell( r, c );
244 } 244 }
245 } 245 }
246 setNumRows( 0 ); 246 setNumRows( 0 );
247 setPaintingEnabled( TRUE ); 247 setPaintingEnabled( TRUE );
248} 248}
249 249
250// Refresh updates column 2 if the contactsettings changed 250// Refresh updates column 2 if the contactsettings changed
251void AbTable::refresh() 251void AbTable::refresh()
252{ 252{
253 owarn << "void AbTable::refresh() NOT IMPLEMENTED !!" << oendl; 253 owarn << "void AbTable::refresh() NOT IMPLEMENTED !!" << oendl;
254 254
255#if 0 255#if 0
256 int rows = numRows(); 256 int rows = numRows();
257 AbTableItem *abi; 257 AbTableItem *abi;
258 ContactItem contactItem; 258 ContactItem contactItem;
259 259
260 setPaintingEnabled( FALSE ); 260 setPaintingEnabled( FALSE );
261 for ( int r = 0; r < rows; ++r ) { 261 for ( int r = 0; r < rows; ++r ) {
262 abi = static_cast<AbTableItem*>( item(r, 0) ); 262 abi = static_cast<AbTableItem*>( item(r, 0) );
263 contactItem = findContactContact( contactList[abi], r ); 263 contactItem = findContactContact( contactList[abi], r );
264 static_cast<AbTableItem*>( item(r, 1) )->setItem( contactItem.value, abi->text() ); 264 static_cast<AbTableItem*>( item(r, 1) )->setItem( contactItem.value, abi->text() );
265 if ( !contactItem.icon.isNull() ){ 265 if ( !contactItem.icon.isNull() ){
266 static_cast<AbTableItem*>( item(r, 1) )-> 266 static_cast<AbTableItem*>( item(r, 1) )->
267 setPixmap( contactItem.icon ); 267 setPixmap( contactItem.icon );
268 }else{ 268 }else{
269 static_cast<AbTableItem*>( item(r, 1) )-> 269 static_cast<AbTableItem*>( item(r, 1) )->
270 setPixmap( QPixmap() ); 270 setPixmap( QPixmap() );
271 } 271 }
272 } 272 }
273 resort(); 273 resort();
274 setPaintingEnabled( TRUE ); 274 setPaintingEnabled( TRUE );
275 275
276#endif 276#endif
277} 277}
278 278
279void AbTable::keyPressEvent( QKeyEvent *e ) 279void AbTable::keyPressEvent( QKeyEvent *e )
280{ 280{
281 char key = toupper( e->ascii() ); 281 char key = toupper( e->ascii() );
282 282
@@ -376,385 +376,385 @@ void QTable::paintEmptyArea( QPainter *p, int cx, int cy, int cw, int ch )
376// int AbTable::rowHeight( int ) const 376// int AbTable::rowHeight( int ) const
377// { 377// {
378// return 18; 378// return 18;
379// } 379// }
380 380
381// int AbTable::rowPos( int row ) const 381// int AbTable::rowPos( int row ) const
382// { 382// {
383// return 18*row; 383// return 18*row;
384// } 384// }
385 385
386// int AbTable::rowAt( int pos ) const 386// int AbTable::rowAt( int pos ) const
387// { 387// {
388// return QMIN( pos/18, numRows()-1 ); 388// return QMIN( pos/18, numRows()-1 );
389// } 389// }
390 390
391 391
392 392
393void AbTable::fitColumns() 393void AbTable::fitColumns()
394{ 394{
395 odebug << "void AbTable::fitColumns()" << oendl; 395 odebug << "void AbTable::fitColumns()" << oendl;
396 int contentsWidth = visibleWidth() / 2; 396 int contentsWidth = visibleWidth() / 2;
397 // Fix to better value 397 // Fix to better value
398 // contentsWidth = 130; 398 // contentsWidth = 130;
399 399
400 setPaintingEnabled( FALSE ); 400 setPaintingEnabled( FALSE );
401 401
402 if ( columnVisible == false ){ 402 if ( columnVisible == false ){
403 showColumn(0); 403 showColumn(0);
404 columnVisible = true; 404 columnVisible = true;
405 } 405 }
406 406
407 //odebug << "Width: " << contentsWidth << oendl; 407 //odebug << "Width: " << contentsWidth << oendl;
408 408
409 setColumnWidth( 0, contentsWidth ); 409 setColumnWidth( 0, contentsWidth );
410 adjustColumn(1); 410 adjustColumn(1);
411 if ( columnWidth(1) < contentsWidth ) 411 if ( columnWidth(1) < contentsWidth )
412 setColumnWidth( 1, contentsWidth ); 412 setColumnWidth( 1, contentsWidth );
413 413
414 setPaintingEnabled( TRUE ); 414 setPaintingEnabled( TRUE );
415} 415}
416 416
417void AbTable::show() 417void AbTable::show()
418{ 418{
419 //odebug << "void AbTable::show()" << oendl; 419 //odebug << "void AbTable::show()" << oendl;
420 realignTable(); 420 realignTable();
421 QTable::show(); 421 QTable::show();
422} 422}
423 423
424#if 0 424#if 0
425void AbTable::setChoiceNames( const QStringList& list) 425void AbTable::setChoiceNames( const QStringList& list)
426{ 426{
427 choicenames = list; 427 choicenames = list;
428 if ( choicenames.isEmpty() ) { 428 if ( choicenames.isEmpty() ) {
429 // hide pick column 429 // hide pick column
430 setNumCols( 2 ); 430 setNumCols( 2 );
431 } else { 431 } else {
432 // show pick column 432 // show pick column
433 setNumCols( 3 ); 433 setNumCols( 3 );
434 setColumnWidth( 2, fontMetrics().width(tr( "Pick" ))+8 ); 434 setColumnWidth( 2, fontMetrics().width(tr( "Pick" ))+8 );
435 horizontalHeader()->setLabel( 2, tr( "Pick" )); 435 horizontalHeader()->setLabel( 2, tr( "Pick" ));
436 } 436 }
437 fitColumns(); 437 fitColumns();
438} 438}
439#endif 439#endif
440 440
441void AbTable::itemClicked(int,int col) 441void AbTable::itemClicked(int,int col)
442{ 442{
443 //odebug << "AbTable::itemClicked(int, col: " << col << ")" << oendl; 443 //odebug << "AbTable::itemClicked(int, col: " << col << ")" << oendl;
444 if ( col == 2 ) { 444 if ( col == 2 ) {
445 return; 445 return;
446 } else { 446 } else {
447 //odebug << "Emitting signalSwitch()" << oendl; 447 //odebug << "Emitting signalSwitch()" << oendl;
448 emit signalSwitch(); 448 emit signalSwitch();
449 } 449 }
450} 450}
451 451
452#if 0 452#if 0
453QStringList AbTable::choiceNames() const 453QStringList AbTable::choiceNames() const
454{ 454{
455 return choicenames; 455 return choicenames;
456} 456}
457 457
458#endif 458#endif
459void AbTable::setChoiceSelection( const QValueList<int>& list ) 459void AbTable::setChoiceSelection( const QValueList<int>& list )
460{ 460{
461 intFields = list; 461 intFields = list;
462} 462}
463 463
464QStringList AbTable::choiceSelection(int /*index*/) const 464QStringList AbTable::choiceSelection(int /*index*/) const
465{ 465{
466 QStringList r; 466 QStringList r;
467 /* ###### 467 /* ######
468 468
469 QString selname = choicenames.at(index); 469 QString selname = choicenames.at(index);
470 for (each row) { 470 for (each row) {
471 Opie::OPimContact *c = contactForRow(row); 471 Opie::OPimContact *c = contactForRow(row);
472 if ( text(row,2) == selname ) { 472 if ( text(row,2) == selname ) {
473 r.append(c->email); 473 r.append(c->email);
474 } 474 }
475 } 475 }
476 476
477 */ 477 */
478 return r; 478 return r;
479} 479}
480 480
481 481
482void AbTable::updateVisible() 482void AbTable::updateVisible()
483{ 483{
484 //odebug << "void AbTable::updateVisible()" << oendl; 484 //odebug << "void AbTable::updateVisible()" << oendl;
485 485
486 int visible, 486 int visible,
487 totalRows, 487 totalRows,
488 row, 488 row,
489 selectedRow = 0; 489 selectedRow = 0;
490 490
491 visible = 0; 491 visible = 0;
492 492
493 setPaintingEnabled( FALSE ); 493 setPaintingEnabled( FALSE );
494 494
495 realignTable(); 495 realignTable();
496 496
497 totalRows = numRows(); 497 totalRows = numRows();
498 for ( row = 0; row < totalRows; row++ ) { 498 for ( row = 0; row < totalRows; row++ ) {
499 if ( rowHeight(row) == 0 ) { 499 if ( rowHeight(row) == 0 ) {
500 showRow( row ); 500 showRow( row );
501 adjustRow( row ); 501 adjustRow( row );
502 if ( isSelected( row,0 ) || isSelected( row,1 ) ) 502 if ( isSelected( row,0 ) || isSelected( row,1 ) )
503 selectedRow = row; 503 selectedRow = row;
504 } 504 }
505 visible++; 505 visible++;
506 } 506 }
507 507
508 if ( selectedRow ) 508 if ( selectedRow )
509 setCurrentCell( selectedRow, 0 ); 509 setCurrentCell( selectedRow, 0 );
510 510
511 if ( !visible ) 511 if ( !visible )
512 setCurrentCell( -1, 0 ); 512 setCurrentCell( -1, 0 );
513 513
514 setPaintingEnabled( TRUE ); 514 setPaintingEnabled( TRUE );
515} 515}
516 516
517 517
518void AbTable::setPaintingEnabled( bool e ) 518void AbTable::setPaintingEnabled( bool e )
519{ 519{
520 //odebug << "IN void AbTable::setPaintingEnabled( " << e << " )->Nested: " 520 //odebug << "IN void AbTable::setPaintingEnabled( " << e << " )->Nested: "
521 // << countNested << oendl; 521 // << countNested << oendl;
522 522
523 if ( e ) { 523 if ( e ) {
524 if ( countNested > 0 ) 524 if ( countNested > 0 )
525 --countNested; 525 --countNested;
526 if ( ! countNested ){ 526 if ( ! countNested ){
527 setUpdatesEnabled( true ); 527 setUpdatesEnabled( true );
528 enablePainting = true; 528 enablePainting = true;
529 rowHeightChanged( 0 ); 529 rowHeightChanged( 0 );
530 viewport()->update(); 530 viewport()->update();
531 } 531 }
532 } else { 532 } else {
533 ++countNested; 533 ++countNested;
534 enablePainting = false; 534 enablePainting = false;
535 setUpdatesEnabled( false ); 535 setUpdatesEnabled( false );
536 } 536 }
537 //odebug << "OUT void AbTable::setPaintingEnabled( " << e << " )->Nested: " 537 //odebug << "OUT void AbTable::setPaintingEnabled( " << e << " )->Nested: "
538 // << countNested << oendl; 538 // << countNested << oendl;
539} 539}
540 540
541void AbTable::viewportPaintEvent( QPaintEvent* e ) { 541void AbTable::viewportPaintEvent( QPaintEvent* e ) {
542 //odebug << "void AbTable::viewportPaintEvent( QPaintEvent* e ) -> " 542 //odebug << "void AbTable::viewportPaintEvent( QPaintEvent* e ) -> "
543 // << enablePainting << oendl; 543 // << enablePainting << oendl;
544 if ( enablePainting ) 544 if ( enablePainting )
545 QTable::viewportPaintEvent( e ); 545 QTable::viewportPaintEvent( e );
546} 546}
547 547
548void AbTable::paintCell(QPainter* p, int row, int col, const QRect& cr, bool ) { 548void AbTable::paintCell(QPainter* p, int row, int col, const QRect& cr, bool ) {
549 const QColorGroup &cg = colorGroup(); 549 const QColorGroup &cg = colorGroup();
550 550
551 p->save(); 551 p->save();
552 552
553 //odebug << "Paint row: " << row << oendl; 553 //odebug << "Paint row: " << row << oendl;
554 554
555 Opie::OPimContact act_contact = m_viewList[row]; 555 Opie::OPimContact act_contact = m_viewList[row];
556 556
557 // Paint alternating background bars 557 // Paint alternating background bars
558 if ( (row % 2 ) == 0 ) { 558 if ( (row % 2 ) == 0 ) {
559 p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Base ) ); 559 p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Base ) );
560 p->setPen( QPen( cg.text() ) ); 560 p->setPen( QPen( cg.text() ) );
561 } 561 }
562 else { 562 else {
563 p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Background ) ); 563 p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Background ) );
564 p->setPen( QPen( cg.buttonText() ) ); 564 p->setPen( QPen( cg.buttonText() ) );
565 } 565 }
566 566
567 QFont f = p->font(); 567 QFont f = p->font();
568 QFontMetrics fm(f); 568 QFontMetrics fm(f);
569 569
570 int marg = 2; 570 int marg = 2;
571 int x = 0; 571 int x = 0;
572 int y = ( cr.height() - 14 ) / 2; 572 int y = ( cr.height() - 14 ) / 2;
573 573
574 QString nameText = act_contact.fileAs(); 574 QString nameText = act_contact.fileAs();
575 575
576 switch( col ){ 576 switch( col ){
577 case 0: 577 case 0:
578 p->drawText( x + marg,2 + fm.ascent(), nameText ); 578 p->drawText( x + marg,2 + fm.ascent(), nameText );
579 break; 579 break;
580 case 1:{ 580 case 1:{
581 581
582 ContactItem contactItem = findContactContact( act_contact, 0 ); 582 ContactItem contactItem = findContactContact( act_contact, 0 );
583 QPixmap contactPic = contactItem.icon; /* pixmap( row, col ); */ 583 QPixmap contactPic = contactItem.icon; /* pixmap( row, col ); */
584 QString contactText = contactItem.value; 584 QString contactText = contactItem.value;
585 585
586 if ( !contactPic.isNull() ) 586 if ( !contactPic.isNull() )
587 { 587 {
588 p->drawPixmap( x + marg, y, contactPic ); 588 p->drawPixmap( x + marg, y, contactPic );
589 p->drawText( x + marg + contactPic.width() 589 p->drawText( x + marg + contactPic.width()
590 + 4,2 + fm.ascent(), contactText ); 590 + 4,2 + fm.ascent(), contactText );
591 } 591 }
592 else 592 else
593 { 593 {
594 p->drawText( x + marg,2 + fm.ascent(), contactText ); 594 p->drawText( x + marg,2 + fm.ascent(), contactText );
595 } 595 }
596 } 596 }
597 break; 597 break;
598 598
599 } 599 }
600 p->restore(); 600 p->restore();
601} 601}
602 602
603void AbTable::rowHeightChanged( int row ) 603void AbTable::rowHeightChanged( int row )
604{ 604{
605 if ( enablePainting ) 605 if ( enablePainting )
606 QTable::rowHeightChanged( row ); 606 QTable::rowHeightChanged( row );
607} 607}
608ContactItem AbTable::findContactContact( const Opie::OPimContact &entry, int /* row */ ) 608ContactItem AbTable::findContactContact( const Opie::OPimContact &entry, int /* row */ )
609{ 609{
610 610
611 ContactItem item; 611 ContactItem item;
612 612
613 item.value = ""; 613 item.value = "";
614 614
615 for ( QValueList<int>::ConstIterator it = intFields.begin(); 615 for ( QValueList<int>::ConstIterator it = intFields.begin();
616 it != intFields.end(); ++it ) { 616 it != intFields.end(); ++it ) {
617 switch ( *it ) { 617 switch ( *it ) {
618 default: 618 default:
619 break; 619 break;
620 case Qtopia::Title: 620 case Qtopia::Title:
621 item.value = entry.title(); 621 item.value = entry.title();
622 break; 622 break;
623 case Qtopia::Suffix: 623 case Qtopia::Suffix:
624 item.value = entry.suffix(); 624 item.value = entry.suffix();
625 break; 625 break;
626 case Qtopia::FileAs: 626 case Qtopia::FileAs:
627 item.value = entry.fileAs(); 627 item.value = entry.fileAs();
628 break; 628 break;
629 case Qtopia::DefaultEmail: 629 case Qtopia::DefaultEmail:
630 item.value = entry.defaultEmail(); 630 item.value = entry.defaultEmail();
631 if ( !item.value.isEmpty() ) 631 if ( !item.value.isEmpty() )
632 item.icon = Resource::loadPixmap( "addressbook/email" ); 632 item.icon = Opie::Core::OResource::loadPixmap( "addressbook/email" );
633 break; 633 break;
634 case Qtopia::Emails: 634 case Qtopia::Emails:
635 item.value = entry.emails(); 635 item.value = entry.emails();
636 if ( !item.value.isEmpty() ) 636 if ( !item.value.isEmpty() )
637 item.icon = Resource::loadPixmap( "addressbook/email" ); 637 item.icon = Opie::Core::OResource::loadPixmap( "addressbook/email" );
638 break; 638 break;
639 case Qtopia::HomeStreet: 639 case Qtopia::HomeStreet:
640 item.value = entry.homeStreet(); 640 item.value = entry.homeStreet();
641 break; 641 break;
642 case Qtopia::HomeCity: 642 case Qtopia::HomeCity:
643 item.value = entry.homeCity(); 643 item.value = entry.homeCity();
644 break; 644 break;
645 case Qtopia::HomeState: 645 case Qtopia::HomeState:
646 item.value = entry.homeState(); 646 item.value = entry.homeState();
647 break; 647 break;
648 case Qtopia::HomeZip: 648 case Qtopia::HomeZip:
649 item.value = entry.homeZip(); 649 item.value = entry.homeZip();
650 break; 650 break;
651 case Qtopia::HomeCountry: 651 case Qtopia::HomeCountry:
652 item.value = entry.homeCountry(); 652 item.value = entry.homeCountry();
653 break; 653 break;
654 case Qtopia::HomePhone: 654 case Qtopia::HomePhone:
655 item.value = entry.homePhone(); 655 item.value = entry.homePhone();
656 if ( !item.value.isEmpty() ) 656 if ( !item.value.isEmpty() )
657 item.icon = Resource::loadPixmap( "addressbook/phonehome" ); 657 item.icon = Opie::Core::OResource::loadPixmap( "addressbook/phonehome" );
658 break; 658 break;
659 case Qtopia::HomeFax: 659 case Qtopia::HomeFax:
660 item.value = entry.homeFax(); 660 item.value = entry.homeFax();
661 if ( !item.value.isEmpty() ) 661 if ( !item.value.isEmpty() )
662 item.icon = Resource::loadPixmap( "addressbook/faxhome" ); 662 item.icon = Opie::Core::OResource::loadPixmap( "addressbook/faxhome" );
663 break; 663 break;
664 case Qtopia::HomeMobile: 664 case Qtopia::HomeMobile:
665 item.value = entry.homeMobile(); 665 item.value = entry.homeMobile();
666 if ( !item.value.isEmpty() ) 666 if ( !item.value.isEmpty() )
667 item.icon = Resource::loadPixmap( "addressbook/mobilehome" ); 667 item.icon = Opie::Core::OResource::loadPixmap( "addressbook/mobilehome" );
668 break; 668 break;
669 case Qtopia::HomeWebPage: 669 case Qtopia::HomeWebPage:
670 item.value = entry.homeWebpage(); 670 item.value = entry.homeWebpage();
671 if ( !item.value.isEmpty() ) 671 if ( !item.value.isEmpty() )
672 item.icon = Resource::loadPixmap( "addressbook/webpagehome" ); 672 item.icon = Opie::Core::OResource::loadPixmap( "addressbook/webpagehome" );
673 break; 673 break;
674 case Qtopia::Company: 674 case Qtopia::Company:
675 item.value = entry.company(); 675 item.value = entry.company();
676 break; 676 break;
677 case Qtopia::BusinessCity: 677 case Qtopia::BusinessCity:
678 item.value = entry.businessCity(); 678 item.value = entry.businessCity();
679 break; 679 break;
680 case Qtopia::BusinessStreet: 680 case Qtopia::BusinessStreet:
681 item.value = entry.businessStreet(); 681 item.value = entry.businessStreet();
682 break; 682 break;
683 case Qtopia::BusinessZip: 683 case Qtopia::BusinessZip:
684 item.value = entry.businessZip(); 684 item.value = entry.businessZip();
685 break; 685 break;
686 case Qtopia::BusinessCountry: 686 case Qtopia::BusinessCountry:
687 item.value = entry.businessCountry(); 687 item.value = entry.businessCountry();
688 break; 688 break;
689 case Qtopia::BusinessWebPage: 689 case Qtopia::BusinessWebPage:
690 item.value = entry.businessWebpage(); 690 item.value = entry.businessWebpage();
691 if ( !item.value.isEmpty() ) 691 if ( !item.value.isEmpty() )
692 item.icon = Resource::loadPixmap( "addressbook/webpagework" ); 692 item.icon = Opie::Core::OResource::loadPixmap( "addressbook/webpagework" );
693 break; 693 break;
694 case Qtopia::JobTitle: 694 case Qtopia::JobTitle:
695 item.value = entry.jobTitle(); 695 item.value = entry.jobTitle();
696 break; 696 break;
697 case Qtopia::Department: 697 case Qtopia::Department:
698 item.value = entry.department(); 698 item.value = entry.department();
699 break; 699 break;
700 case Qtopia::Office: 700 case Qtopia::Office:
701 item.value = entry.office(); 701 item.value = entry.office();
702 break; 702 break;
703 case Qtopia::BusinessPhone: 703 case Qtopia::BusinessPhone:
704 item.value = entry.businessPhone(); 704 item.value = entry.businessPhone();
705 if ( !item.value.isEmpty() ) 705 if ( !item.value.isEmpty() )
706 item.icon = Resource::loadPixmap( "addressbook/phonework" ); 706 item.icon = Opie::Core::OResource::loadPixmap( "addressbook/phonework" );
707 break; 707 break;
708 case Qtopia::BusinessFax: 708 case Qtopia::BusinessFax:
709 item.value = entry.businessFax(); 709 item.value = entry.businessFax();
710 if ( !item.value.isEmpty() ) 710 if ( !item.value.isEmpty() )
711 item.icon = Resource::loadPixmap( "addressbook/faxwork" ); 711 item.icon = Opie::Core::OResource::loadPixmap( "addressbook/faxwork" );
712 break; 712 break;
713 case Qtopia::BusinessMobile: 713 case Qtopia::BusinessMobile:
714 item.value = entry.businessMobile(); 714 item.value = entry.businessMobile();
715 if ( !item.value.isEmpty() ) 715 if ( !item.value.isEmpty() )
716 item.icon = Resource::loadPixmap( "addressbook/mobilework" ); 716 item.icon = Opie::Core::OResource::loadPixmap( "addressbook/mobilework" );
717 break; 717 break;
718 case Qtopia::BusinessPager: 718 case Qtopia::BusinessPager:
719 item.value = entry.businessPager(); 719 item.value = entry.businessPager();
720 break; 720 break;
721 case Qtopia::Profession: 721 case Qtopia::Profession:
722 item.value = entry.profession(); 722 item.value = entry.profession();
723 break; 723 break;
724 case Qtopia::Assistant: 724 case Qtopia::Assistant:
725 item.value = entry.assistant(); 725 item.value = entry.assistant();
726 break; 726 break;
727 case Qtopia::Manager: 727 case Qtopia::Manager:
728 item.value = entry.manager(); 728 item.value = entry.manager();
729 break; 729 break;
730 case Qtopia::Spouse: 730 case Qtopia::Spouse:
731 item.value = entry.spouse(); 731 item.value = entry.spouse();
732 break; 732 break;
733 case Qtopia::Gender: 733 case Qtopia::Gender:
734 item.value = entry.gender(); 734 item.value = entry.gender();
735 break; 735 break;
736 case Qtopia::Birthday: 736 case Qtopia::Birthday:
737 if ( ! entry.birthday().isNull() ){ 737 if ( ! entry.birthday().isNull() ){
738 item.value = TimeString::numberDateString( entry.birthday() ); 738 item.value = TimeString::numberDateString( entry.birthday() );
739 } 739 }
740 break; 740 break;
741 case Qtopia::Anniversary: 741 case Qtopia::Anniversary:
742 if ( ! entry.anniversary().isNull() ){ 742 if ( ! entry.anniversary().isNull() ){
743 item.value = TimeString::numberDateString( entry.anniversary() ); 743 item.value = TimeString::numberDateString( entry.anniversary() );
744 } 744 }
745 break; 745 break;
746 case Qtopia::Nickname: 746 case Qtopia::Nickname:
747 item.value = entry.nickname(); 747 item.value = entry.nickname();
748 break; 748 break;
749 case Qtopia::Children: 749 case Qtopia::Children:
750 item.value = entry.children(); 750 item.value = entry.children();
751 break; 751 break;
752 case Qtopia::Notes: 752 case Qtopia::Notes:
753 item.value = entry.notes(); 753 item.value = entry.notes();
754 break; 754 break;
755 } 755 }
756 if ( !item.value.isEmpty() ) 756 if ( !item.value.isEmpty() )
757 break; 757 break;
758 } 758 }
759 return item; 759 return item;
760} 760}
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp
index faae0a9..4fa9253 100644
--- a/core/pim/addressbook/addressbook.cpp
+++ b/core/pim/addressbook/addressbook.cpp
@@ -1,372 +1,376 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** Copyright (C) 2003 Stefan Eilers (eilers.stefan@epost.de) 3** Copyright (C) 2003 Stefan Eilers (eilers.stefan@epost.de)
4** 4**
5** This file is part of the Open Palmtop Environment (see www.opie.info). 5** This file is part of the Open Palmtop Environment (see www.opie.info).
6** 6**
7** This file may be distributed and/or modified under the terms of the 7** This file may be distributed and/or modified under the terms of the
8** GNU General Public License version 2 as published by the Free Software 8** GNU General Public License version 2 as published by the Free Software
9** Foundation and appearing in the file LICENSE.GPL included in the 9** Foundation and appearing in the file LICENSE.GPL included in the
10** packaging of this file. 10** packaging of this file.
11** 11**
12** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 12** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
13** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 13** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
14** 14**
15** See http://www.trolltech.com/gpl/ for GPL licensing information. 15** See http://www.trolltech.com/gpl/ for GPL licensing information.
16** 16**
17** 17**
18**********************************************************************/ 18**********************************************************************/
19 19
20#define QTOPIA_INTERNAL_FD 20#define QTOPIA_INTERNAL_FD
21 21
22// #include "addresssettings.h" 22// #include "addresssettings.h"
23#include "addressbook.h" 23#include "addressbook.h"
24 24
25#include <opie2/odebug.h> 25#include <opie2/odebug.h>
26#include <opie2/ofileselector.h> 26#include <opie2/ofileselector.h>
27#include <opie2/ofiledialog.h> 27#include <opie2/ofiledialog.h>
28#include <opie2/opimcontact.h> 28#include <opie2/opimcontact.h>
29#include <opie2/ocontactaccessbackend_vcard.h> 29#include <opie2/ocontactaccessbackend_vcard.h>
30#include <opie2/oresource.h>
30 31
31#include <qpe/resource.h>
32#include <qpe/ir.h> 32#include <qpe/ir.h>
33#include <qpe/qpemessagebox.h> 33#include <qpe/qpemessagebox.h>
34#include <qmenubar.h> 34#include <qmenubar.h>
35// #include <qtoolbar.h>
36// #include <qmenubar.h>
37#include <qpe/qpeapplication.h> 35#include <qpe/qpeapplication.h>
38 36
39#include <qaction.h> 37#include <qaction.h>
40#include <qlayout.h> 38#include <qlayout.h>
41#include <qmessagebox.h> 39#include <qmessagebox.h>
42#include <qtoolbutton.h> 40#include <qtoolbutton.h>
43 41
44#include <stdlib.h> 42#include <stdlib.h>
45#include <sys/stat.h> 43#include <sys/stat.h>
46#include <sys/types.h> 44#include <sys/types.h>
47#include <fcntl.h> 45#include <fcntl.h>
48#include <unistd.h> 46#include <unistd.h>
49 47
50 48
51#include "picker.h" 49#include "picker.h"
52#include "configdlg.h" 50#include "configdlg.h"
53 51
54extern QString addressbookPersonalVCardName(); 52extern QString addressbookPersonalVCardName();
55 53
56AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name, 54AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
57 WFlags /*f*/ ) 55 WFlags /*f*/ )
58 : Opie::OPimMainWindow( "Addressbook", "Contacts", tr( "Contact" ), "AddressBook", 56 : Opie::OPimMainWindow( "Addressbook", "Contacts", tr( "Contact" ), "AddressBook",
59 parent, name, WType_TopLevel | WStyle_ContextHelp ), 57 parent, name, WType_TopLevel | WStyle_ContextHelp ),
60 abEditor(0l), 58 abEditor(0l),
61 syncing(false) 59 syncing(false)
62{ 60{
63 setCaption( tr( "Contacts" ) ); 61 setCaption( tr( "Contacts" ) );
64 62
65 isLoading = true; 63 isLoading = true;
66 64
67 m_config.load(); 65 m_config.load();
68 66
69 // Create Views 67 // Create Views
70 m_listContainer = new QWidget( this ); 68 m_listContainer = new QWidget( this );
71 QVBoxLayout *vb = new QVBoxLayout( m_listContainer ); 69 QVBoxLayout *vb = new QVBoxLayout( m_listContainer );
72 70
73 m_abView = new AbView( m_listContainer, m_config.orderList() ); 71 m_abView = new AbView( m_listContainer, m_config.orderList() );
74 vb->addWidget( m_abView ); 72 vb->addWidget( m_abView );
75 connect( m_abView, SIGNAL(signalViewSwitched(int)), 73 connect( m_abView, SIGNAL(signalViewSwitched(int)),
76 this, SLOT(slotViewSwitched(int)) ); 74 this, SLOT(slotViewSwitched(int)) );
77 75
78 QObject::connect( m_abView, SIGNAL(signalNotFound()), this, SLOT(slotNotFound()) ); 76 QObject::connect( m_abView, SIGNAL(signalNotFound()), this, SLOT(slotNotFound()) );
79 77
80 // Letter Picker 78 // Letter Picker
81 pLabel = new LetterPicker( m_listContainer ); 79 pLabel = new LetterPicker( m_listContainer );
82 connect(pLabel, SIGNAL(letterClicked(char)), this, SLOT(slotSetLetter(char))); 80 connect(pLabel, SIGNAL(letterClicked(char)), this, SLOT(slotSetLetter(char)));
83 connect(m_abView, SIGNAL(signalClearLetterPicker()), pLabel, SLOT(clear()) ); 81 connect(m_abView, SIGNAL(signalClearLetterPicker()), pLabel, SLOT(clear()) );
84 82
85 vb->addWidget( pLabel ); 83 vb->addWidget( pLabel );
86 84
87 // Quick search bar 85 // Quick search bar
88 m_searchBar = new OFloatBar( "Search", this, QMainWindow::Top, true ); 86 m_searchBar = new OFloatBar( "Search", this, QMainWindow::Top, true );
89 m_searchBar->setHorizontalStretchable( true ); 87 m_searchBar->setHorizontalStretchable( true );
90 m_searchBar->hide(); 88 m_searchBar->hide();
91 m_searchEdit = new QLineEdit( m_searchBar, "m_searchEdit" ); 89 m_searchEdit = new QLineEdit( m_searchBar, "m_searchEdit" );
92 90
93 m_searchBar->setStretchableWidget( m_searchEdit ); 91 m_searchBar->setStretchableWidget( m_searchEdit );
94 connect( m_searchEdit, SIGNAL(returnPressed()), this, SLOT(slotFind()) ); 92 connect( m_searchEdit, SIGNAL(returnPressed()), this, SLOT(slotFind()) );
95 93
96 QAction *a = new QAction( tr( "Start Search" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 ); 94 QAction *a = new QAction( tr( "Start Search" ),
95 Opie::Core::OResource::loadPixmap( "find", Opie::Core::OResource::SmallIcon ),
96 QString::null, 0, this, 0 );
97 connect( a, SIGNAL(activated()), this, SLOT(slotFind()) ); 97 connect( a, SIGNAL(activated()), this, SLOT(slotFind()) );
98 a->addTo( m_searchBar ); 98 a->addTo( m_searchBar );
99 99
100 // Insert Contact menu items 100 // Insert Contact menu items
101 QActionGroup *items = new QActionGroup( this, QString::null, false ); 101 QActionGroup *items = new QActionGroup( this, QString::null, false );
102 102
103 m_actionMail = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "addressbook/sendmail" ), 103 m_actionMail = new QAction( tr( "Write Mail To" ),
104 QString::null, 0, items, 0 ); 104 Opie::Core::OResource::loadPixmap( "addressbook/sendmail" ),
105 QString::null, 0, items, 0 );
105 connect( m_actionMail, SIGNAL(activated()), this, SLOT(writeMail()) ); 106 connect( m_actionMail, SIGNAL(activated()), this, SLOT(writeMail()) );
106 107
107 a = new QAction( tr("Import vCard"), Resource::loadPixmap( "addressbook/fileimport"), 108 a = new QAction( tr("Import vCard"),
108 QString::null, 0, items, 0 ); 109 Opie::Core::OResource::loadPixmap( "addressbook/fileimport" ),
110 QString::null, 0, items, 0 );
109 connect( a, SIGNAL(activated()), this, SLOT(importvCard()) ); 111 connect( a, SIGNAL(activated()), this, SLOT(importvCard()) );
110 112
111 a = new QAction( tr("Export vCard"), Resource::loadPixmap( "addressbook/fileexport"), 113 a = new QAction( tr("Export vCard"),
114 Opie::Core::OResource::loadPixmap( "addressbook/fileexport" ),
112 QString::null, 0, items, 0 ); 115 QString::null, 0, items, 0 );
113 connect( a, SIGNAL(activated()), this, SLOT(exportvCard()) ); 116 connect( a, SIGNAL(activated()), this, SLOT(exportvCard()) );
114 117
115 m_actionPersonal = new QAction( tr("My Personal Details"), Resource::loadPixmap( "addressbook/identity" ), 118 m_actionPersonal = new QAction( tr("My Personal Details"),
116 QString::null, 0, items, 0 , true ); 119 Opie::Core::OResource::loadPixmap( "addressbook/identity" ),
120 QString::null, 0, items, 0 , true );
117 connect( m_actionPersonal, SIGNAL(activated()), this, SLOT(slotPersonalView()) ); 121 connect( m_actionPersonal, SIGNAL(activated()), this, SLOT(slotPersonalView()) );
118 122
119 insertItemMenuItems( items ); 123 insertItemMenuItems( items );
120 124
121 // Insert View menu items 125 // Insert View menu items
122 items = new QActionGroup( this, QString::null, false ); 126 items = new QActionGroup( this, QString::null, false );
123 127
124 a = new QAction( tr("Show quick search bar"),QString::null, 0, items, 0, true ); 128 a = new QAction( tr("Show quick search bar"),QString::null, 0, items, 0, true );
125 connect( a, SIGNAL(toggled(bool)), this, SLOT(slotShowFind(bool)) ); 129 connect( a, SIGNAL(toggled(bool)), this, SLOT(slotShowFind(bool)) );
126 130
127 insertViewMenuItems( items ); 131 insertViewMenuItems( items );
128 132
129 // Fontsize 133 // Fontsize
130 defaultFont = new QFont( m_abView->font() ); 134 defaultFont = new QFont( m_abView->font() );
131 slotSetFont(m_config.fontSize()); 135 slotSetFont(m_config.fontSize());
132 m_curFontSize = m_config.fontSize(); 136 m_curFontSize = m_config.fontSize();
133 137
134 setCentralWidget(m_listContainer); 138 setCentralWidget(m_listContainer);
135 139
136 //odebug << "adressbook contrsuction: t=" << t.elapsed() << oendl; 140 //odebug << "adressbook contrsuction: t=" << t.elapsed() << oendl;
137 connect( qApp, SIGNAL(flush()), this, SLOT(flush()) ); 141 connect( qApp, SIGNAL(flush()), this, SLOT(flush()) );
138 connect( qApp, SIGNAL(reload()), this, SLOT(reload()) ); 142 connect( qApp, SIGNAL(reload()), this, SLOT(reload()) );
139 connect( qApp, SIGNAL(appMessage(const QCString&,const QByteArray&)), 143 connect( qApp, SIGNAL(appMessage(const QCString&,const QByteArray&)),
140 this, SLOT(appMessage(const QCString&,const QByteArray&)) ); 144 this, SLOT(appMessage(const QCString&,const QByteArray&)) );
141 145
142 isLoading = false; 146 isLoading = false;
143 147
144 // Handle category selection 148 // Handle category selection
145 setViewCategory( m_config.category() ); 149 setViewCategory( m_config.category() );
146 m_abView->setShowByCategory( m_config.category() ); 150 m_abView->setShowByCategory( m_config.category() );
147 connect( this, SIGNAL(categorySelected(const QString&)), 151 connect( this, SIGNAL(categorySelected(const QString&)),
148 this, SLOT(slotSetCategory(const QString&)) ); 152 this, SLOT(slotSetCategory(const QString&)) );
149} 153}
150 154
151void AddressbookWindow::slotSetFont( int size ) 155void AddressbookWindow::slotSetFont( int size )
152{ 156{
153 odebug << "void AddressbookWindow::slotSetFont( " << size << " )" << oendl; 157 odebug << "void AddressbookWindow::slotSetFont( " << size << " )" << oendl;
154 158
155 if (size > 2 || size < 0) 159 if (size > 2 || size < 0)
156 size = 1; 160 size = 1;
157 161
158 m_config.setFontSize( size ); 162 m_config.setFontSize( size );
159 163
160 QFont *currentFont; 164 QFont *currentFont;
161 165
162 switch (size) { 166 switch (size) {
163 case 0: 167 case 0:
164 m_abView->setFont( QFont( defaultFont->family(), defaultFont->pointSize() - 2 ) ); 168 m_abView->setFont( QFont( defaultFont->family(), defaultFont->pointSize() - 2 ) );
165 currentFont = new QFont (m_abView->font()); 169 currentFont = new QFont (m_abView->font());
166 // abList->resizeRows(currentFont->pixelSize() + 7); :SX 170 // abList->resizeRows(currentFont->pixelSize() + 7); :SX
167 // abList->resizeRows(); 171 // abList->resizeRows();
168 break; 172 break;
169 case 1: 173 case 1:
170 m_abView->setFont( *defaultFont ); 174 m_abView->setFont( *defaultFont );
171 currentFont = new QFont (m_abView->font()); 175 currentFont = new QFont (m_abView->font());
172 // // abList->resizeRows(currentFont->pixelSize() + 7); 176 // // abList->resizeRows(currentFont->pixelSize() + 7);
173 // abList->resizeRows(); 177 // abList->resizeRows();
174 break; 178 break;
175 case 2: 179 case 2:
176 m_abView->setFont( QFont( defaultFont->family(), defaultFont->pointSize() + 2 ) ); 180 m_abView->setFont( QFont( defaultFont->family(), defaultFont->pointSize() + 2 ) );
177 currentFont = new QFont (m_abView->font()); 181 currentFont = new QFont (m_abView->font());
178 // //abList->resizeRows(currentFont->pixelSize() + 7); 182 // //abList->resizeRows(currentFont->pixelSize() + 7);
179 // abList->resizeRows(); 183 // abList->resizeRows();
180 break; 184 break;
181 } 185 }
182} 186}
183 187
184 188
185 189
186void AddressbookWindow::importvCard() { 190void AddressbookWindow::importvCard() {
187 QString str = Opie::Ui::OFileDialog::getOpenFileName( 1,"/");//,"", "*", this ); 191 QString str = Opie::Ui::OFileDialog::getOpenFileName( 1,"/");//,"", "*", this );
188 if(!str.isEmpty() ){ 192 if(!str.isEmpty() ){
189 setDocument((const QString&) str ); 193 setDocument((const QString&) str );
190 } 194 }
191 195
192} 196}
193void AddressbookWindow::exportvCard() 197void AddressbookWindow::exportvCard()
194{ 198{
195 odebug << "void AddressbookWindow::exportvCard()" << oendl; 199 odebug << "void AddressbookWindow::exportvCard()" << oendl;
196 QString filename = Opie::Ui::OFileDialog::getSaveFileName( 1,"/home/"); //,"", "*", this ); 200 QString filename = Opie::Ui::OFileDialog::getSaveFileName( 1,"/home/"); //,"", "*", this );
197 if( !filename.isEmpty() && ( filename[filename.length()-1] != '/' ) ){ 201 if( !filename.isEmpty() && ( filename[filename.length()-1] != '/' ) ){
198 odebug << " Save to file " << filename << ", (" << filename.length()-1 << ")" << oendl; 202 odebug << " Save to file " << filename << ", (" << filename.length()-1 << ")" << oendl;
199 Opie::OPimContact curCont = m_abView->currentEntry(); 203 Opie::OPimContact curCont = m_abView->currentEntry();
200 if ( !curCont.isEmpty() ){ 204 if ( !curCont.isEmpty() ){
201 Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null, 205 Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null,
202 filename ); 206 filename );
203 Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook_exp", QString::null , vcard_backend, true ); 207 Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook_exp", QString::null , vcard_backend, true );
204 if ( access ){ 208 if ( access ){
205 access->add( curCont ); 209 access->add( curCont );
206 access->save(); 210 access->save();
207 } 211 }
208 delete access; 212 delete access;
209 }else 213 }else
210 QMessageBox::critical( 0, "Export VCard", 214 QMessageBox::critical( 0, "Export VCard",
211 QString( tr( "You have to select a contact !") ) ); 215 QString( tr( "You have to select a contact !") ) );
212 216
213 }else 217 }else
214 QMessageBox::critical( 0, "Export VCard", 218 QMessageBox::critical( 0, "Export VCard",
215 QString( tr( "You have to set a filename !") ) ); 219 QString( tr( "You have to set a filename !") ) );
216} 220}
217 221
218void AddressbookWindow::setDocument( const QString &filename ) 222void AddressbookWindow::setDocument( const QString &filename )
219{ 223{
220 odebug << "void AddressbookWindow::setDocument( " << filename << " )" << oendl; 224 odebug << "void AddressbookWindow::setDocument( " << filename << " )" << oendl;
221 225
222 // Switch to default backend. This should avoid to import into 226 // Switch to default backend. This should avoid to import into
223 // the personal database accidently. 227 // the personal database accidently.
224 if ( m_actionPersonal->isOn() ){ 228 if ( m_actionPersonal->isOn() ){
225 m_actionPersonal->setOn( false ); 229 m_actionPersonal->setOn( false );
226 slotPersonalView(); 230 slotPersonalView();
227 } 231 }
228 232
229 if ( filename.find(".vcf") != int(filename.length()) - 4 ){ 233 if ( filename.find(".vcf") != int(filename.length()) - 4 ){
230 234
231 235
232 236
233 switch( QMessageBox::information( this, tr ( "Right file type ?" ), 237 switch( QMessageBox::information( this, tr ( "Right file type ?" ),
234 tr( "The selected file \n does not end with \".vcf\".\n Do you really want to open it?" ), 238 tr( "The selected file \n does not end with \".vcf\".\n Do you really want to open it?" ),
235 tr( "&Yes" ), tr( "&No" ), QString::null, 239 tr( "&Yes" ), tr( "&No" ), QString::null,
236 0, // Enter == button 0 240 0, // Enter == button 0
237 2 ) ) { // Escape == button 2 241 2 ) ) { // Escape == button 2
238 case 0: 242 case 0:
239 odebug << "YES clicked" << oendl; 243 odebug << "YES clicked" << oendl;
240 break; 244 break;
241 case 1: 245 case 1:
242 odebug << "NO clicked" << oendl; 246 odebug << "NO clicked" << oendl;
243 return; 247 return;
244 break; 248 break;
245 } 249 }
246 } 250 }
247 251
248 Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null, 252 Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null,
249 filename ); 253 filename );
250 Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true ); 254 Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true );
251 Opie::OPimContactAccess::List allList = access->allRecords(); 255 Opie::OPimContactAccess::List allList = access->allRecords();
252 odebug << "Found number of contacts in File: " << allList.count() << oendl; 256 odebug << "Found number of contacts in File: " << allList.count() << oendl;
253 257
254 if ( !allList.count() ) { 258 if ( !allList.count() ) {
255 QMessageBox::information( this, "Import VCard", 259 QMessageBox::information( this, "Import VCard",
256 "It was impossible to import\nthe VCard.\n" 260 "It was impossible to import\nthe VCard.\n"
257 "The VCard may be corrupted!" ); 261 "The VCard may be corrupted!" );
258 } 262 }
259 263
260 bool doAsk = true; 264 bool doAsk = true;
261 Opie::OPimContactAccess::List::Iterator it; 265 Opie::OPimContactAccess::List::Iterator it;
262 for ( it = allList.begin(); it != allList.end(); ++it ){ 266 for ( it = allList.begin(); it != allList.end(); ++it ){
263 odebug << "Adding Contact from: " << (*it).fullName() << oendl; 267 odebug << "Adding Contact from: " << (*it).fullName() << oendl;
264 if ( doAsk ){ 268 if ( doAsk ){
265 switch( QMessageBox::information( this, tr ( "Add Contact?" ), 269 switch( QMessageBox::information( this, tr ( "Add Contact?" ),
266 tr( "Do you really want add contact for \n%1?" ) 270 tr( "Do you really want add contact for \n%1?" )
267 .arg( (*it).fullName().latin1() ), 271 .arg( (*it).fullName().latin1() ),
268 tr( "&Yes" ), tr( "&No" ), tr( "&All Yes"), 272 tr( "&Yes" ), tr( "&No" ), tr( "&All Yes"),
269 0, // Enter == button 0 273 0, // Enter == button 0
270 2 ) ) { // Escape == button 2 274 2 ) ) { // Escape == button 2
271 case 0: 275 case 0:
272 odebug << "YES clicked" << oendl; 276 odebug << "YES clicked" << oendl;
273 m_abView->addEntry( *it ); 277 m_abView->addEntry( *it );
274 break; 278 break;
275 case 1: 279 case 1:
276 odebug << "NO clicked" << oendl; 280 odebug << "NO clicked" << oendl;
277 break; 281 break;
278 case 2: 282 case 2:
279 odebug << "YesAll clicked" << oendl; 283 odebug << "YesAll clicked" << oendl;
280 doAsk = false; 284 doAsk = false;
281 break; 285 break;
282 } 286 }
283 }else 287 }else
284 m_abView->addEntry( *it ); 288 m_abView->addEntry( *it );
285 289
286 } 290 }
287 291
288 delete access; 292 delete access;
289} 293}
290 294
291void AddressbookWindow::resizeEvent( QResizeEvent *e ) 295void AddressbookWindow::resizeEvent( QResizeEvent *e )
292{ 296{
293 QMainWindow::resizeEvent( e ); 297 QMainWindow::resizeEvent( e );
294 298
295 299
296} 300}
297 301
298AddressbookWindow::~AddressbookWindow() 302AddressbookWindow::~AddressbookWindow()
299{ 303{
300 ToolBarDock dock; 304 ToolBarDock dock;
301 int dummy; 305 int dummy;
302 bool bDummy; 306 bool bDummy;
303 getLocation ( listTools, dock, dummy, bDummy, dummy ); 307 getLocation ( listTools, dock, dummy, bDummy, dummy );
304 m_config.setToolBarDock( dock ); 308 m_config.setToolBarDock( dock );
305 m_config.save(); 309 m_config.save();
306} 310}
307 311
308int AddressbookWindow::create() 312int AddressbookWindow::create()
309{ 313{
310 return 0; 314 return 0;
311} 315}
312 316
313bool AddressbookWindow::remove( int /*uid*/ ) 317bool AddressbookWindow::remove( int /*uid*/ )
314{ 318{
315 return false; 319 return false;
316} 320}
317 321
318void AddressbookWindow::beam( int /*uid*/ ) 322void AddressbookWindow::beam( int /*uid*/ )
319{ 323{
320} 324}
321 325
322void AddressbookWindow::show( int /*uid*/ ) 326void AddressbookWindow::show( int /*uid*/ )
323{ 327{
324} 328}
325 329
326void AddressbookWindow::edit( int /*uid*/ ) 330void AddressbookWindow::edit( int /*uid*/ )
327{ 331{
328} 332}
329 333
330void AddressbookWindow::add( const Opie::OPimRecord& ) 334void AddressbookWindow::add( const Opie::OPimRecord& )
331{ 335{
332} 336}
333 337
334void AddressbookWindow::slotItemNew() 338void AddressbookWindow::slotItemNew()
335{ 339{
336 Opie::OPimContact cnt; 340 Opie::OPimContact cnt;
337 if( !syncing ) { 341 if( !syncing ) {
338 editEntry( NewEntry ); 342 editEntry( NewEntry );
339 } else { 343 } else {
340 QMessageBox::warning(this, tr("Contacts"), 344 QMessageBox::warning(this, tr("Contacts"),
341 tr("Can not edit data, currently syncing")); 345 tr("Can not edit data, currently syncing"));
342 } 346 }
343} 347}
344 348
345void AddressbookWindow::slotItemEdit() 349void AddressbookWindow::slotItemEdit()
346{ 350{
347 if(!syncing) { 351 if(!syncing) {
348 if (m_actionPersonal->isOn()) { 352 if (m_actionPersonal->isOn()) {
349 editPersonal(); 353 editPersonal();
350 } else { 354 } else {
351 editEntry( EditEntry ); 355 editEntry( EditEntry );
352 } 356 }
353 } else { 357 } else {
354 QMessageBox::warning( this, tr("Contacts"), 358 QMessageBox::warning( this, tr("Contacts"),
355 tr("Can not edit data, currently syncing") ); 359 tr("Can not edit data, currently syncing") );
356 } 360 }
357} 361}
358 362
359void AddressbookWindow::slotItemDuplicate() 363void AddressbookWindow::slotItemDuplicate()
360{ 364{
361 if(!syncing) 365 if(!syncing)
362 { 366 {
363 Opie::OPimContact entry = m_abView->currentEntry(); 367 Opie::OPimContact entry = m_abView->currentEntry();
364 entry.assignUid(); 368 entry.assignUid();
365 m_abView->addEntry( entry ); 369 m_abView->addEntry( entry );
366 m_abView->setCurrentUid( entry.uid() ); 370 m_abView->setCurrentUid( entry.uid() );
367 } 371 }
368 else 372 else
369 { 373 {
370 QMessageBox::warning( this, tr("Contacts"), 374 QMessageBox::warning( this, tr("Contacts"),
371 tr("Can not edit data, currently syncing") ); 375 tr("Can not edit data, currently syncing") );
372 } 376 }
diff --git a/core/pim/addressbook/configdlg.cpp b/core/pim/addressbook/configdlg.cpp
index 61e6c7e..a491fc7 100644
--- a/core/pim/addressbook/configdlg.cpp
+++ b/core/pim/addressbook/configdlg.cpp
@@ -1,154 +1,153 @@
1#include "configdlg.h" 1#include "configdlg.h"
2 2
3#include <opie2/odebug.h> 3#include <opie2/odebug.h>
4#include <opie2/opimcontact.h> 4#include <opie2/opimcontact.h>
5#include "opie2/opimcontactfields.h" 5#include <opie2/opimcontactfields.h>
6 6#include <opie2/oresource.h>
7#include <qpe/resource.h>
8 7
9#include <qcheckbox.h> 8#include <qcheckbox.h>
10#include <qradiobutton.h> 9#include <qradiobutton.h>
11#include <qlistbox.h> 10#include <qlistbox.h>
12#include <qpushbutton.h> 11#include <qpushbutton.h>
13 12
14ConfigDlg::ConfigDlg( QWidget *parent, const char *name): 13ConfigDlg::ConfigDlg( QWidget *parent, const char *name):
15 ConfigDlg_Base(parent, name, true ) 14 ConfigDlg_Base(parent, name, true )
16{ 15{
17 contFields = Opie::OPimContactFields::trfields(); 16 contFields = Opie::OPimContactFields::trfields();
18 17
19 // We add all Fields into the Listbox 18 // We add all Fields into the Listbox
20 for (uint i=0; i < contFields.count(); i++) { 19 for (uint i=0; i < contFields.count(); i++) {
21 allFieldListBox->insertItem( contFields[i] ); 20 allFieldListBox->insertItem( contFields[i] );
22 } 21 }
23 22
24 // Reset Widget Flags: This was not changeable by designer :( 23 // Reset Widget Flags: This was not changeable by designer :(
25 setWFlags ( WStyle_ContextHelp ); 24 setWFlags ( WStyle_ContextHelp );
26 25
27 // Set Pics to Buttons and Tabs 26 // Set Pics to Buttons and Tabs
28 m_upButton->setIconSet( QIconSet( Resource::loadPixmap( "addressbook/up" ) ) ); 27 m_upButton->setIconSet( QIconSet( Opie::Core::OResource::loadPixmap( "addressbook/up" ) ) );
29 m_downButton->setIconSet( QIconSet( Resource::loadPixmap( "addressbook/down" ) ) ); 28 m_downButton->setIconSet( QIconSet( Opie::Core::OResource::loadPixmap( "addressbook/down" ) ) );
30 m_addButton->setIconSet( QIconSet( Resource::loadPixmap( "addressbook/add" ) ) ); 29 m_addButton->setIconSet( QIconSet( Opie::Core::OResource::loadPixmap( "addressbook/add" ) ) );
31 m_removeButton->setIconSet( QIconSet( Resource::loadPixmap( "addressbook/sub" ) ) ); 30 m_removeButton->setIconSet( QIconSet( Opie::Core::OResource::loadPixmap( "addressbook/sub" ) ) );
32 31
33 32
34 // Get the translation maps between Field ID and translated strings 33 // Get the translation maps between Field ID and translated strings
35 m_mapStrToID = Opie::OPimContactFields::trFieldsToId(); 34 m_mapStrToID = Opie::OPimContactFields::trFieldsToId();
36 m_mapIDToStr = Opie::OPimContactFields::idToTrFields(); 35 m_mapIDToStr = Opie::OPimContactFields::idToTrFields();
37 36
38 connect ( m_addButton, SIGNAL( clicked() ), this, SLOT( slotItemAdd() ) ); 37 connect ( m_addButton, SIGNAL( clicked() ), this, SLOT( slotItemAdd() ) );
39 connect ( m_removeButton, SIGNAL( clicked() ), this, SLOT( slotItemRemove() ) ); 38 connect ( m_removeButton, SIGNAL( clicked() ), this, SLOT( slotItemRemove() ) );
40 connect ( m_upButton, SIGNAL( clicked() ), this, SLOT( slotItemUp() ) ); 39 connect ( m_upButton, SIGNAL( clicked() ), this, SLOT( slotItemUp() ) );
41 connect ( m_downButton, SIGNAL( clicked() ), this, SLOT( slotItemDown() ) ); 40 connect ( m_downButton, SIGNAL( clicked() ), this, SLOT( slotItemDown() ) );
42} 41}
43 42
44void ConfigDlg::slotItemUp() 43void ConfigDlg::slotItemUp()
45{ 44{
46 odebug << "void ConfigDlg::slotItemUp()" << oendl; 45 odebug << "void ConfigDlg::slotItemUp()" << oendl;
47 46
48 int i = fieldListBox->currentItem(); 47 int i = fieldListBox->currentItem();
49 if ( i > 0 ) { 48 if ( i > 0 ) {
50 QString item = fieldListBox->currentText(); 49 QString item = fieldListBox->currentText();
51 fieldListBox->removeItem( i ); 50 fieldListBox->removeItem( i );
52 fieldListBox->insertItem( item, i-1 ); 51 fieldListBox->insertItem( item, i-1 );
53 fieldListBox->setCurrentItem( i-1 ); 52 fieldListBox->setCurrentItem( i-1 );
54 } 53 }
55 54
56} 55}
57 56
58void ConfigDlg::slotItemDown() 57void ConfigDlg::slotItemDown()
59{ 58{
60 odebug << "void ConfigDlg::slotItemDown()" << oendl; 59 odebug << "void ConfigDlg::slotItemDown()" << oendl;
61 60
62 int i = fieldListBox->currentItem(); 61 int i = fieldListBox->currentItem();
63 if ( i < (int)fieldListBox->count() - 1 ) { 62 if ( i < (int)fieldListBox->count() - 1 ) {
64 QString item = fieldListBox->currentText(); 63 QString item = fieldListBox->currentText();
65 fieldListBox->removeItem( i ); 64 fieldListBox->removeItem( i );
66 fieldListBox->insertItem( item, i+1 ); 65 fieldListBox->insertItem( item, i+1 );
67 fieldListBox->setCurrentItem( i+1 ); 66 fieldListBox->setCurrentItem( i+1 );
68 } 67 }
69} 68}
70 69
71void ConfigDlg::slotItemAdd() 70void ConfigDlg::slotItemAdd()
72{ 71{
73 odebug << "void ConfigDlg::slotItemAdd()" << oendl; 72 odebug << "void ConfigDlg::slotItemAdd()" << oendl;
74 73
75 int i = allFieldListBox->currentItem(); 74 int i = allFieldListBox->currentItem();
76 if ( i > 0 ) { 75 if ( i > 0 ) {
77 QString item = allFieldListBox->currentText(); 76 QString item = allFieldListBox->currentText();
78 odebug << "Adding " << item << oendl; 77 odebug << "Adding " << item << oendl;
79 fieldListBox->insertItem( item ); 78 fieldListBox->insertItem( item );
80 } 79 }
81} 80}
82 81
83void ConfigDlg::slotItemRemove() 82void ConfigDlg::slotItemRemove()
84{ 83{
85 odebug << "void ConfigDlg::slotItemRemove()" << oendl; 84 odebug << "void ConfigDlg::slotItemRemove()" << oendl;
86 85
87 int i = fieldListBox->currentItem(); 86 int i = fieldListBox->currentItem();
88 if ( i > 0 ) { 87 if ( i > 0 ) {
89 fieldListBox->removeItem( i ); 88 fieldListBox->removeItem( i );
90 } 89 }
91} 90}
92 91
93void ConfigDlg::setConfig( const AbConfig& cnf ) 92void ConfigDlg::setConfig( const AbConfig& cnf )
94{ 93{
95 m_config = cnf; 94 m_config = cnf;
96 95
97 m_useRegExp->setChecked( m_config.useRegExp() ); 96 m_useRegExp->setChecked( m_config.useRegExp() );
98 m_useWildCard->setChecked( m_config.useWildCards() ); 97 m_useWildCard->setChecked( m_config.useWildCards() );
99 m_useQtMail->setChecked( m_config.useQtMail() ); 98 m_useQtMail->setChecked( m_config.useQtMail() );
100 m_useOpieMail->setChecked( m_config.useOpieMail() ); 99 m_useOpieMail->setChecked( m_config.useOpieMail() );
101 m_useCaseSensitive->setChecked( m_config.beCaseSensitive() ); 100 m_useCaseSensitive->setChecked( m_config.beCaseSensitive() );
102 101
103 switch( m_config.fontSize() ){ 102 switch( m_config.fontSize() ){
104 case 0: 103 case 0:
105 m_smallFont->setChecked( true ); 104 m_smallFont->setChecked( true );
106 m_normalFont->setChecked( false ); 105 m_normalFont->setChecked( false );
107 m_largeFont->setChecked( false ); 106 m_largeFont->setChecked( false );
108 break; 107 break;
109 case 1: 108 case 1:
110 m_smallFont->setChecked( false ); 109 m_smallFont->setChecked( false );
111 m_normalFont->setChecked( true ); 110 m_normalFont->setChecked( true );
112 m_largeFont->setChecked( false ); 111 m_largeFont->setChecked( false );
113 break; 112 break;
114 case 2: 113 case 2:
115 m_smallFont->setChecked( false ); 114 m_smallFont->setChecked( false );
116 m_normalFont->setChecked( false ); 115 m_normalFont->setChecked( false );
117 m_largeFont->setChecked( true ); 116 m_largeFont->setChecked( true );
118 break; 117 break;
119 } 118 }
120 119
121 for( uint i = 0; i < m_config.orderList().count(); i++ ) { 120 for( uint i = 0; i < m_config.orderList().count(); i++ ) {
122 fieldListBox -> insertItem ( m_mapIDToStr[ m_config.orderList()[i] ] ); 121 fieldListBox -> insertItem ( m_mapIDToStr[ m_config.orderList()[i] ] );
123 } 122 }
124 123
125 m_fixedBars->setChecked( m_config.fixedBars() ); 124 m_fixedBars->setChecked( m_config.fixedBars() );
126 m_moveBars->setChecked( !m_config.fixedBars() ); 125 m_moveBars->setChecked( !m_config.fixedBars() );
127} 126}
128 127
129AbConfig ConfigDlg::getConfig() 128AbConfig ConfigDlg::getConfig()
130{ 129{
131 m_config.setUseRegExp( m_useRegExp->isOn() ); 130 m_config.setUseRegExp( m_useRegExp->isOn() );
132 m_config.setUseWildCards( m_useWildCard->isOn() ); 131 m_config.setUseWildCards( m_useWildCard->isOn() );
133 m_config.setUseQtMail( m_useQtMail->isOn() ); 132 m_config.setUseQtMail( m_useQtMail->isOn() );
134 m_config.setUseOpieMail( m_useOpieMail->isOn() ); 133 m_config.setUseOpieMail( m_useOpieMail->isOn() );
135 m_config.setBeCaseSensitive( m_useCaseSensitive->isChecked() ); 134 m_config.setBeCaseSensitive( m_useCaseSensitive->isChecked() );
136 135
137 if ( m_smallFont->isChecked() ) 136 if ( m_smallFont->isChecked() )
138 m_config.setFontSize( 0 ); 137 m_config.setFontSize( 0 );
139 if ( m_normalFont->isChecked() ) 138 if ( m_normalFont->isChecked() )
140 m_config.setFontSize( 1 ); 139 m_config.setFontSize( 1 );
141 if ( m_largeFont->isChecked() ) 140 if ( m_largeFont->isChecked() )
142 m_config.setFontSize( 2 ); 141 m_config.setFontSize( 2 );
143 142
144 QValueList<int> orderlist; 143 QValueList<int> orderlist;
145 for( int i = 0; i < (int)fieldListBox->count(); i++ ) { 144 for( int i = 0; i < (int)fieldListBox->count(); i++ ) {
146 orderlist.append( m_mapStrToID[ fieldListBox->text(i) ] ); 145 orderlist.append( m_mapStrToID[ fieldListBox->text(i) ] );
147 } 146 }
148 m_config.setOrderList( orderlist ); 147 m_config.setOrderList( orderlist );
149 148
150 m_config.setFixedBars( m_fixedBars->isChecked() ); 149 m_config.setFixedBars( m_fixedBars->isChecked() );
151 150
152 return m_config; 151 return m_config;
153} 152}
154 153
diff --git a/core/pim/addressbook/contacteditor.cpp b/core/pim/addressbook/contacteditor.cpp
index dec4c7c..4a0059a 100644
--- a/core/pim/addressbook/contacteditor.cpp
+++ b/core/pim/addressbook/contacteditor.cpp
@@ -1,814 +1,815 @@
1/* 1/*
2 * Copyright (c) 2002 Michael R. Crawford <mike@tuxnami.org> 2 * Copyright (c) 2002 Michael R. Crawford <mike@tuxnami.org>
3 * Copyright (C) 2002 by Stefan Eilers (eilers.stefan@epost.de) 3 * Copyright (C) 2002 by Stefan Eilers (eilers.stefan@epost.de)
4 * 4 *
5 * This file is an add-on for the OPIE Palmtop Environment 5 * This file is an add-on for the OPIE Palmtop Environment
6 * 6 *
7 * This file may be distributed and/or modified under the terms of the 7 * This file may be distributed and/or modified under the terms of the
8 * GNU General Public License version 2 as published by the Free Software 8 * GNU General Public License version 2 as published by the Free Software
9 * Foundation and appearing in the file LICENSE.GPL included in the pacakaging 9 * Foundation and appearing in the file LICENSE.GPL included in the pacakaging
10 * of this file. 10 * of this file.
11 * 11 *
12 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 12 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
13 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 13 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
14 * 14 *
15 * 15 *
16 * This is a rewrite of the abeditor.h file, modified to provide a more 16 * This is a rewrite of the abeditor.h file, modified to provide a more
17 * intuitive interface to TrollTech's original Address Book editor. This 17 * intuitive interface to TrollTech's original Address Book editor. This
18 * is made to operate exactly in interface with the exception of name. 18 * is made to operate exactly in interface with the exception of name.
19 * 19 *
20 */ 20 */
21 21
22#include "contacteditor.h" 22#include "contacteditor.h"
23#include "namelineedit.h" 23#include "namelineedit.h"
24 24
25#include <opie2/odebug.h> 25#include <opie2/odebug.h>
26#include <opie2/opimcontact.h> 26#include <opie2/opimcontact.h>
27#include <opie2/oresource.h>
27 28
28#include <qpe/categoryselect.h> 29#include <qpe/categoryselect.h>
29#include <qpe/qpeapplication.h> 30#include <qpe/qpeapplication.h>
30#include <qpe/qpedialog.h> 31#include <qpe/qpedialog.h>
31#include <qpe/resource.h>
32 32
33#include <qlabel.h> 33#include <qlabel.h>
34#include <qlayout.h> 34#include <qlayout.h>
35#include <qlineedit.h> 35#include <qlineedit.h>
36#include <qmultilineedit.h> 36#include <qmultilineedit.h>
37#include <qtoolbutton.h> 37#include <qtoolbutton.h>
38#include <qlistbox.h> 38#include <qlistbox.h>
39#include <qmessagebox.h> 39#include <qmessagebox.h>
40#include <qwhatsthis.h> 40#include <qwhatsthis.h>
41 41
42#include <assert.h> 42#include <assert.h>
43 43
44static inline bool containsAlphaNum( const QString &str ); 44static inline bool containsAlphaNum( const QString &str );
45static inline bool constainsWhiteSpace( const QString &str ); 45static inline bool constainsWhiteSpace( const QString &str );
46 46
47// helper functions, convert our comma delimited list to proper 47// helper functions, convert our comma delimited list to proper
48// file format... 48// file format...
49void parseEmailFrom( const QString &txt, QString &strDefaultEmail, 49void parseEmailFrom( const QString &txt, QString &strDefaultEmail,
50 QString &strAll ); 50 QString &strAll );
51 51
52// helper convert from file format to comma delimited... 52// helper convert from file format to comma delimited...
53void parseEmailTo( const QString &strDefaultEmail, 53void parseEmailTo( const QString &strDefaultEmail,
54 const QString &strOtherEmail, QString &strBack ); 54 const QString &strOtherEmail, QString &strBack );
55 55
56 ContactEditor::ContactEditor(const Opie::OPimContact &entry, 56 ContactEditor::ContactEditor(const Opie::OPimContact &entry,
57 QWidget *parent, 57 QWidget *parent,
58 const char *name, 58 const char *name,
59 WFlags ) 59 WFlags )
60 : QDialog( parent, name, true, WStyle_ContextHelp ), 60 : QDialog( parent, name, true, WStyle_ContextHelp ),
61 defaultEmailChooserPosition( -1 ), 61 defaultEmailChooserPosition( -1 ),
62 m_personalView ( false ), 62 m_personalView ( false ),
63 cmbDefaultEmail( 0 ), 63 cmbDefaultEmail( 0 ),
64 initializing ( false ) 64 initializing ( false )
65{ 65{
66 66
67 initializing = true; 67 initializing = true;
68 68
69 init(); 69 init();
70 setEntry( entry ); 70 setEntry( entry );
71 // cmbDefaultEmail = 0; 71 // cmbDefaultEmail = 0;
72 // defaultEmailChooserPosition = -1; 72 // defaultEmailChooserPosition = -1;
73 73
74 initializing = false; 74 initializing = false;
75} 75}
76 76
77ContactEditor::~ContactEditor() { 77ContactEditor::~ContactEditor() {
78} 78}
79 79
80void ContactEditor::init() { 80void ContactEditor::init() {
81 odebug << "init() START" << oendl; 81 odebug << "init() START" << oendl;
82 82
83 uint i = 0; 83 uint i = 0;
84 84
85 QStringList trlChooserNames; 85 QStringList trlChooserNames;
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 trlChooserNames = Opie::OPimContactFields::trphonefields( false ); 92 trlChooserNames = Opie::OPimContactFields::trphonefields( false );
93 slChooserNames = Opie::OPimContactFields::untrphonefields( false ); 93 slChooserNames = Opie::OPimContactFields::untrphonefields( false );
94 slDynamicEntries = Opie::OPimContactFields::untrdetailsfields( false ); 94 slDynamicEntries = Opie::OPimContactFields::untrdetailsfields( false );
95 trlDynamicEntries = Opie::OPimContactFields::trdetailsfields( false ); 95 trlDynamicEntries = Opie::OPimContactFields::trdetailsfields( false );
96 96
97 // Ok, we have to remove elements from the list of dynamic entries 97 // Ok, we have to remove elements from the list of dynamic entries
98 // which are now stored in special (not dynamic) widgets.. 98 // which are now stored in special (not dynamic) widgets..
99 // Otherwise we will get problems with field assignments! (se) 99 // Otherwise we will get problems with field assignments! (se)
100 slDynamicEntries.remove("Anniversary"); 100 slDynamicEntries.remove("Anniversary");
101 slDynamicEntries.remove("Birthday"); 101 slDynamicEntries.remove("Birthday");
102 slDynamicEntries.remove("Gender"); 102 slDynamicEntries.remove("Gender");
103 103
104 // The same with translated fields.. But I will 104 // The same with translated fields.. But I will
105 // use the translation map to avoid mismatches.. 105 // use the translation map to avoid mismatches..
106 QMap<int, QString> translMap = Opie::OPimContactFields::idToTrFields(); 106 QMap<int, QString> translMap = Opie::OPimContactFields::idToTrFields();
107 trlDynamicEntries.remove( translMap[Qtopia::Anniversary] ); 107 trlDynamicEntries.remove( translMap[Qtopia::Anniversary] );
108 trlDynamicEntries.remove( translMap[Qtopia::Birthday] ); 108 trlDynamicEntries.remove( translMap[Qtopia::Birthday] );
109 trlDynamicEntries.remove( translMap[Qtopia::Gender] ); 109 trlDynamicEntries.remove( translMap[Qtopia::Gender] );
110 110
111 // Last Check to be sure.. 111 // Last Check to be sure..
112 assert( slDynamicEntries.count() == trlDynamicEntries.count() ); 112 assert( slDynamicEntries.count() == trlDynamicEntries.count() );
113 assert( slChooserNames.count() == trlChooserNames.count() ); 113 assert( slChooserNames.count() == trlChooserNames.count() );
114 114
115 for (i = 0; i < slChooserNames.count(); i++) 115 for (i = 0; i < slChooserNames.count(); i++)
116 slChooserValues.append(""); 116 slChooserValues.append("");
117 117
118 118
119 QVBoxLayout *vb = new QVBoxLayout( this ); 119 QVBoxLayout *vb = new QVBoxLayout( this );
120 120
121 tabMain = new Opie::Ui::OTabWidget( this ); 121 tabMain = new Opie::Ui::OTabWidget( this );
122 vb->addWidget( tabMain ); 122 vb->addWidget( tabMain );
123 123
124 m_generalWidget = new QWidget ( tabMain ); 124 m_generalWidget = new QWidget ( tabMain );
125 125
126 vb = new QVBoxLayout( m_generalWidget ); 126 vb = new QVBoxLayout( m_generalWidget );
127 127
128 svGeneral = new QScrollView( m_generalWidget ); 128 svGeneral = new QScrollView( m_generalWidget );
129 vb->addWidget( svGeneral, 0, 0 ); 129 vb->addWidget( svGeneral, 0, 0 );
130 svGeneral->setResizePolicy( QScrollView::AutoOneFit ); 130 svGeneral->setResizePolicy( QScrollView::AutoOneFit );
131 // svGeneral->setHScrollBarMode( QScrollView::AlwaysOff ); 131 // svGeneral->setHScrollBarMode( QScrollView::AlwaysOff );
132 // svGeneral->setVScrollBarMode( QScrollView::AlwaysOff ); 132 // svGeneral->setVScrollBarMode( QScrollView::AlwaysOff );
133 svGeneral->setFrameStyle( QFrame::NoFrame ); 133 svGeneral->setFrameStyle( QFrame::NoFrame );
134 134
135 QWidget *container = new QWidget( svGeneral->viewport() ); 135 QWidget *container = new QWidget( svGeneral->viewport() );
136 svGeneral->addChild( container ); 136 svGeneral->addChild( container );
137 137
138 QGridLayout *gl = new QGridLayout( container, 10, 2, 2, 4 ); 138 QGridLayout *gl = new QGridLayout( container, 10, 2, 2, 4 );
139 139
140 btnFullName = new QPushButton( tr( "Full Name..." ), container ); 140 btnFullName = new QPushButton( tr( "Full Name..." ), container );
141 QWhatsThis::add( btnFullName, tr( "Press to enter last- middle and firstname" ) ); 141 QWhatsThis::add( btnFullName, tr( "Press to enter last- middle and firstname" ) );
142 gl->addWidget( btnFullName, 0, 0 ); 142 gl->addWidget( btnFullName, 0, 0 );
143 txtFullName = new ABOOK::NameLineEdit( container ); 143 txtFullName = new ABOOK::NameLineEdit( container );
144 QWhatsThis::add( txtFullName, tr( "Enter fullname directly ! If you have a lastname with multiple words ( for instance \"de la Guerra\"), please write <lastname>,<firstnames> like this: \"de la Guerra, Carlos Pedro\"" ) ); 144 QWhatsThis::add( txtFullName, tr( "Enter fullname directly ! If you have a lastname with multiple words ( for instance \"de la Guerra\"), please write <lastname>,<firstnames> like this: \"de la Guerra, Carlos Pedro\"" ) );
145 gl->addWidget( txtFullName, 0, 1 ); 145 gl->addWidget( txtFullName, 0, 1 );
146 146
147 QLabel *l = new QLabel( tr( "Job Title" ), container ); 147 QLabel *l = new QLabel( tr( "Job Title" ), container );
148 QWhatsThis::add( l, tr( "The jobtitle.." ) ); 148 QWhatsThis::add( l, tr( "The jobtitle.." ) );
149 gl->addWidget( l, 1, 0 ); 149 gl->addWidget( l, 1, 0 );
150 txtJobTitle = new QLineEdit( container ); 150 txtJobTitle = new QLineEdit( container );
151 QWhatsThis::add( txtJobTitle, tr( "The jobtitle.." ) ); 151 QWhatsThis::add( txtJobTitle, tr( "The jobtitle.." ) );
152 gl->addWidget( txtJobTitle, 1, 1 ); 152 gl->addWidget( txtJobTitle, 1, 1 );
153 153
154 l = new QLabel( tr("Suffix"), container ); 154 l = new QLabel( tr("Suffix"), container );
155 QWhatsThis::add( l, tr( "Something like \"jr.\".." ) ); 155 QWhatsThis::add( l, tr( "Something like \"jr.\".." ) );
156 gl->addWidget( l, 2, 0 ); 156 gl->addWidget( l, 2, 0 );
157 txtSuffix = new QLineEdit( container ); 157 txtSuffix = new QLineEdit( container );
158 QWhatsThis::add( txtSuffix, tr( "Something like \"jr.\".." ) ); 158 QWhatsThis::add( txtSuffix, tr( "Something like \"jr.\".." ) );
159 gl->addWidget( txtSuffix, 2, 1 ); 159 gl->addWidget( txtSuffix, 2, 1 );
160 160
161 l = new QLabel( tr( "Organization" ), container ); 161 l = new QLabel( tr( "Organization" ), container );
162 QWhatsThis::add( l, tr( "The working place of the contact" ) ); 162 QWhatsThis::add( l, tr( "The working place of the contact" ) );
163 gl->addWidget( l, 3, 0 ); 163 gl->addWidget( l, 3, 0 );
164 txtOrganization = new QLineEdit( container ); 164 txtOrganization = new QLineEdit( container );
165 QWhatsThis::add( txtOrganization, tr( "The working place of the contact" ) ); 165 QWhatsThis::add( txtOrganization, tr( "The working place of the contact" ) );
166 gl->addWidget( txtOrganization, 3, 1 ); 166 gl->addWidget( txtOrganization, 3, 1 );
167 167
168 // Chooser 1 168 // Chooser 1
169 cmbChooserField1 = new QComboBox( false, container ); 169 cmbChooserField1 = new QComboBox( false, container );
170 QWhatsThis::add( cmbChooserField1, tr( "Press to select attribute to change" ) ); 170 QWhatsThis::add( cmbChooserField1, tr( "Press to select attribute to change" ) );
171 cmbChooserField1->setMaximumWidth( 90 ); 171 cmbChooserField1->setMaximumWidth( 90 );
172 gl->addWidget( cmbChooserField1, 4, 0 ); 172 gl->addWidget( cmbChooserField1, 4, 0 );
173 // Textfield for chooser 1. 173 // Textfield for chooser 1.
174 // Now use Widgetstack to contain the textfield and the default-email combo ! 174 // Now use Widgetstack to contain the textfield and the default-email combo !
175 m_widgetStack1 = new QWidgetStack( container ); 175 m_widgetStack1 = new QWidgetStack( container );
176 txtChooserField1 = new QLineEdit( m_widgetStack1 ); 176 txtChooserField1 = new QLineEdit( m_widgetStack1 );
177 m_widgetStack1 -> addWidget( txtChooserField1, TextField ); 177 m_widgetStack1 -> addWidget( txtChooserField1, TextField );
178 gl->addWidget( m_widgetStack1, 4, 1 ); 178 gl->addWidget( m_widgetStack1, 4, 1 );
179 m_widgetStack1 -> raiseWidget( TextField ); 179 m_widgetStack1 -> raiseWidget( TextField );
180 180
181 // Chooser 2 181 // Chooser 2
182 cmbChooserField2 = new QComboBox( false, container ); 182 cmbChooserField2 = new QComboBox( false, container );
183 QWhatsThis::add( cmbChooserField2, tr( "Press to select attribute to change" ) ); 183 QWhatsThis::add( cmbChooserField2, tr( "Press to select attribute to change" ) );
184 cmbChooserField2->setMaximumWidth( 90 ); 184 cmbChooserField2->setMaximumWidth( 90 );
185 gl->addWidget( cmbChooserField2, 5, 0 ); 185 gl->addWidget( cmbChooserField2, 5, 0 );
186 // Textfield for chooser 2 186 // Textfield for chooser 2
187 // Now use WidgetStack to contain the textfield and the default-email combo! 187 // Now use WidgetStack to contain the textfield and the default-email combo!
188 m_widgetStack2 = new QWidgetStack( container ); 188 m_widgetStack2 = new QWidgetStack( container );
189 txtChooserField2 = new QLineEdit( m_widgetStack2 ); 189 txtChooserField2 = new QLineEdit( m_widgetStack2 );
190 m_widgetStack2 -> addWidget( txtChooserField2, TextField ); 190 m_widgetStack2 -> addWidget( txtChooserField2, TextField );
191 gl->addWidget( m_widgetStack2, 5, 1 ); 191 gl->addWidget( m_widgetStack2, 5, 1 );
192 m_widgetStack2 -> raiseWidget( TextField ); 192 m_widgetStack2 -> raiseWidget( TextField );
193 193
194 // Chooser 3 194 // Chooser 3
195 cmbChooserField3 = new QComboBox( false, container ); 195 cmbChooserField3 = new QComboBox( false, container );
196 QWhatsThis::add( cmbChooserField3, tr( "Press to select attribute to change" ) ); 196 QWhatsThis::add( cmbChooserField3, tr( "Press to select attribute to change" ) );
197 cmbChooserField3->setMaximumWidth( 90 ); 197 cmbChooserField3->setMaximumWidth( 90 );
198 gl->addWidget( cmbChooserField3, 6, 0 ); 198 gl->addWidget( cmbChooserField3, 6, 0 );
199 // Textfield for chooser 2 199 // Textfield for chooser 2
200 // Now use WidgetStack to contain the textfield and the default-email combo! 200 // Now use WidgetStack to contain the textfield and the default-email combo!
201 m_widgetStack3 = new QWidgetStack( container ); 201 m_widgetStack3 = new QWidgetStack( container );
202 txtChooserField3 = new QLineEdit( m_widgetStack3 ); 202 txtChooserField3 = new QLineEdit( m_widgetStack3 );
203 m_widgetStack3 -> addWidget( txtChooserField3, TextField ); 203 m_widgetStack3 -> addWidget( txtChooserField3, TextField );
204 gl->addWidget( m_widgetStack3, 6, 1 ); 204 gl->addWidget( m_widgetStack3, 6, 1 );
205 m_widgetStack3 -> raiseWidget( TextField ); 205 m_widgetStack3 -> raiseWidget( TextField );
206 206
207 l = new QLabel( tr( "File As" ), container ); 207 l = new QLabel( tr( "File As" ), container );
208 QWhatsThis::add( l, tr( "Press to select how to store the name (and howto show it in the listview)" ) ); 208 QWhatsThis::add( l, tr( "Press to select how to store the name (and howto show it in the listview)" ) );
209 gl->addWidget( l, 7, 0 ); 209 gl->addWidget( l, 7, 0 );
210 cmbFileAs = new QComboBox( true, container ); 210 cmbFileAs = new QComboBox( true, container );
211 gl->addWidget( cmbFileAs, 7, 1 ); 211 gl->addWidget( cmbFileAs, 7, 1 );
212 212
213 labCat = new QLabel( tr( "Category" ), container ); 213 labCat = new QLabel( tr( "Category" ), container );
214 gl->addWidget( labCat, 8, 0 ); 214 gl->addWidget( labCat, 8, 0 );
215 cmbCat = new CategorySelect( container ); 215 cmbCat = new CategorySelect( container );
216 gl->addWidget( cmbCat, 8, 1 ); 216 gl->addWidget( cmbCat, 8, 1 );
217 labCat->show(); 217 labCat->show();
218 cmbCat->show(); 218 cmbCat->show();
219 219
220 btnNote = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Notes..." ), container ); 220 btnNote = new QPushButton( Opie::Core::OResource::loadPixmap( "edit", Opie::Core::OResource::SmallIcon ),
221 tr( "Notes..." ), container );
221 gl->addWidget( btnNote, 9, 1 ); 222 gl->addWidget( btnNote, 9, 1 );
222 223
223 tabMain->addTab( m_generalWidget, "addressbook/AddressBookSmall", tr( "General" ) ); 224 tabMain->addTab( m_generalWidget, "addressbook/AddressBookSmall", tr( "General" ) );
224 225
225 QWidget *tabViewport = new QWidget ( tabMain ); 226 QWidget *tabViewport = new QWidget ( tabMain );
226 227
227 vb = new QVBoxLayout( tabViewport ); 228 vb = new QVBoxLayout( tabViewport );
228 229
229 svAddress = new QScrollView( tabViewport ); 230 svAddress = new QScrollView( tabViewport );
230 vb->addWidget( svAddress, 0, 0 ); 231 vb->addWidget( svAddress, 0, 0 );
231 svAddress->setResizePolicy( QScrollView::AutoOneFit ); 232 svAddress->setResizePolicy( QScrollView::AutoOneFit );
232 svAddress->setFrameStyle( QFrame::NoFrame ); 233 svAddress->setFrameStyle( QFrame::NoFrame );
233 234
234 container = new QWidget( svAddress->viewport() ); 235 container = new QWidget( svAddress->viewport() );
235 svAddress->addChild( container ); 236 svAddress->addChild( container );
236 237
237 gl = new QGridLayout( container, 8, 3, 2, 4 ); // row 7 QSpacerItem 238 gl = new QGridLayout( container, 8, 3, 2, 4 ); // row 7 QSpacerItem
238 239
239 cmbAddress = new QComboBox( false, container ); 240 cmbAddress = new QComboBox( false, container );
240 cmbAddress->insertItem( tr( "Business" ) ); 241 cmbAddress->insertItem( tr( "Business" ) );
241 cmbAddress->insertItem( tr( "Home" ) ); 242 cmbAddress->insertItem( tr( "Home" ) );
242 gl->addMultiCellWidget( cmbAddress, 0, 0, 0, 1 ); 243 gl->addMultiCellWidget( cmbAddress, 0, 0, 0, 1 );
243 244
244 l = new QLabel( tr( "Address" ), container ); 245 l = new QLabel( tr( "Address" ), container );
245 gl->addWidget( l, 1, 0 ); 246 gl->addWidget( l, 1, 0 );
246 txtAddress = new QLineEdit( container ); 247 txtAddress = new QLineEdit( container );
247 gl->addMultiCellWidget( txtAddress, 1, 1, 1, 2 ); 248 gl->addMultiCellWidget( txtAddress, 1, 1, 1, 2 );
248 249
249 l = new QLabel( tr( "City" ), container ); 250 l = new QLabel( tr( "City" ), container );
250 gl->addWidget( l, 2, 0 ); 251 gl->addWidget( l, 2, 0 );
251 txtCity = new QLineEdit( container ); 252 txtCity = new QLineEdit( container );
252 gl->addMultiCellWidget( txtCity, 2, 2, 1, 2 ); 253 gl->addMultiCellWidget( txtCity, 2, 2, 1, 2 );
253 254
254 l = new QLabel( tr( "State" ), container ); 255 l = new QLabel( tr( "State" ), container );
255 gl->addWidget( l, 3, 0 ); 256 gl->addWidget( l, 3, 0 );
256 txtState = new QLineEdit( container ); 257 txtState = new QLineEdit( container );
257 gl->addMultiCellWidget( txtState, 3, 3, 1, 2 ); 258 gl->addMultiCellWidget( txtState, 3, 3, 1, 2 );
258 259
259 l = new QLabel( tr( "Zip Code" ), container ); 260 l = new QLabel( tr( "Zip Code" ), container );
260 gl->addWidget( l, 4, 0 ); 261 gl->addWidget( l, 4, 0 );
261 txtZip = new QLineEdit( container ); 262 txtZip = new QLineEdit( container );
262 gl->addMultiCellWidget( txtZip, 4, 4, 1, 2 ); 263 gl->addMultiCellWidget( txtZip, 4, 4, 1, 2 );
263 264
264 l = new QLabel( tr( "Country" ), container ); 265 l = new QLabel( tr( "Country" ), container );
265 gl->addWidget( l, 5, 0 ); 266 gl->addWidget( l, 5, 0 );
266 cmbCountry = new QComboBox( true, container ); 267 cmbCountry = new QComboBox( true, container );
267 cmbCountry->insertItem( "" ); 268 cmbCountry->insertItem( "" );
268 cmbCountry->insertItem( tr ( "United States" ) ); 269 cmbCountry->insertItem( tr ( "United States" ) );
269 cmbCountry->insertItem( tr ( "United Kingdom" ) ); 270 cmbCountry->insertItem( tr ( "United Kingdom" ) );
270 cmbCountry->insertItem( tr ( "Afghanistan" ) ); 271 cmbCountry->insertItem( tr ( "Afghanistan" ) );
271 cmbCountry->insertItem( tr ( "Albania" ) ); 272 cmbCountry->insertItem( tr ( "Albania" ) );
272 cmbCountry->insertItem( tr ( "Algeria" ) ); 273 cmbCountry->insertItem( tr ( "Algeria" ) );
273 cmbCountry->insertItem( tr ( "American Samoa" ) ); 274 cmbCountry->insertItem( tr ( "American Samoa" ) );
274 cmbCountry->insertItem( tr ( "Andorra" ) ); 275 cmbCountry->insertItem( tr ( "Andorra" ) );
275 cmbCountry->insertItem( tr ( "Angola" ) ); 276 cmbCountry->insertItem( tr ( "Angola" ) );
276 cmbCountry->insertItem( tr ( "Anguilla" ) ); 277 cmbCountry->insertItem( tr ( "Anguilla" ) );
277 cmbCountry->insertItem( tr ( "Antarctica" ) ); 278 cmbCountry->insertItem( tr ( "Antarctica" ) );
278 cmbCountry->insertItem( tr ( "Argentina" ) ); 279 cmbCountry->insertItem( tr ( "Argentina" ) );
279 cmbCountry->insertItem( tr ( "Armenia" ) ); 280 cmbCountry->insertItem( tr ( "Armenia" ) );
280 cmbCountry->insertItem( tr ( "Aruba" ) ); 281 cmbCountry->insertItem( tr ( "Aruba" ) );
281 cmbCountry->insertItem( tr ( "Australia" ) ); 282 cmbCountry->insertItem( tr ( "Australia" ) );
282 cmbCountry->insertItem( tr ( "Austria" ) ); 283 cmbCountry->insertItem( tr ( "Austria" ) );
283 cmbCountry->insertItem( tr ( "Azerbaijan" ) ); 284 cmbCountry->insertItem( tr ( "Azerbaijan" ) );
284 cmbCountry->insertItem( tr ( "Bahamas" ) ); 285 cmbCountry->insertItem( tr ( "Bahamas" ) );
285 cmbCountry->insertItem( tr ( "Bahrain" ) ); 286 cmbCountry->insertItem( tr ( "Bahrain" ) );
286 cmbCountry->insertItem( tr ( "Bangladesh" ) ); 287 cmbCountry->insertItem( tr ( "Bangladesh" ) );
287 cmbCountry->insertItem( tr ( "Barbados" ) ); 288 cmbCountry->insertItem( tr ( "Barbados" ) );
288 cmbCountry->insertItem( tr ( "Belarus" ) ); 289 cmbCountry->insertItem( tr ( "Belarus" ) );
289 cmbCountry->insertItem( tr ( "Belgium" ) ); 290 cmbCountry->insertItem( tr ( "Belgium" ) );
290 cmbCountry->insertItem( tr ( "Belize" ) ); 291 cmbCountry->insertItem( tr ( "Belize" ) );
291 cmbCountry->insertItem( tr ( "Benin" ) ); 292 cmbCountry->insertItem( tr ( "Benin" ) );
292 cmbCountry->insertItem( tr ( "Bermuda" ) ); 293 cmbCountry->insertItem( tr ( "Bermuda" ) );
293 cmbCountry->insertItem( tr ( "Bhutan" ) ); 294 cmbCountry->insertItem( tr ( "Bhutan" ) );
294 cmbCountry->insertItem( tr ( "Bolivia" ) ); 295 cmbCountry->insertItem( tr ( "Bolivia" ) );
295 cmbCountry->insertItem( tr ( "Botswana" ) ); 296 cmbCountry->insertItem( tr ( "Botswana" ) );
296 cmbCountry->insertItem( tr ( "Bouvet Island" ) ); 297 cmbCountry->insertItem( tr ( "Bouvet Island" ) );
297 cmbCountry->insertItem( tr ( "Brazil" ) ); 298 cmbCountry->insertItem( tr ( "Brazil" ) );
298 cmbCountry->insertItem( tr ( "Brunei Darussalam" ) ); 299 cmbCountry->insertItem( tr ( "Brunei Darussalam" ) );
299 cmbCountry->insertItem( tr ( "Bulgaria" ) ); 300 cmbCountry->insertItem( tr ( "Bulgaria" ) );
300 cmbCountry->insertItem( tr ( "Burkina Faso" ) ); 301 cmbCountry->insertItem( tr ( "Burkina Faso" ) );
301 cmbCountry->insertItem( tr ( "Burundi" ) ); 302 cmbCountry->insertItem( tr ( "Burundi" ) );
302 cmbCountry->insertItem( tr ( "Cambodia" ) ); 303 cmbCountry->insertItem( tr ( "Cambodia" ) );
303 cmbCountry->insertItem( tr ( "Cameroon" ) ); 304 cmbCountry->insertItem( tr ( "Cameroon" ) );
304 cmbCountry->insertItem( tr ( "Canada" ) ); 305 cmbCountry->insertItem( tr ( "Canada" ) );
305 cmbCountry->insertItem( tr ( "Cape Verde" ) ); 306 cmbCountry->insertItem( tr ( "Cape Verde" ) );
306 cmbCountry->insertItem( tr ( "Cayman Islands" ) ); 307 cmbCountry->insertItem( tr ( "Cayman Islands" ) );
307 cmbCountry->insertItem( tr ( "Chad" ) ); 308 cmbCountry->insertItem( tr ( "Chad" ) );
308 cmbCountry->insertItem( tr ( "Chile" ) ); 309 cmbCountry->insertItem( tr ( "Chile" ) );
309 cmbCountry->insertItem( tr ( "China" ) ); 310 cmbCountry->insertItem( tr ( "China" ) );
310 cmbCountry->insertItem( tr ( "Christmas Island" ) ); 311 cmbCountry->insertItem( tr ( "Christmas Island" ) );
311 cmbCountry->insertItem( tr ( "Colombia" ) ); 312 cmbCountry->insertItem( tr ( "Colombia" ) );
312 cmbCountry->insertItem( tr ( "Comoros" ) ); 313 cmbCountry->insertItem( tr ( "Comoros" ) );
313 cmbCountry->insertItem( tr ( "Congo" ) ); 314 cmbCountry->insertItem( tr ( "Congo" ) );
314 cmbCountry->insertItem( tr ( "Cook Island" ) ); 315 cmbCountry->insertItem( tr ( "Cook Island" ) );
315 cmbCountry->insertItem( tr ( "Costa Rica" ) ); 316 cmbCountry->insertItem( tr ( "Costa Rica" ) );
316 cmbCountry->insertItem( tr ( "Cote d'Ivoire" ) ); 317 cmbCountry->insertItem( tr ( "Cote d'Ivoire" ) );
317 cmbCountry->insertItem( tr ( "Croatia" ) ); 318 cmbCountry->insertItem( tr ( "Croatia" ) );
318 cmbCountry->insertItem( tr ( "Cuba" ) ); 319 cmbCountry->insertItem( tr ( "Cuba" ) );
319 cmbCountry->insertItem( tr ( "Cyprus" ) ); 320 cmbCountry->insertItem( tr ( "Cyprus" ) );
320 cmbCountry->insertItem( tr ( "Czech Republic" ) ); 321 cmbCountry->insertItem( tr ( "Czech Republic" ) );
321 cmbCountry->insertItem( tr ( "Denmark" ) ); 322 cmbCountry->insertItem( tr ( "Denmark" ) );
322 cmbCountry->insertItem( tr ( "Djibouti" ) ); 323 cmbCountry->insertItem( tr ( "Djibouti" ) );
323 cmbCountry->insertItem( tr ( "Dominica" ) ); 324 cmbCountry->insertItem( tr ( "Dominica" ) );
324 cmbCountry->insertItem( tr ( "Dominican Republic" ) ); 325 cmbCountry->insertItem( tr ( "Dominican Republic" ) );
325 cmbCountry->insertItem( tr ( "East Timor" ) ); 326 cmbCountry->insertItem( tr ( "East Timor" ) );
326 cmbCountry->insertItem( tr ( "Ecuador" ) ); 327 cmbCountry->insertItem( tr ( "Ecuador" ) );
327 cmbCountry->insertItem( tr ( "Egypt" ) ); 328 cmbCountry->insertItem( tr ( "Egypt" ) );
328 cmbCountry->insertItem( tr ( "El Salvador" ) ); 329 cmbCountry->insertItem( tr ( "El Salvador" ) );
329 cmbCountry->insertItem( tr ( "Equatorial Guinea" ) ); 330 cmbCountry->insertItem( tr ( "Equatorial Guinea" ) );
330 cmbCountry->insertItem( tr ( "Eritrea" ) ); 331 cmbCountry->insertItem( tr ( "Eritrea" ) );
331 cmbCountry->insertItem( tr ( "Estonia" ) ); 332 cmbCountry->insertItem( tr ( "Estonia" ) );
332 cmbCountry->insertItem( tr ( "Ethiopia" ) ); 333 cmbCountry->insertItem( tr ( "Ethiopia" ) );
333 cmbCountry->insertItem( tr ( "Falkland Islands" ) ); 334 cmbCountry->insertItem( tr ( "Falkland Islands" ) );
334 cmbCountry->insertItem( tr ( "Faroe Islands" ) ); 335 cmbCountry->insertItem( tr ( "Faroe Islands" ) );
335 cmbCountry->insertItem( tr ( "Fiji" ) ); 336 cmbCountry->insertItem( tr ( "Fiji" ) );
336 cmbCountry->insertItem( tr ( "Finland" ) ); 337 cmbCountry->insertItem( tr ( "Finland" ) );
337 cmbCountry->insertItem( tr ( "France" ) ); 338 cmbCountry->insertItem( tr ( "France" ) );
338 cmbCountry->insertItem( tr ( "French Guiana" ) ); 339 cmbCountry->insertItem( tr ( "French Guiana" ) );
339 cmbCountry->insertItem( tr ( "French Polynesia" ) ); 340 cmbCountry->insertItem( tr ( "French Polynesia" ) );
340 cmbCountry->insertItem( tr ( "Gabon" ) ); 341 cmbCountry->insertItem( tr ( "Gabon" ) );
341 cmbCountry->insertItem( tr ( "Gambia" ) ); 342 cmbCountry->insertItem( tr ( "Gambia" ) );
342 cmbCountry->insertItem( tr ( "Georgia" ) ); 343 cmbCountry->insertItem( tr ( "Georgia" ) );
343 cmbCountry->insertItem( tr ( "Germany" ) ); 344 cmbCountry->insertItem( tr ( "Germany" ) );
344 cmbCountry->insertItem( tr ( "Ghana" ) ); 345 cmbCountry->insertItem( tr ( "Ghana" ) );
345 cmbCountry->insertItem( tr ( "Gibraltar" ) ); 346 cmbCountry->insertItem( tr ( "Gibraltar" ) );
346 cmbCountry->insertItem( tr ( "Greece" ) ); 347 cmbCountry->insertItem( tr ( "Greece" ) );
347 cmbCountry->insertItem( tr ( "Greenland" ) ); 348 cmbCountry->insertItem( tr ( "Greenland" ) );
348 cmbCountry->insertItem( tr ( "Grenada" ) ); 349 cmbCountry->insertItem( tr ( "Grenada" ) );
349 cmbCountry->insertItem( tr ( "Guadeloupe" ) ); 350 cmbCountry->insertItem( tr ( "Guadeloupe" ) );
350 cmbCountry->insertItem( tr ( "Guam" ) ); 351 cmbCountry->insertItem( tr ( "Guam" ) );
351 cmbCountry->insertItem( tr ( "Guatemala" ) ); 352 cmbCountry->insertItem( tr ( "Guatemala" ) );
352 cmbCountry->insertItem( tr ( "Guinea" ) ); 353 cmbCountry->insertItem( tr ( "Guinea" ) );
353 cmbCountry->insertItem( tr ( "Guinea-Bissau" ) ); 354 cmbCountry->insertItem( tr ( "Guinea-Bissau" ) );
354 cmbCountry->insertItem( tr ( "Guyana" ) ); 355 cmbCountry->insertItem( tr ( "Guyana" ) );
355 cmbCountry->insertItem( tr ( "Haiti" ) ); 356 cmbCountry->insertItem( tr ( "Haiti" ) );
356 cmbCountry->insertItem( tr ( "Holy See" ) ); 357 cmbCountry->insertItem( tr ( "Holy See" ) );
357 cmbCountry->insertItem( tr ( "Honduras" ) ); 358 cmbCountry->insertItem( tr ( "Honduras" ) );
358 cmbCountry->insertItem( tr ( "Hong Kong" ) ); 359 cmbCountry->insertItem( tr ( "Hong Kong" ) );
359 cmbCountry->insertItem( tr ( "Hungary" ) ); 360 cmbCountry->insertItem( tr ( "Hungary" ) );
360 cmbCountry->insertItem( tr ( "Iceland" ) ); 361 cmbCountry->insertItem( tr ( "Iceland" ) );
361 cmbCountry->insertItem( tr ( "India" ) ); 362 cmbCountry->insertItem( tr ( "India" ) );
362 cmbCountry->insertItem( tr ( "Indonesia" ) ); 363 cmbCountry->insertItem( tr ( "Indonesia" ) );
363 cmbCountry->insertItem( tr ( "Ireland" ) ); 364 cmbCountry->insertItem( tr ( "Ireland" ) );
364 cmbCountry->insertItem( tr ( "Israel" ) ); 365 cmbCountry->insertItem( tr ( "Israel" ) );
365 cmbCountry->insertItem( tr ( "Italy" ) ); 366 cmbCountry->insertItem( tr ( "Italy" ) );
366 cmbCountry->insertItem( tr ( "Jamaica" ) ); 367 cmbCountry->insertItem( tr ( "Jamaica" ) );
367 cmbCountry->insertItem( tr ( "Japan" ) ); 368 cmbCountry->insertItem( tr ( "Japan" ) );
368 cmbCountry->insertItem( tr ( "Jordan" ) ); 369 cmbCountry->insertItem( tr ( "Jordan" ) );
369 cmbCountry->insertItem( tr ( "Kazakhstan" ) ); 370 cmbCountry->insertItem( tr ( "Kazakhstan" ) );
370 cmbCountry->insertItem( tr ( "Kenya" ) ); 371 cmbCountry->insertItem( tr ( "Kenya" ) );
371 cmbCountry->insertItem( tr ( "Kiribati" ) ); 372 cmbCountry->insertItem( tr ( "Kiribati" ) );
372 cmbCountry->insertItem( tr ( "Korea" ) ); 373 cmbCountry->insertItem( tr ( "Korea" ) );
373 cmbCountry->insertItem( tr ( "Kuwait" ) ); 374 cmbCountry->insertItem( tr ( "Kuwait" ) );
374 cmbCountry->insertItem( tr ( "Kyrgyzstan" ) ); 375 cmbCountry->insertItem( tr ( "Kyrgyzstan" ) );
375 cmbCountry->insertItem( tr ( "Laos" ) ); 376 cmbCountry->insertItem( tr ( "Laos" ) );
376 cmbCountry->insertItem( tr ( "Latvia" ) ); 377 cmbCountry->insertItem( tr ( "Latvia" ) );
377 cmbCountry->insertItem( tr ( "Lebanon" ) ); 378 cmbCountry->insertItem( tr ( "Lebanon" ) );
378 cmbCountry->insertItem( tr ( "Lesotho" ) ); 379 cmbCountry->insertItem( tr ( "Lesotho" ) );
379 cmbCountry->insertItem( tr ( "Liberia" ) ); 380 cmbCountry->insertItem( tr ( "Liberia" ) );
380 cmbCountry->insertItem( tr ( "Liechtenstein" ) ); 381 cmbCountry->insertItem( tr ( "Liechtenstein" ) );
381 cmbCountry->insertItem( tr ( "Lithuania" ) ); 382 cmbCountry->insertItem( tr ( "Lithuania" ) );
382 cmbCountry->insertItem( tr ( "Luxembourg" ) ); 383 cmbCountry->insertItem( tr ( "Luxembourg" ) );
383 cmbCountry->insertItem( tr ( "Macau" ) ); 384 cmbCountry->insertItem( tr ( "Macau" ) );
384 cmbCountry->insertItem( tr ( "Macedonia" ) ); 385 cmbCountry->insertItem( tr ( "Macedonia" ) );
385 cmbCountry->insertItem( tr ( "Madagascar" ) ); 386 cmbCountry->insertItem( tr ( "Madagascar" ) );
386 cmbCountry->insertItem( tr ( "Malawi" ) ); 387 cmbCountry->insertItem( tr ( "Malawi" ) );
387 cmbCountry->insertItem( tr ( "Malaysia" ) ); 388 cmbCountry->insertItem( tr ( "Malaysia" ) );
388 cmbCountry->insertItem( tr ( "Maldives" ) ); 389 cmbCountry->insertItem( tr ( "Maldives" ) );
389 cmbCountry->insertItem( tr ( "Mali" ) ); 390 cmbCountry->insertItem( tr ( "Mali" ) );
390 cmbCountry->insertItem( tr ( "Malta" ) ); 391 cmbCountry->insertItem( tr ( "Malta" ) );
391 cmbCountry->insertItem( tr ( "Martinique" ) ); 392 cmbCountry->insertItem( tr ( "Martinique" ) );
392 cmbCountry->insertItem( tr ( "Mauritania" ) ); 393 cmbCountry->insertItem( tr ( "Mauritania" ) );
393 cmbCountry->insertItem( tr ( "Mauritius" ) ); 394 cmbCountry->insertItem( tr ( "Mauritius" ) );
394 cmbCountry->insertItem( tr ( "Mayotte" ) ); 395 cmbCountry->insertItem( tr ( "Mayotte" ) );
395 cmbCountry->insertItem( tr ( "Mexico" ) ); 396 cmbCountry->insertItem( tr ( "Mexico" ) );
396 cmbCountry->insertItem( tr ( "Micronesia" ) ); 397 cmbCountry->insertItem( tr ( "Micronesia" ) );
397 cmbCountry->insertItem( tr ( "Moldova" ) ); 398 cmbCountry->insertItem( tr ( "Moldova" ) );
398 cmbCountry->insertItem( tr ( "Monaco" ) ); 399 cmbCountry->insertItem( tr ( "Monaco" ) );
399 cmbCountry->insertItem( tr ( "Mongolia" ) ); 400 cmbCountry->insertItem( tr ( "Mongolia" ) );
400 cmbCountry->insertItem( tr ( "Montserrat" ) ); 401 cmbCountry->insertItem( tr ( "Montserrat" ) );
401 cmbCountry->insertItem( tr ( "Morocco" ) ); 402 cmbCountry->insertItem( tr ( "Morocco" ) );
402 cmbCountry->insertItem( tr ( "Mozambique" ) ); 403 cmbCountry->insertItem( tr ( "Mozambique" ) );
403 cmbCountry->insertItem( tr ( "Myanmar" ) ); 404 cmbCountry->insertItem( tr ( "Myanmar" ) );
404 cmbCountry->insertItem( tr ( "Namibia" ) ); 405 cmbCountry->insertItem( tr ( "Namibia" ) );
405 cmbCountry->insertItem( tr ( "Nauru" ) ); 406 cmbCountry->insertItem( tr ( "Nauru" ) );
406 cmbCountry->insertItem( tr ( "Nepal" ) ); 407 cmbCountry->insertItem( tr ( "Nepal" ) );
407 cmbCountry->insertItem( tr ( "Netherlands" ) ); 408 cmbCountry->insertItem( tr ( "Netherlands" ) );
408 cmbCountry->insertItem( tr ( "New Caledonia" ) ); 409 cmbCountry->insertItem( tr ( "New Caledonia" ) );
409 cmbCountry->insertItem( tr ( "New Zealand" ) ); 410 cmbCountry->insertItem( tr ( "New Zealand" ) );
410 cmbCountry->insertItem( tr ( "Nicaragua" ) ); 411 cmbCountry->insertItem( tr ( "Nicaragua" ) );
411 cmbCountry->insertItem( tr ( "Niger" ) ); 412 cmbCountry->insertItem( tr ( "Niger" ) );
412 cmbCountry->insertItem( tr ( "Nigeria" ) ); 413 cmbCountry->insertItem( tr ( "Nigeria" ) );
413 cmbCountry->insertItem( tr ( "Niue" ) ); 414 cmbCountry->insertItem( tr ( "Niue" ) );
414 cmbCountry->insertItem( tr ( "Norway" ) ); 415 cmbCountry->insertItem( tr ( "Norway" ) );
415 cmbCountry->insertItem( tr ( "Oman" ) ); 416 cmbCountry->insertItem( tr ( "Oman" ) );
416 cmbCountry->insertItem( tr ( "Pakistan" ) ); 417 cmbCountry->insertItem( tr ( "Pakistan" ) );
417 cmbCountry->insertItem( tr ( "Palau" ) ); 418 cmbCountry->insertItem( tr ( "Palau" ) );
418 cmbCountry->insertItem( tr ( "Palestinian Sovereign Areas" ) ); 419 cmbCountry->insertItem( tr ( "Palestinian Sovereign Areas" ) );
419 cmbCountry->insertItem( tr ( "Panama" ) ); 420 cmbCountry->insertItem( tr ( "Panama" ) );
420 cmbCountry->insertItem( tr ( "Papua New Guinea" ) ); 421 cmbCountry->insertItem( tr ( "Papua New Guinea" ) );
421 cmbCountry->insertItem( tr ( "Paraguay" ) ); 422 cmbCountry->insertItem( tr ( "Paraguay" ) );
422 cmbCountry->insertItem( tr ( "Peru" ) ); 423 cmbCountry->insertItem( tr ( "Peru" ) );
423 cmbCountry->insertItem( tr ( "Philippines" ) ); 424 cmbCountry->insertItem( tr ( "Philippines" ) );
424 cmbCountry->insertItem( tr ( "Pitcairn Islands" ) ); 425 cmbCountry->insertItem( tr ( "Pitcairn Islands" ) );
425 cmbCountry->insertItem( tr ( "Poland" ) ); 426 cmbCountry->insertItem( tr ( "Poland" ) );
426 cmbCountry->insertItem( tr ( "Portugal" ) ); 427 cmbCountry->insertItem( tr ( "Portugal" ) );
427 cmbCountry->insertItem( tr ( "Puerto Rico" ) ); 428 cmbCountry->insertItem( tr ( "Puerto Rico" ) );
428 cmbCountry->insertItem( tr ( "Qatar" ) ); 429 cmbCountry->insertItem( tr ( "Qatar" ) );
429 cmbCountry->insertItem( tr ( "Reunion" ) ); 430 cmbCountry->insertItem( tr ( "Reunion" ) );
430 cmbCountry->insertItem( tr ( "Romania" ) ); 431 cmbCountry->insertItem( tr ( "Romania" ) );
431 cmbCountry->insertItem( tr ( "Russia" ) ); 432 cmbCountry->insertItem( tr ( "Russia" ) );
432 cmbCountry->insertItem( tr ( "Rwanda" ) ); 433 cmbCountry->insertItem( tr ( "Rwanda" ) );
433 cmbCountry->insertItem( tr ( "Saint Lucia" ) ); 434 cmbCountry->insertItem( tr ( "Saint Lucia" ) );
434 cmbCountry->insertItem( tr ( "Samoa" ) ); 435 cmbCountry->insertItem( tr ( "Samoa" ) );
435 cmbCountry->insertItem( tr ( "San Marino" ) ); 436 cmbCountry->insertItem( tr ( "San Marino" ) );
436 cmbCountry->insertItem( tr ( "Saudi Arabia" ) ); 437 cmbCountry->insertItem( tr ( "Saudi Arabia" ) );
437 cmbCountry->insertItem( tr ( "Senegal" ) ); 438 cmbCountry->insertItem( tr ( "Senegal" ) );
438 cmbCountry->insertItem( tr ( "Seychelles" ) ); 439 cmbCountry->insertItem( tr ( "Seychelles" ) );
439 cmbCountry->insertItem( tr ( "Sierra Leone" ) ); 440 cmbCountry->insertItem( tr ( "Sierra Leone" ) );
440 cmbCountry->insertItem( tr ( "Singapore" ) ); 441 cmbCountry->insertItem( tr ( "Singapore" ) );
441 cmbCountry->insertItem( tr ( "Slovakia" ) ); 442 cmbCountry->insertItem( tr ( "Slovakia" ) );
442 cmbCountry->insertItem( tr ( "Slovenia" ) ); 443 cmbCountry->insertItem( tr ( "Slovenia" ) );
443 cmbCountry->insertItem( tr ( "Solomon Islands" ) ); 444 cmbCountry->insertItem( tr ( "Solomon Islands" ) );
444 cmbCountry->insertItem( tr ( "Somalia" ) ); 445 cmbCountry->insertItem( tr ( "Somalia" ) );
445 cmbCountry->insertItem( tr ( "South Africa" ) ); 446 cmbCountry->insertItem( tr ( "South Africa" ) );
446 cmbCountry->insertItem( tr ( "Spain" ) ); 447 cmbCountry->insertItem( tr ( "Spain" ) );
447 cmbCountry->insertItem( tr ( "Sri Lanka" ) ); 448 cmbCountry->insertItem( tr ( "Sri Lanka" ) );
448 cmbCountry->insertItem( tr ( "St. Helena" ) ); 449 cmbCountry->insertItem( tr ( "St. Helena" ) );
449 cmbCountry->insertItem( tr ( "Sudan" ) ); 450 cmbCountry->insertItem( tr ( "Sudan" ) );
450 cmbCountry->insertItem( tr ( "Suriname" ) ); 451 cmbCountry->insertItem( tr ( "Suriname" ) );
451 cmbCountry->insertItem( tr ( "Swaziland" ) ); 452 cmbCountry->insertItem( tr ( "Swaziland" ) );
452 cmbCountry->insertItem( tr ( "Sweden" ) ); 453 cmbCountry->insertItem( tr ( "Sweden" ) );
453 cmbCountry->insertItem( tr ( "Switzerland" ) ); 454 cmbCountry->insertItem( tr ( "Switzerland" ) );
454 cmbCountry->insertItem( tr ( "Taiwan" ) ); 455 cmbCountry->insertItem( tr ( "Taiwan" ) );
455 cmbCountry->insertItem( tr ( "Tajikistan" ) ); 456 cmbCountry->insertItem( tr ( "Tajikistan" ) );
456 cmbCountry->insertItem( tr ( "Tanzania" ) ); 457 cmbCountry->insertItem( tr ( "Tanzania" ) );
457 cmbCountry->insertItem( tr ( "Thailand" ) ); 458 cmbCountry->insertItem( tr ( "Thailand" ) );
458 cmbCountry->insertItem( tr ( "Togo" ) ); 459 cmbCountry->insertItem( tr ( "Togo" ) );
459 cmbCountry->insertItem( tr ( "Tokelau" ) ); 460 cmbCountry->insertItem( tr ( "Tokelau" ) );
460 cmbCountry->insertItem( tr ( "Tonga" ) ); 461 cmbCountry->insertItem( tr ( "Tonga" ) );
461 cmbCountry->insertItem( tr ( "Tunisia" ) ); 462 cmbCountry->insertItem( tr ( "Tunisia" ) );
462 cmbCountry->insertItem( tr ( "Turkey" ) ); 463 cmbCountry->insertItem( tr ( "Turkey" ) );
463 cmbCountry->insertItem( tr ( "Turkmenistan" ) ); 464 cmbCountry->insertItem( tr ( "Turkmenistan" ) );
464 cmbCountry->insertItem( tr ( "Tuvalu" ) ); 465 cmbCountry->insertItem( tr ( "Tuvalu" ) );
465 cmbCountry->insertItem( tr ( "Uganda" ) ); 466 cmbCountry->insertItem( tr ( "Uganda" ) );
466 cmbCountry->insertItem( tr ( "Ukraine" ) ); 467 cmbCountry->insertItem( tr ( "Ukraine" ) );
467 cmbCountry->insertItem( tr ( "Uruguay" ) ); 468 cmbCountry->insertItem( tr ( "Uruguay" ) );
468 cmbCountry->insertItem( tr ( "Uzbekistan" ) ); 469 cmbCountry->insertItem( tr ( "Uzbekistan" ) );
469 cmbCountry->insertItem( tr ( "Vanuatu" ) ); 470 cmbCountry->insertItem( tr ( "Vanuatu" ) );
470 cmbCountry->insertItem( tr ( "Venezuela" ) ); 471 cmbCountry->insertItem( tr ( "Venezuela" ) );
471 cmbCountry->insertItem( tr ( "Vietnam" ) ); 472 cmbCountry->insertItem( tr ( "Vietnam" ) );
472 cmbCountry->insertItem( tr ( "Virgin Islands" ) ); 473 cmbCountry->insertItem( tr ( "Virgin Islands" ) );
473 cmbCountry->insertItem( tr ( "Western Sahara" ) ); 474 cmbCountry->insertItem( tr ( "Western Sahara" ) );
474 cmbCountry->insertItem( tr ( "Yemen" ) ); 475 cmbCountry->insertItem( tr ( "Yemen" ) );
475 cmbCountry->insertItem( tr ( "Yugoslavia" ) ); 476 cmbCountry->insertItem( tr ( "Yugoslavia" ) );
476 cmbCountry->insertItem( tr ( "Zambia" ) ); 477 cmbCountry->insertItem( tr ( "Zambia" ) );
477 cmbCountry->insertItem( tr ( "Zimbabwe" ) ); 478 cmbCountry->insertItem( tr ( "Zimbabwe" ) );
478 if (cmbCountry->listBox()!=0) 479 if (cmbCountry->listBox()!=0)
479 cmbCountry->listBox()->sort(); 480 cmbCountry->listBox()->sort();
480 481
481 cmbCountry->setMaximumWidth( 135 ); 482 cmbCountry->setMaximumWidth( 135 );
482 483
483 gl->addMultiCellWidget( cmbCountry, 5, 5, 1, 2 ); 484 gl->addMultiCellWidget( cmbCountry, 5, 5, 1, 2 );
484 485
485 // Chooser 4 486 // Chooser 4
486 cmbChooserField4 = new QComboBox( false, container ); 487 cmbChooserField4 = new QComboBox( false, container );
487 cmbChooserField4->setMaximumWidth( 90 ); 488 cmbChooserField4->setMaximumWidth( 90 );
488 gl->addWidget( cmbChooserField4, 6, 0 ); 489 gl->addWidget( cmbChooserField4, 6, 0 );
489 // Textfield for chooser 2 490 // Textfield for chooser 2
490 // Now use WidgetStack to contain the textfield and the default-email combo! 491 // Now use WidgetStack to contain the textfield and the default-email combo!
491 m_widgetStack4 = new QWidgetStack( container ); 492 m_widgetStack4 = new QWidgetStack( container );
492 txtChooserField4 = new QLineEdit( m_widgetStack4 ); 493 txtChooserField4 = new QLineEdit( m_widgetStack4 );
493 m_widgetStack4 -> addWidget( txtChooserField4, TextField ); 494 m_widgetStack4 -> addWidget( txtChooserField4, TextField );
494 gl->addMultiCellWidget( m_widgetStack4, 6, 6, 1, 2 ); 495 gl->addMultiCellWidget( m_widgetStack4, 6, 6, 1, 2 );
495 m_widgetStack4 -> raiseWidget( TextField ); 496 m_widgetStack4 -> raiseWidget( TextField );
496 497
497 QSpacerItem *space = new QSpacerItem(1,1, 498 QSpacerItem *space = new QSpacerItem(1,1,
498 QSizePolicy::Maximum, 499 QSizePolicy::Maximum,
499 QSizePolicy::MinimumExpanding ); 500 QSizePolicy::MinimumExpanding );
500 gl->addItem( space, 7, 0 ); 501 gl->addItem( space, 7, 0 );
501 502
502 tabMain->addTab( tabViewport, "home", tr( "Address" ) ); 503 tabMain->addTab( tabViewport, "home", tr( "Address" ) );
503 504
504 tabViewport = new QWidget ( tabMain ); 505 tabViewport = new QWidget ( tabMain );
505 506
506 vb = new QVBoxLayout( tabViewport ); 507 vb = new QVBoxLayout( tabViewport );
507 508
508 svDetails = new QScrollView( tabViewport ); 509 svDetails = new QScrollView( tabViewport );
509 vb->addWidget( svDetails, 0, 0 ); 510 vb->addWidget( svDetails, 0, 0 );
510 svDetails->setResizePolicy( QScrollView::AutoOneFit ); 511 svDetails->setResizePolicy( QScrollView::AutoOneFit );
511 svDetails->setFrameStyle( QFrame::NoFrame ); 512 svDetails->setFrameStyle( QFrame::NoFrame );
512 513
513 container = new QWidget( svDetails->viewport() ); 514 container = new QWidget( svDetails->viewport() );
514 svDetails->addChild( container ); 515 svDetails->addChild( container );
515 516
516 gl = new QGridLayout( container, 1, 2, 2, 4 ); 517 gl = new QGridLayout( container, 1, 2, 2, 4 );
517 518
518 int counter = 0; 519 int counter = 0;
519 520
520 // Birthday 521 // Birthday
521 QHBox* hBox = new QHBox( container ); 522 QHBox* hBox = new QHBox( container );
522 l = new QLabel( tr("Birthday"), container ); 523 l = new QLabel( tr("Birthday"), container );
523 gl->addWidget( l, counter, 0 ); 524 gl->addWidget( l, counter, 0 );
524 525
525 QPopupMenu* m1 = new QPopupMenu( container ); 526 QPopupMenu* m1 = new QPopupMenu( container );
526 birthdayPicker = new DateBookMonth( m1, 0, true ); 527 birthdayPicker = new DateBookMonth( m1, 0, true );
527 m1->insertItem( birthdayPicker ); 528 m1->insertItem( birthdayPicker );
528 529
529 birthdayButton= new QToolButton( hBox, "buttonStart" ); 530 birthdayButton= new QToolButton( hBox, "buttonStart" );
530 birthdayButton->setPopup( m1 ); 531 birthdayButton->setPopup( m1 );
531 birthdayButton->setPopupDelay(0); 532 birthdayButton->setPopupDelay(0);
532 533
533 QPushButton* deleteButton = new QPushButton( QIconSet( Resource::loadPixmap( "trash" ) ), 534 QPushButton* deleteButton = new QPushButton( Opie::Core::OResource::loadPixmap( "trash", Opie::Core::OResource::SmallIcon ),
534 tr( "Delete" ), 535 tr( "Delete" ),
535 hBox, 0 ); 536 hBox, 0 );
536 537
537 gl->addWidget( hBox, counter , 1 ); 538 gl->addWidget( hBox, counter , 1 );
538 539
539 connect( birthdayPicker, SIGNAL( dateClicked(int,int,int) ), 540 connect( birthdayPicker, SIGNAL( dateClicked(int,int,int) ),
540 this, SLOT( slotBirthdayDateChanged(int,int,int) ) ); 541 this, SLOT( slotBirthdayDateChanged(int,int,int) ) );
541 connect( deleteButton, SIGNAL( clicked() ), this, SLOT( slotRemoveBirthday() ) ); 542 connect( deleteButton, SIGNAL( clicked() ), this, SLOT( slotRemoveBirthday() ) );
542 543
543 ++counter; 544 ++counter;
544 545
545 // Anniversary 546 // Anniversary
546 hBox = new QHBox( container ); 547 hBox = new QHBox( container );
547 l = new QLabel( tr("Anniversary"), container ); 548 l = new QLabel( tr("Anniversary"), container );
548 gl->addWidget( l, counter, 0 ); 549 gl->addWidget( l, counter, 0 );
549 550
550 m1 = new QPopupMenu( container ); 551 m1 = new QPopupMenu( container );
551 anniversaryPicker = new DateBookMonth( m1, 0, true ); 552 anniversaryPicker = new DateBookMonth( m1, 0, true );
552 m1->insertItem( anniversaryPicker ); 553 m1->insertItem( anniversaryPicker );
553 554
554 anniversaryButton= new QToolButton( hBox, "buttonStart" ); 555 anniversaryButton= new QToolButton( hBox, "buttonStart" );
555 anniversaryButton->setPopup( m1 ); 556 anniversaryButton->setPopup( m1 );
556 anniversaryButton->setPopupDelay(0); 557 anniversaryButton->setPopupDelay(0);
557 558
558 deleteButton = new QPushButton( QIconSet( Resource::loadPixmap( "trash" ) ), 559 deleteButton = new QPushButton( Opie::Core::OResource::loadPixmap( "trash", Opie::Core::OResource::SmallIcon ),
559 tr( "Delete" ), 560 tr( "Delete" ),
560 hBox, 0 ); 561 hBox, 0 );
561 gl->addWidget( hBox, counter , 1 ); 562 gl->addWidget( hBox, counter , 1 );
562 563
563 connect( anniversaryPicker, SIGNAL( dateClicked(int,int,int) ), 564 connect( anniversaryPicker, SIGNAL( dateClicked(int,int,int) ),
564 this, SLOT( slotAnniversaryDateChanged(int,int,int) ) ); 565 this, SLOT( slotAnniversaryDateChanged(int,int,int) ) );
565 connect( deleteButton, SIGNAL( clicked() ), this, SLOT( slotRemoveAnniversary() ) ); 566 connect( deleteButton, SIGNAL( clicked() ), this, SLOT( slotRemoveAnniversary() ) );
566 567
567 ++counter; 568 ++counter;
568 569
569 // Gender 570 // Gender
570 l = new QLabel( tr("Gender"), container ); 571 l = new QLabel( tr("Gender"), container );
571 gl->addWidget( l, counter, 0 ); 572 gl->addWidget( l, counter, 0 );
572 cmbGender = new QComboBox( container ); 573 cmbGender = new QComboBox( container );
573 cmbGender->insertItem( "", 0 ); 574 cmbGender->insertItem( "", 0 );
574 cmbGender->insertItem( tr("Male"), 1); 575 cmbGender->insertItem( tr("Male"), 1);
575 cmbGender->insertItem( tr("Female"), 2); 576 cmbGender->insertItem( tr("Female"), 2);
576 gl->addWidget( cmbGender, counter, 1 ); 577 gl->addWidget( cmbGender, counter, 1 );
577 578
578 ++counter; 579 ++counter;
579 580
580 // Create Labels and lineedit fields for every dynamic entry 581 // Create Labels and lineedit fields for every dynamic entry
581 QStringList::ConstIterator it = slDynamicEntries.begin(); 582 QStringList::ConstIterator it = slDynamicEntries.begin();
582 QMap<QString, int> mapStrToID = Opie::OPimContactFields::untrFieldsToId(); 583 QMap<QString, int> mapStrToID = Opie::OPimContactFields::untrFieldsToId();
583 QMap<int, QString> mapIdToStr = Opie::OPimContactFields::idToTrFields(); 584 QMap<int, QString> mapIdToStr = Opie::OPimContactFields::idToTrFields();
584 for (i = counter; it != slDynamicEntries.end(); i++, ++it ) { 585 for (i = counter; it != slDynamicEntries.end(); i++, ++it ) {
585 586
586 if (((*it) == "Anniversary") || 587 if (((*it) == "Anniversary") ||
587 ((*it) == "Birthday")|| ((*it) == "Gender")) continue; 588 ((*it) == "Birthday")|| ((*it) == "Gender")) continue;
588 589
589 l = new QLabel( mapIdToStr[mapStrToID[*it]], container ); 590 l = new QLabel( mapIdToStr[mapStrToID[*it]], container );
590 listName.append( l ); 591 listName.append( l );
591 gl->addWidget( l, i, 0 ); 592 gl->addWidget( l, i, 0 );
592 QLineEdit *e = new QLineEdit( container ); 593 QLineEdit *e = new QLineEdit( container );
593 listValue.append( e ); 594 listValue.append( e );
594 gl->addWidget( e, i, 1); 595 gl->addWidget( e, i, 1);
595 } 596 }
596 // Fill labels with names.. 597 // Fill labels with names..
597 //loadFields(); 598 //loadFields();
598 599
599 600
600 tabMain->addTab( tabViewport, "UtilsIcon", tr( "Details" ) ); 601 tabMain->addTab( tabViewport, "UtilsIcon", tr( "Details" ) );
601 602
602 dlgNote = new QDialog( this, "Note Dialog", true ); 603 dlgNote = new QDialog( this, "Note Dialog", true );
603 dlgNote->setCaption( tr("Enter Note") ); 604 dlgNote->setCaption( tr("Enter Note") );
604 QVBoxLayout *vbNote = new QVBoxLayout( dlgNote ); 605 QVBoxLayout *vbNote = new QVBoxLayout( dlgNote );
605 txtNote = new QMultiLineEdit( dlgNote ); 606 txtNote = new QMultiLineEdit( dlgNote );
606 vbNote->addWidget( txtNote ); 607 vbNote->addWidget( txtNote );
607 connect( btnNote, SIGNAL(clicked()), this, SLOT(slotNote()) ); 608 connect( btnNote, SIGNAL(clicked()), this, SLOT(slotNote()) );
608 609
609 dlgName = new QDialog( this, "Name Dialog", true ); 610 dlgName = new QDialog( this, "Name Dialog", true );
610 dlgName->setCaption( tr("Edit Name") ); 611 dlgName->setCaption( tr("Edit Name") );
611 gl = new QGridLayout( dlgName, 5, 2, 2, 3 ); 612 gl = new QGridLayout( dlgName, 5, 2, 2, 3 );
612 613
613 l = new QLabel( tr("First Name"), dlgName ); 614 l = new QLabel( tr("First Name"), dlgName );
614 gl->addWidget( l, 0, 0 ); 615 gl->addWidget( l, 0, 0 );
615 txtFirstName = new ABOOK::NameLineEdit( dlgName ); 616 txtFirstName = new ABOOK::NameLineEdit( dlgName );
616 gl->addWidget( txtFirstName, 0, 1 ); 617 gl->addWidget( txtFirstName, 0, 1 );
617 618
618 l = new QLabel( tr("Middle Name"), dlgName ); 619 l = new QLabel( tr("Middle Name"), dlgName );
619 gl->addWidget( l, 1, 0 ); 620 gl->addWidget( l, 1, 0 );
620 txtMiddleName = new ABOOK::NameLineEdit( dlgName ); 621 txtMiddleName = new ABOOK::NameLineEdit( dlgName );
621 gl->addWidget( txtMiddleName, 1, 1 ); 622 gl->addWidget( txtMiddleName, 1, 1 );
622 623
623 l = new QLabel( tr("Last Name"), dlgName ); 624 l = new QLabel( tr("Last Name"), dlgName );
624 gl->addWidget( l, 2, 0 ); 625 gl->addWidget( l, 2, 0 );
625 txtLastName = new ABOOK::NameLineEdit( dlgName ); 626 txtLastName = new ABOOK::NameLineEdit( dlgName );
626 gl->addWidget( txtLastName, 2, 1 ); 627 gl->addWidget( txtLastName, 2, 1 );
627 628
628 // l = new QLabel( tr("Suffix"), dlgName ); 629 // l = new QLabel( tr("Suffix"), dlgName );
629 // gl->addWidget( l, 3, 0 ); 630 // gl->addWidget( l, 3, 0 );
630 // txtSuffix = new QLineEdit( dlgName ); 631 // txtSuffix = new QLineEdit( dlgName );
631 // gl->addWidget( txtSuffix, 3, 1 ); 632 // gl->addWidget( txtSuffix, 3, 1 );
632 space = new QSpacerItem(1,1, 633 space = new QSpacerItem(1,1,
633 QSizePolicy::Maximum, 634 QSizePolicy::Maximum,
634 QSizePolicy::MinimumExpanding ); 635 QSizePolicy::MinimumExpanding );
635 gl->addItem( space, 4, 0 ); 636 gl->addItem( space, 4, 0 );
636 637
637 cmbChooserField1->insertStringList( trlChooserNames ); 638 cmbChooserField1->insertStringList( trlChooserNames );
638 cmbChooserField2->insertStringList( trlChooserNames ); 639 cmbChooserField2->insertStringList( trlChooserNames );
639 cmbChooserField3->insertStringList( trlChooserNames ); 640 cmbChooserField3->insertStringList( trlChooserNames );
640 cmbChooserField4->insertStringList( trlChooserNames ); 641 cmbChooserField4->insertStringList( trlChooserNames );
641 642
642 cmbChooserField1->setCurrentItem( 0 ); 643 cmbChooserField1->setCurrentItem( 0 );
643 cmbChooserField2->setCurrentItem( 1 ); 644 cmbChooserField2->setCurrentItem( 1 );
644 cmbChooserField3->setCurrentItem( 2 ); 645 cmbChooserField3->setCurrentItem( 2 );
645 646
646 connect( btnFullName, SIGNAL(clicked()), this, SLOT(slotName()) ); 647 connect( btnFullName, SIGNAL(clicked()), this, SLOT(slotName()) );
647 648
648 connect( txtFullName, SIGNAL(textChanged(const QString&)), 649 connect( txtFullName, SIGNAL(textChanged(const QString&)),
649 this, SLOT(slotFullNameChange(const QString&)) ); 650 this, SLOT(slotFullNameChange(const QString&)) );
650 connect( txtSuffix, SIGNAL(textChanged(const QString&)), 651 connect( txtSuffix, SIGNAL(textChanged(const QString&)),
651 this, SLOT(slotSuffixChange(const QString&)) ); 652 this, SLOT(slotSuffixChange(const QString&)) );
652 connect( txtOrganization, SIGNAL(textChanged(const QString&)), 653 connect( txtOrganization, SIGNAL(textChanged(const QString&)),
653 this, SLOT(slotOrganizationChange(const QString&)) ); 654 this, SLOT(slotOrganizationChange(const QString&)) );
654 connect( txtChooserField1, SIGNAL(textChanged(const QString&)), 655 connect( txtChooserField1, SIGNAL(textChanged(const QString&)),
655 this, SLOT(slotChooser1Change(const QString&)) ); 656 this, SLOT(slotChooser1Change(const QString&)) );
656 connect( txtChooserField2, SIGNAL(textChanged(const QString&)), 657 connect( txtChooserField2, SIGNAL(textChanged(const QString&)),
657 this, SLOT(slotChooser2Change(const QString&)) ); 658 this, SLOT(slotChooser2Change(const QString&)) );
658 connect( txtChooserField3, SIGNAL(textChanged(const QString&)), 659 connect( txtChooserField3, SIGNAL(textChanged(const QString&)),
659 this, SLOT(slotChooser3Change(const QString&)) ); 660 this, SLOT(slotChooser3Change(const QString&)) );
660 connect( txtChooserField4, SIGNAL(textChanged(const QString&)), 661 connect( txtChooserField4, SIGNAL(textChanged(const QString&)),
661 this, SLOT(slotChooser4Change(const QString&)) ); 662 this, SLOT(slotChooser4Change(const QString&)) );
662 connect( txtAddress, SIGNAL(textChanged(const QString&)), 663 connect( txtAddress, SIGNAL(textChanged(const QString&)),
663 this, SLOT(slotAddressChange(const QString&)) ); 664 this, SLOT(slotAddressChange(const QString&)) );
664 connect( txtCity, SIGNAL(textChanged(const QString&)), 665 connect( txtCity, SIGNAL(textChanged(const QString&)),
665 this, SLOT(slotCityChange(const QString&)) ); 666 this, SLOT(slotCityChange(const QString&)) );
666 connect( txtState, SIGNAL(textChanged(const QString&)), 667 connect( txtState, SIGNAL(textChanged(const QString&)),
667 this, SLOT(slotStateChange(const QString&)) ); 668 this, SLOT(slotStateChange(const QString&)) );
668 connect( txtZip, SIGNAL(textChanged(const QString&)), 669 connect( txtZip, SIGNAL(textChanged(const QString&)),
669 this, SLOT(slotZipChange(const QString&)) ); 670 this, SLOT(slotZipChange(const QString&)) );
670 connect( cmbCountry, SIGNAL(textChanged(const QString&)), 671 connect( cmbCountry, SIGNAL(textChanged(const QString&)),
671 this, SLOT(slotCountryChange(const QString&)) ); 672 this, SLOT(slotCountryChange(const QString&)) );
672 connect( cmbCountry, SIGNAL(activated(const QString&)), 673 connect( cmbCountry, SIGNAL(activated(const QString&)),
673 this, SLOT(slotCountryChange(const QString&)) ); 674 this, SLOT(slotCountryChange(const QString&)) );
674 connect( cmbChooserField1, SIGNAL(activated(int)), 675 connect( cmbChooserField1, SIGNAL(activated(int)),
675 this, SLOT(slotCmbChooser1Change(int)) ); 676 this, SLOT(slotCmbChooser1Change(int)) );
676 connect( cmbChooserField2, SIGNAL(activated(int)), 677 connect( cmbChooserField2, SIGNAL(activated(int)),
677 this, SLOT(slotCmbChooser2Change(int)) ); 678 this, SLOT(slotCmbChooser2Change(int)) );
678 connect( cmbChooserField3, SIGNAL(activated(int)), 679 connect( cmbChooserField3, SIGNAL(activated(int)),
679 this, SLOT(slotCmbChooser3Change(int)) ); 680 this, SLOT(slotCmbChooser3Change(int)) );
680 connect( cmbChooserField4, SIGNAL(activated(int)), 681 connect( cmbChooserField4, SIGNAL(activated(int)),
681 this, SLOT(slotCmbChooser4Change(int)) ); 682 this, SLOT(slotCmbChooser4Change(int)) );
682 connect( cmbAddress, SIGNAL(activated(int)), 683 connect( cmbAddress, SIGNAL(activated(int)),
683 this, SLOT(slotAddressTypeChange(int)) ); 684 this, SLOT(slotAddressTypeChange(int)) );
684 685
685 new QPEDialogListener(this); 686 new QPEDialogListener(this);
686 687
687 setPersonalView ( m_personalView ); 688 setPersonalView ( m_personalView );
688 689
689 odebug << "init() END" << oendl; 690 odebug << "init() END" << oendl;
690} 691}
691 692
692void ContactEditor::defaultEmailChanged(int i){ 693void ContactEditor::defaultEmailChanged(int i){
693 odebug << "defaultEmailChanged" << oendl; 694 odebug << "defaultEmailChanged" << oendl;
694 695
695 // was sollte das ? (se) 696 // was sollte das ? (se)
696 // int index = cmbChooserField1->currentItem(); 697 // int index = cmbChooserField1->currentItem();
697 // slChooserValues[index] = cmbDefaultEmail->text(i); 698 // slChooserValues[index] = cmbDefaultEmail->text(i);
698 699
699 defaultEmail = cmbDefaultEmail->text(i); 700 defaultEmail = cmbDefaultEmail->text(i);
700 odebug << "Changed to: " << defaultEmail << oendl; 701 odebug << "Changed to: " << defaultEmail << oendl;
701 702
702} 703}
703 704
704void ContactEditor::populateDefaultEmailCmb(){ 705void ContactEditor::populateDefaultEmailCmb(){
705 706
706 // if the default-email combo was not selected and therfore not created 707 // if the default-email combo was not selected and therfore not created
707 // we get a lot of trouble.. Therfore create an invisible one.. 708 // we get a lot of trouble.. Therfore create an invisible one..
708 if ( !cmbDefaultEmail ){ 709 if ( !cmbDefaultEmail ){
709 cmbDefaultEmail = new QComboBox(this); 710 cmbDefaultEmail = new QComboBox(this);
710 cmbDefaultEmail -> hide(); 711 cmbDefaultEmail -> hide();
711 } 712 }
712 cmbDefaultEmail->clear(); 713 cmbDefaultEmail->clear();
713 cmbDefaultEmail->insertStringList( emails ); 714 cmbDefaultEmail->insertStringList( emails );
714 // cmbDefaultEmail->show(); 715 // cmbDefaultEmail->show();
715 716
716 // Select default email in combo.. 717 // Select default email in combo..
717 bool found = false; 718 bool found = false;
718 for ( int i = 0; i < cmbDefaultEmail->count(); i++){ 719 for ( int i = 0; i < cmbDefaultEmail->count(); i++){
719 odebug << " populateDefaultEmailCmb text >" << cmbDefaultEmail->text( i ) 720 odebug << " populateDefaultEmailCmb text >" << cmbDefaultEmail->text( i )
720 << "< defaultEmail >" << defaultEmail << "<" << oendl; 721 << "< defaultEmail >" << defaultEmail << "<" << oendl;
721 722
722 if ( cmbDefaultEmail->text( i ).stripWhiteSpace() == defaultEmail.stripWhiteSpace() ){ 723 if ( cmbDefaultEmail->text( i ).stripWhiteSpace() == defaultEmail.stripWhiteSpace() ){
723 cmbDefaultEmail->setCurrentItem( i ); 724 cmbDefaultEmail->setCurrentItem( i );
724 odebug << "set" << oendl; 725 odebug << "set" << oendl;
725 found = true; 726 found = true;
726 } 727 }
727 } 728 }
728 729
729 // If the current default email is not found in the list, we choose the 730 // If the current default email is not found in the list, we choose the
730 // first one.. 731 // first one..
731 if ( !found ) 732 if ( !found )
732 defaultEmail = cmbDefaultEmail->text(0); 733 defaultEmail = cmbDefaultEmail->text(0);
733} 734}
734 735
735// Called when any combobox was changed. 736// Called when any combobox was changed.
736// "true" returned if the change was chandled by this function, else it should 737// "true" returned if the change was chandled by this function, else it should
737// be handled by something else.. 738// be handled by something else..
738bool ContactEditor::cmbChooserChange( int index, QWidgetStack* inputStack, int widgetPos ) { 739bool ContactEditor::cmbChooserChange( int index, QWidgetStack* inputStack, int widgetPos ) {
739 QString type = slChooserNames[index]; 740 QString type = slChooserNames[index];
740 odebug << "ContactEditor::cmbChooserChange -> Type: " << type 741 odebug << "ContactEditor::cmbChooserChange -> Type: " << type
741 << ", WidgetPos: " << widgetPos << oendl; 742 << ", WidgetPos: " << widgetPos << oendl;
742 743
743 if ( !initializing ) 744 if ( !initializing )
744 contactfields.setFieldOrder( widgetPos-1, index ); 745 contactfields.setFieldOrder( widgetPos-1, index );
745 746
746 // Create and connect combobox for selecting the default email 747 // Create and connect combobox for selecting the default email
747 if ( type == "Default Email"){ 748 if ( type == "Default Email"){
748 odebug << "Choosing default-email (defaultEmailChooserPosition= " 749 odebug << "Choosing default-email (defaultEmailChooserPosition= "
749 << defaultEmailChooserPosition << ") " << oendl; 750 << defaultEmailChooserPosition << ") " << oendl;
750 751
751 // More than one default-email chooser is not allowed ! 752 // More than one default-email chooser is not allowed !
752 if ( ( defaultEmailChooserPosition != -1 ) && 753 if ( ( defaultEmailChooserPosition != -1 ) &&
753 defaultEmailChooserPosition != widgetPos && !initializing){ 754 defaultEmailChooserPosition != widgetPos && !initializing){
754 chooserError( widgetPos ); 755 chooserError( widgetPos );
755 return true; 756 return true;
756 } 757 }
757 758
758 QComboBox* cmbo = ( QComboBox* ) inputStack -> widget( Combo ); 759 QComboBox* cmbo = ( QComboBox* ) inputStack -> widget( Combo );
759 if ( cmbo ){ 760 if ( cmbo ){
760 inputStack->raiseWidget( TextField ); 761 inputStack->raiseWidget( TextField );
761 inputStack -> removeWidget( cmbo ); 762 inputStack -> removeWidget( cmbo );
762 delete cmbo; 763 delete cmbo;
763 } 764 }
764 cmbo = new QComboBox( inputStack ); 765 cmbo = new QComboBox( inputStack );
765 cmbo -> insertStringList( emails ); 766 cmbo -> insertStringList( emails );
766 767
767 inputStack -> addWidget( cmbo, Combo ); 768 inputStack -> addWidget( cmbo, Combo );
768 inputStack -> raiseWidget( Combo ); 769 inputStack -> raiseWidget( Combo );
769 770
770 defaultEmailChooserPosition = widgetPos; 771 defaultEmailChooserPosition = widgetPos;
771 cmbDefaultEmail = cmbo; 772 cmbDefaultEmail = cmbo;
772 773
773 connect( cmbo,SIGNAL( activated(int) ), 774 connect( cmbo,SIGNAL( activated(int) ),
774 SLOT( defaultEmailChanged(int) ) ); 775 SLOT( defaultEmailChanged(int) ) );
775 776
776 // Set current default email 777 // Set current default email
777 populateDefaultEmailCmb(); 778 populateDefaultEmailCmb();
778 779
779 780
780 } else { 781 } else {
781 // Something else was selected: Hide combo.. 782 // Something else was selected: Hide combo..
782 odebug << " Hiding default-email combo" << oendl; 783 odebug << " Hiding default-email combo" << oendl;
783 if ( defaultEmailChooserPosition == widgetPos ){ 784 if ( defaultEmailChooserPosition == widgetPos ){
784 defaultEmailChooserPosition = -1; 785 defaultEmailChooserPosition = -1;
785 } 786 }
786 QComboBox* cmbo = ( QComboBox* ) inputStack -> widget( Combo ); 787 QComboBox* cmbo = ( QComboBox* ) inputStack -> widget( Combo );
787 if ( cmbo ){ 788 if ( cmbo ){
788 inputStack->raiseWidget( TextField ); 789 inputStack->raiseWidget( TextField );
789 inputStack -> removeWidget( cmbo ); 790 inputStack -> removeWidget( cmbo );
790 cmbDefaultEmail = 0l; 791 cmbDefaultEmail = 0l;
791 delete cmbo; 792 delete cmbo;
792 } 793 }
793 794
794 // Caller should initialize the responsible textfield, therefore 795 // Caller should initialize the responsible textfield, therefore
795 // "false" is returned 796 // "false" is returned
796 return false; 797 return false;
797 } 798 }
798 799
799 // Everything is worked off .. 800 // Everything is worked off ..
800 return true; 801 return true;
801 802
802} 803}
803 804
804// Currently accessed when we select default-email more than once ! 805// Currently accessed when we select default-email more than once !
805void ContactEditor::chooserError( int index ) 806void ContactEditor::chooserError( int index )
806{ 807{
807 owarn << "ContactEditor::chooserError( " << index << " )" << oendl; 808 owarn << "ContactEditor::chooserError( " << index << " )" << oendl;
808 QMessageBox::warning( this, "Chooser Error", 809 QMessageBox::warning( this, "Chooser Error",
809 "Multiple selection of this\n" 810 "Multiple selection of this\n"
810 "Item is not allowed !\n\n" 811 "Item is not allowed !\n\n"
811 "First deselect the previous one !", 812 "First deselect the previous one !",
812 "&OK", 0, 0, 813 "&OK", 0, 0,
813 0, 0 ); 814 0, 0 );
814 815