Diffstat (limited to 'kaddressbook/phoneeditwidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kaddressbook/phoneeditwidget.cpp | 37 |
1 files changed, 30 insertions, 7 deletions
diff --git a/kaddressbook/phoneeditwidget.cpp b/kaddressbook/phoneeditwidget.cpp index 19bb676..a435959 100644 --- a/kaddressbook/phoneeditwidget.cpp +++ b/kaddressbook/phoneeditwidget.cpp | |||
@@ -210,13 +210,14 @@ KABC::PhoneNumber::List PhoneEditWidget::phoneNumbers() | |||
210 | void PhoneEditWidget::edit() | 210 | void 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 | } |
@@ -335,13 +336,16 @@ private: | |||
335 | 336 | ||
336 | KABC::PhoneNumber mPhoneNumber; | 337 | KABC::PhoneNumber mPhoneNumber; |
337 | }; | 338 | }; |
338 | 339 | ||
339 | PhoneViewItem::PhoneViewItem( QListView *parent, const KABC::PhoneNumber &number ) | 340 | PhoneViewItem::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 | ||
345 | void PhoneViewItem::makeText() | 349 | void PhoneViewItem::makeText() |
346 | { | 350 | { |
347 | /** | 351 | /** |
@@ -403,17 +407,34 @@ PhoneEditDialog::~PhoneEditDialog() | |||
403 | void PhoneEditDialog::slotAddPhoneNumber() | 407 | void 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 | ||
417 | void PhoneEditDialog::slotRemovePhoneNumber() | 438 | void PhoneEditDialog::slotRemovePhoneNumber() |
418 | { | 439 | { |
419 | PhoneViewItem *item = static_cast<PhoneViewItem*>( mListView->currentItem() ); | 440 | PhoneViewItem *item = static_cast<PhoneViewItem*>( mListView->currentItem() ); |
@@ -501,12 +522,14 @@ PhoneTypeDialog::PhoneTypeDialog( const KABC::PhoneNumber &phoneNumber, | |||
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 | ||
509 | KABC::PhoneNumber PhoneTypeDialog::phoneNumber() | 532 | KABC::PhoneNumber PhoneTypeDialog::phoneNumber() |
510 | { | 533 | { |
511 | mPhoneNumber.setNumber( mNumber->text() ); | 534 | mPhoneNumber.setNumber( mNumber->text() ); |
512 | 535 | ||