summaryrefslogtreecommitdiffabout
path: root/kaddressbook
Unidiff
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/emaileditwidget.cpp2
-rw-r--r--kaddressbook/phoneeditwidget.cpp37
2 files changed, 32 insertions, 7 deletions
diff --git a/kaddressbook/emaileditwidget.cpp b/kaddressbook/emaileditwidget.cpp
index 0e01b02..e72face 100644
--- a/kaddressbook/emaileditwidget.cpp
+++ b/kaddressbook/emaileditwidget.cpp
@@ -168,84 +168,86 @@ EmailEditDialog::EmailEditDialog( const QStringList &list, QWidget *parent,
168 168
169 mRemoveButton = new QPushButton( i18n( "Remove" ), page ); 169 mRemoveButton = new QPushButton( i18n( "Remove" ), page );
170 connect( mRemoveButton, SIGNAL( clicked() ), SLOT( remove() ) ); 170 connect( mRemoveButton, SIGNAL( clicked() ), SLOT( remove() ) );
171 topLayout->addWidget( mRemoveButton, 2, 2 ); 171 topLayout->addWidget( mRemoveButton, 2, 2 );
172 172
173 mStandardButton = new QPushButton( i18n( "Set Standard" ), page ); 173 mStandardButton = new QPushButton( i18n( "Set Standard" ), page );
174 connect( mStandardButton, SIGNAL( clicked() ), SLOT( standard() ) ); 174 connect( mStandardButton, SIGNAL( clicked() ), SLOT( standard() ) );
175 topLayout->addWidget( mStandardButton, 3, 2 ); 175 topLayout->addWidget( mStandardButton, 3, 2 );
176 176
177 topLayout->activate(); 177 topLayout->activate();
178 QStringList items = list; 178 QStringList items = list;
179 179
180qDebug("EmailEditDialog::EmailEditDialog has to be changed (lowPrio)"); 180qDebug("EmailEditDialog::EmailEditDialog has to be changed (lowPrio)");
181//US must be fixed !!! 181//US must be fixed !!!
182/* 182/*
183 if ( items.remove( "" ) > 0 ) 183 if ( items.remove( "" ) > 0 )
184 mChanged = true; 184 mChanged = true;
185 else 185 else
186 mChanged = false; 186 mChanged = false;
187*/ 187*/
188 188
189 mEmailListBox->insertStringList( items ); 189 mEmailListBox->insertStringList( items );
190 // set default state 190 // set default state
191 selectionChanged( -1 ); 191 selectionChanged( -1 );
192 mEmailEdit->setFocus();
192 193
193#ifndef KAB_EMBEDDED 194#ifndef KAB_EMBEDDED
194 KAcceleratorManager::manage( this ); 195 KAcceleratorManager::manage( this );
195#else //KAB_EMBEDDED 196#else //KAB_EMBEDDED
196//US qDebug("EmailEditDialog::EmailEditDialog has to be changed"); 197//US qDebug("EmailEditDialog::EmailEditDialog has to be changed");
197#endif //KAB_EMBEDDED 198#endif //KAB_EMBEDDED
198 199
199} 200}
200 201
201EmailEditDialog::~EmailEditDialog() 202EmailEditDialog::~EmailEditDialog()
202{ 203{
203} 204}
204 205
205QStringList EmailEditDialog::emails() const 206QStringList EmailEditDialog::emails() const
206{ 207{
207 QStringList emails; 208 QStringList emails;
208 209
209 for ( uint i = 0; i < mEmailListBox->count(); ++i ) 210 for ( uint i = 0; i < mEmailListBox->count(); ++i )
210 emails << mEmailListBox->text( i ); 211 emails << mEmailListBox->text( i );
211 212
212 return emails; 213 return emails;
213} 214}
214 215
215void EmailEditDialog::add() 216void EmailEditDialog::add()
216{ 217{
217 mEmailListBox->insertItem( mEmailEdit->text() ); 218 mEmailListBox->insertItem( mEmailEdit->text() );
218 219
219 mEmailEdit->clear(); 220 mEmailEdit->clear();
220 mEmailEdit->setFocus(); 221 mEmailEdit->setFocus();
221 222
222 mChanged = true; 223 mChanged = true;
223} 224}
224 225
225void EmailEditDialog::edit() 226void EmailEditDialog::edit()
226{ 227{
227 mEmailEdit->setText( mEmailListBox->currentText() ); 228 mEmailEdit->setText( mEmailListBox->currentText() );
229 mEmailListBox->removeItem( mEmailListBox->currentItem() );
228 mEmailEdit->setFocus(); 230 mEmailEdit->setFocus();
229} 231}
230 232
231void EmailEditDialog::remove() 233void EmailEditDialog::remove()
232{ 234{
233 QString address = mEmailListBox->currentText(); 235 QString address = mEmailListBox->currentText();
234 236
235 QString text = i18n( "<qt>Are you sure that you want to remove the email address <b>%1</b>?</qt>" ).arg( address ); 237 QString text = i18n( "<qt>Are you sure that you want to remove the email address <b>%1</b>?</qt>" ).arg( address );
236 QString caption = i18n( "Confirm Remove" ); 238 QString caption = i18n( "Confirm Remove" );
237 239
238 if ( KMessageBox::questionYesNo( this, text, caption ) == KMessageBox::Yes ) { 240 if ( KMessageBox::questionYesNo( this, text, caption ) == KMessageBox::Yes ) {
239 mEmailListBox->removeItem( mEmailListBox->currentItem() ); 241 mEmailListBox->removeItem( mEmailListBox->currentItem() );
240 mChanged = true; 242 mChanged = true;
241 } 243 }
242} 244}
243 245
244bool EmailEditDialog::changed() const 246bool EmailEditDialog::changed() const
245{ 247{
246 return mChanged; 248 return mChanged;
247} 249}
248 250
249void EmailEditDialog::standard() 251void EmailEditDialog::standard()
250{ 252{
251 QString text = mEmailListBox->currentText(); 253 QString text = mEmailListBox->currentText();
diff --git a/kaddressbook/phoneeditwidget.cpp b/kaddressbook/phoneeditwidget.cpp
index 19bb676..a435959 100644
--- a/kaddressbook/phoneeditwidget.cpp
+++ b/kaddressbook/phoneeditwidget.cpp
@@ -192,49 +192,50 @@ void PhoneEditWidget::updateCombos()
192 mPrefCombo->updateTypes(); 192 mPrefCombo->updateTypes();
193 mSecondCombo->updateTypes(); 193 mSecondCombo->updateTypes();
194 mThirdCombo->updateTypes(); 194 mThirdCombo->updateTypes();
195 mFourthCombo->updateTypes(); 195 mFourthCombo->updateTypes();
196} 196}
197 197
198KABC::PhoneNumber::List PhoneEditWidget::phoneNumbers() 198KABC::PhoneNumber::List PhoneEditWidget::phoneNumbers()
199{ 199{
200 KABC::PhoneNumber::List retList; 200 KABC::PhoneNumber::List retList;
201 201
202 KABC::PhoneNumber::List::Iterator it; 202 KABC::PhoneNumber::List::Iterator it;
203 for ( it = mPhoneList.begin(); it != mPhoneList.end(); ++it ) 203 for ( it = mPhoneList.begin(); it != mPhoneList.end(); ++it )
204 if ( !(*it).number().isEmpty() ) 204 if ( !(*it).number().isEmpty() )
205 retList.append( *it ); 205 retList.append( *it );
206 206
207 return retList; 207 return retList;
208} 208}
209 209
210void PhoneEditWidget::edit() 210void PhoneEditWidget::edit()
211{ 211{
212 PhoneEditDialog dlg( mPhoneList, this ); 212 PhoneEditDialog dlg( mPhoneList, this );
213 213
214 if ( dlg.exec() ) { 214 if ( dlg.exec() ) {
215 if ( dlg.changed() ) { 215 if ( dlg.changed() ) {
216 mPhoneList = dlg.phoneNumbers(); 216 KABC::PhoneNumber::List list = dlg.phoneNumbers();
217 setPhoneNumbers( list );
217 updateCombos(); 218 updateCombos();
218 updateLineEdits(); 219 updateLineEdits();
219 emit modified(); 220 emit modified();
220 } 221 }
221 } 222 }
222} 223}
223 224
224void PhoneEditWidget::updatePrefEdit() 225void PhoneEditWidget::updatePrefEdit()
225{ 226{
226 updateEdit( mPrefCombo ); 227 updateEdit( mPrefCombo );
227} 228}
228 229
229void PhoneEditWidget::updateSecondEdit() 230void PhoneEditWidget::updateSecondEdit()
230{ 231{
231 updateEdit( mSecondCombo ); 232 updateEdit( mSecondCombo );
232} 233}
233 234
234void PhoneEditWidget::updateThirdEdit() 235void PhoneEditWidget::updateThirdEdit()
235{ 236{
236 updateEdit( mThirdCombo ); 237 updateEdit( mThirdCombo );
237} 238}
238 239
239void PhoneEditWidget::updateFourthEdit() 240void PhoneEditWidget::updateFourthEdit()
240{ 241{
@@ -317,49 +318,52 @@ class PhoneViewItem : public QListViewItem
317public: 318public:
318 PhoneViewItem( QListView *parent, const KABC::PhoneNumber &number ); 319 PhoneViewItem( QListView *parent, const KABC::PhoneNumber &number );
319 320
320 void setPhoneNumber( const KABC::PhoneNumber &number ) 321 void setPhoneNumber( const KABC::PhoneNumber &number )
321 { 322 {
322 mPhoneNumber = number; 323 mPhoneNumber = number;
323 makeText(); 324 makeText();
324 } 325 }
325 326
326 QString key() { return mPhoneNumber.id(); } 327 QString key() { return mPhoneNumber.id(); }
327 QString country() { return ""; } 328 QString country() { return ""; }
328 QString region() { return ""; } 329 QString region() { return ""; }
329 QString number() { return ""; } 330 QString number() { return ""; }
330 331
331 KABC::PhoneNumber phoneNumber() { return mPhoneNumber; } 332 KABC::PhoneNumber phoneNumber() { return mPhoneNumber; }
332 333
333private: 334private:
334 void makeText(); 335 void makeText();
335 336
336 KABC::PhoneNumber mPhoneNumber; 337 KABC::PhoneNumber mPhoneNumber;
337}; 338};
338 339
339PhoneViewItem::PhoneViewItem( QListView *parent, const KABC::PhoneNumber &number ) 340PhoneViewItem::PhoneViewItem( QListView *parent, const KABC::PhoneNumber &number )
340 : QListViewItem( parent ), mPhoneNumber( number ) 341 : QListViewItem( parent ), mPhoneNumber( number )
341{ 342{
343#ifdef DESKTOP_VERSION
344 setRenameEnabled ( 0, true );
345#endif
342 makeText(); 346 makeText();
343} 347}
344 348
345void PhoneViewItem::makeText() 349void PhoneViewItem::makeText()
346{ 350{
347 /** 351 /**
348 * Will be used in future versions of kaddressbook/libkabc 352 * Will be used in future versions of kaddressbook/libkabc
349 353
350 setText( 0, mPhoneNumber.country() ); 354 setText( 0, mPhoneNumber.country() );
351 setText( 1, mPhoneNumber.region() ); 355 setText( 1, mPhoneNumber.region() );
352 setText( 2, mPhoneNumber.number() ); 356 setText( 2, mPhoneNumber.number() );
353 setText( 3, mPhoneNumber.typeLabel() ); 357 setText( 3, mPhoneNumber.typeLabel() );
354 */ 358 */
355 359
356 setText( 0, mPhoneNumber.number() ); 360 setText( 0, mPhoneNumber.number() );
357 setText( 1, mPhoneNumber.typeLabel() ); 361 setText( 1, mPhoneNumber.typeLabel() );
358} 362}
359 363
360PhoneEditDialog::PhoneEditDialog( const KABC::PhoneNumber::List &list, QWidget *parent, const char *name ) 364PhoneEditDialog::PhoneEditDialog( const KABC::PhoneNumber::List &list, QWidget *parent, const char *name )
361 : KDialogBase( KDialogBase::Plain, i18n( "Edit Phone Numbers" ), 365 : KDialogBase( KDialogBase::Plain, i18n( "Edit Phone Numbers" ),
362 KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok, 366 KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok,
363 parent, name, true) 367 parent, name, true)
364{ 368{
365 mPhoneNumberList = list; 369 mPhoneNumberList = list;
@@ -385,53 +389,70 @@ PhoneEditDialog::PhoneEditDialog( const KABC::PhoneNumber::List &list, QWidget *
385 389
386 layout->addWidget( mListView, 0, 0 ); 390 layout->addWidget( mListView, 0, 0 );
387 layout->addWidget( buttonBox, 0, 1 ); 391 layout->addWidget( buttonBox, 0, 1 );
388 392
389 connect( mListView, SIGNAL(selectionChanged()), SLOT(slotSelectionChanged()) ); 393 connect( mListView, SIGNAL(selectionChanged()), SLOT(slotSelectionChanged()) );
390 connect( mListView, SIGNAL(doubleClicked( QListViewItem *, const QPoint &, int )), this, SLOT( slotEditPhoneNumber())); 394 connect( mListView, SIGNAL(doubleClicked( QListViewItem *, const QPoint &, int )), this, SLOT( slotEditPhoneNumber()));
391 395
392 KABC::PhoneNumber::List::Iterator it; 396 KABC::PhoneNumber::List::Iterator it;
393 for ( it = mPhoneNumberList.begin(); it != mPhoneNumberList.end(); ++it ) 397 for ( it = mPhoneNumberList.begin(); it != mPhoneNumberList.end(); ++it )
394 new PhoneViewItem( mListView, *it ); 398 new PhoneViewItem( mListView, *it );
395 399
396 mChanged = false; 400 mChanged = false;
397} 401}
398 402
399PhoneEditDialog::~PhoneEditDialog() 403PhoneEditDialog::~PhoneEditDialog()
400{ 404{
401} 405}
402 406
403void PhoneEditDialog::slotAddPhoneNumber() 407void PhoneEditDialog::slotAddPhoneNumber()
404{ 408{
405 KABC::PhoneNumber tmp( "", 0 ); 409 KABC::PhoneNumber tmp( "", 0 );
406 PhoneTypeDialog dlg( tmp, this ); 410 PhoneTypeDialog dlg( tmp, this );
407 411
408 if ( dlg.exec() ) { 412 if ( dlg.exec() ) {
409 KABC::PhoneNumber phoneNumber = dlg.phoneNumber(); 413 QListViewItem* i = mListView->firstChild();
410 mPhoneNumberList.append( phoneNumber ); 414 KABC::PhoneNumber phoneNumber = dlg.phoneNumber();
411 new PhoneViewItem( mListView, phoneNumber ); 415 bool insert = true;
412 416 while ( i ) {
413 mChanged = true; 417 PhoneViewItem* p = ( PhoneViewItem* ) i;
418 KABC::PhoneNumber pn = p->phoneNumber();
419 if ( (pn.type() | KABC::PhoneNumber::Pref) == (phoneNumber.type() | KABC::PhoneNumber::Pref) ) {
420 if ( p->text(0).isEmpty()) {
421 p->setPhoneNumber( phoneNumber );
422 mPhoneNumberList.remove( pn );
423 mPhoneNumberList.append( phoneNumber );
424 insert = false;
425 break;
426 }
427 }
428 i = i->nextSibling();
429 }
430 if ( insert ) {
431 mPhoneNumberList.append( phoneNumber );
432 new PhoneViewItem( mListView, phoneNumber );
433 }
434 mChanged = true;
414 } 435 }
415} 436}
416 437
417void PhoneEditDialog::slotRemovePhoneNumber() 438void PhoneEditDialog::slotRemovePhoneNumber()
418{ 439{
419 PhoneViewItem *item = static_cast<PhoneViewItem*>( mListView->currentItem() ); 440 PhoneViewItem *item = static_cast<PhoneViewItem*>( mListView->currentItem() );
420 if ( !item ) 441 if ( !item )
421 return; 442 return;
422 443
423 mPhoneNumberList.remove( item->phoneNumber() ); 444 mPhoneNumberList.remove( item->phoneNumber() );
424 QListViewItem *currItem = mListView->currentItem(); 445 QListViewItem *currItem = mListView->currentItem();
425 mListView->takeItem( currItem ); 446 mListView->takeItem( currItem );
426 delete currItem; 447 delete currItem;
427 448
428 mChanged = true; 449 mChanged = true;
429} 450}
430 451
431void PhoneEditDialog::slotEditPhoneNumber() 452void PhoneEditDialog::slotEditPhoneNumber()
432{ 453{
433 PhoneViewItem *item = static_cast<PhoneViewItem*>( mListView->currentItem() ); 454 PhoneViewItem *item = static_cast<PhoneViewItem*>( mListView->currentItem() );
434 if ( !item ) 455 if ( !item )
435 return; 456 return;
436 457
437 PhoneTypeDialog dlg( item->phoneNumber(), this ); 458 PhoneTypeDialog dlg( item->phoneNumber(), this );
@@ -483,48 +504,50 @@ PhoneTypeDialog::PhoneTypeDialog( const KABC::PhoneNumber &phoneNumber,
483 504
484 mPreferredBox = new QCheckBox( i18n( "This is the preferred phone number" ), page ); 505 mPreferredBox = new QCheckBox( i18n( "This is the preferred phone number" ), page );
485 layout->addMultiCellWidget( mPreferredBox, 1, 1, 0, 1 ); 506 layout->addMultiCellWidget( mPreferredBox, 1, 1, 0, 1 );
486 507
487 mGroup = new QButtonGroup( 2, Horizontal, i18n( "Types" ), page ); 508 mGroup = new QButtonGroup( 2, Horizontal, i18n( "Types" ), page );
488 layout->addMultiCellWidget( mGroup, 2, 2, 0, 1 ); 509 layout->addMultiCellWidget( mGroup, 2, 2, 0, 1 );
489 510
490 // fill widgets 511 // fill widgets
491 mNumber->setText( mPhoneNumber.number() ); 512 mNumber->setText( mPhoneNumber.number() );
492 513
493 mTypeList = KABC::PhoneNumber::typeList(); 514 mTypeList = KABC::PhoneNumber::typeList();
494 mTypeList.remove( KABC::PhoneNumber::Pref ); 515 mTypeList.remove( KABC::PhoneNumber::Pref );
495 516
496 KABC::PhoneNumber::TypeList::Iterator it; 517 KABC::PhoneNumber::TypeList::Iterator it;
497 for ( it = mTypeList.begin(); it != mTypeList.end(); ++it ) 518 for ( it = mTypeList.begin(); it != mTypeList.end(); ++it )
498 new QCheckBox( KABC::PhoneNumber::typeLabel( *it ), mGroup ); 519 new QCheckBox( KABC::PhoneNumber::typeLabel( *it ), mGroup );
499 520
500 for ( int i = 0; i < mGroup->count(); ++i ) { 521 for ( int i = 0; i < mGroup->count(); ++i ) {
501 int type = mPhoneNumber.type(); 522 int type = mPhoneNumber.type();
502 QCheckBox *box = (QCheckBox*)mGroup->find( i ); 523 QCheckBox *box = (QCheckBox*)mGroup->find( i );
503 box->setChecked( type & mTypeList[ i ] ); 524 box->setChecked( type & mTypeList[ i ] );
504 } 525 }
505 526
506 mPreferredBox->setChecked( mPhoneNumber.type() & KABC::PhoneNumber::Pref ); 527 mPreferredBox->setChecked( mPhoneNumber.type() & KABC::PhoneNumber::Pref );
528 mNumber->setFocus();
529 mNumber->setSelection( 0, 1024);
507} 530}
508 531
509KABC::PhoneNumber PhoneTypeDialog::phoneNumber() 532KABC::PhoneNumber PhoneTypeDialog::phoneNumber()
510{ 533{
511 mPhoneNumber.setNumber( mNumber->text() ); 534 mPhoneNumber.setNumber( mNumber->text() );
512 535
513 int type = 0; 536 int type = 0;
514 for ( int i = 0; i < mGroup->count(); ++i ) { 537 for ( int i = 0; i < mGroup->count(); ++i ) {
515 QCheckBox *box = (QCheckBox*)mGroup->find( i ); 538 QCheckBox *box = (QCheckBox*)mGroup->find( i );
516 if ( box->isChecked() ) 539 if ( box->isChecked() )
517 type += mTypeList[ i ]; 540 type += mTypeList[ i ];
518 } 541 }
519 542
520 if ( mPreferredBox->isChecked() ) 543 if ( mPreferredBox->isChecked() )
521 mPhoneNumber.setType( type | KABC::PhoneNumber::Pref ); 544 mPhoneNumber.setType( type | KABC::PhoneNumber::Pref );
522 else 545 else
523 mPhoneNumber.setType( type & ~KABC::PhoneNumber::Pref ); 546 mPhoneNumber.setType( type & ~KABC::PhoneNumber::Pref );
524 547
525 return mPhoneNumber; 548 return mPhoneNumber;
526} 549}
527 550
528#ifndef KAB_EMBEDDED 551#ifndef KAB_EMBEDDED
529#include "phoneeditwidget.moc" 552#include "phoneeditwidget.moc"
530#endif //KAB_EMBEDDED 553#endif //KAB_EMBEDDED