Diffstat (limited to 'kaddressbook/phoneeditwidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kaddressbook/phoneeditwidget.cpp | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/kaddressbook/phoneeditwidget.cpp b/kaddressbook/phoneeditwidget.cpp index b20275d..997fc05 100644 --- a/kaddressbook/phoneeditwidget.cpp +++ b/kaddressbook/phoneeditwidget.cpp @@ -66,91 +66,97 @@ PhoneEditWidget::PhoneEditWidget( QWidget *parent, const char *name ) mainLayout->add( hb ); QHBoxLayout* hbLayout = new QHBoxLayout ( hb ); QPushButton *addBut = new QPushButton ( "add", hb ); hbLayout->add( addBut ); addBut->setPixmap ( SmallIcon("plus")); addBut->setMaximumSize( addBut->sizeHint().height(),addBut->sizeHint().height() ); connect(addBut,SIGNAL(clicked()),SLOT(addNumber())); //QLabel * temp = new QLabel( i18n("Phone Type"), hb ); QLabel *temp = new QLabel( i18n("Phone Number"),hb ); temp->setAlignment( Qt::AlignCenter ); temp->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop, 0 ) ); hbLayout->add( temp ); - appendEditCombo(); - appendEditCombo(); - appendEditCombo(); setDefaults(); + mTypeNumberEditList.setAutoDelete( true ); } PhoneEditWidget::~PhoneEditWidget() { } void PhoneEditWidget::setDefaults() { - PhoneTypeNumberEdit* edit = mTypeNumberEditList.first(); + mTypeNumberEditList.clear(); + PhoneTypeNumberEdit* edit = appendEditCombo(); KABC::PhoneNumber phoneNumber; phoneNumber.setType( KABC::PhoneNumber::Home | KABC::PhoneNumber::Pref ); edit->setPhoneNumber( phoneNumber ); - edit = mTypeNumberEditList.next(); + edit = appendEditCombo(); phoneNumber.setType( KABC::PhoneNumber::Work | KABC::PhoneNumber::Pref ); edit->setPhoneNumber( phoneNumber ); - edit = mTypeNumberEditList.next(); + edit = appendEditCombo(); phoneNumber.setType( KABC::PhoneNumber::Cell ); edit->setPhoneNumber( phoneNumber ); - edit = mTypeNumberEditList.next(); - while ( edit ) { - edit->hide(); - edit = mTypeNumberEditList.next(); - } + } void PhoneEditWidget::addNumber() { } PhoneTypeNumberEdit* PhoneEditWidget::appendEditCombo() { PhoneTypeNumberEdit* edit = new PhoneTypeNumberEdit( mw ); connect ( edit, SIGNAL ( typeChange( int , int) ), this, SIGNAL ( typeChange( int , int)) ); connect ( edit, SIGNAL ( modified() ), this, SIGNAL ( modified() ) ); + connect ( edit, SIGNAL ( deleteMe( PhoneTypeNumberEdit* ) ), this, SLOT ( deleteEdit( PhoneTypeNumberEdit*) ) ); connect ( this, SIGNAL ( typeChange( int , int)), edit, SLOT ( typeExternalChanged( int, int)) ); mainLayout->add( edit ); mTypeNumberEditList.append( edit ); return edit; } +void PhoneEditWidget::deleteEdit( PhoneTypeNumberEdit* ew ) +{ + mPendingDelete = ew; + QTimer::singleShot( 0, this, SLOT ( pendingDelete() ) ); +} +void PhoneEditWidget::pendingDelete() +{ + mTypeNumberEditList.removeRef( mPendingDelete ); + emit modified(); +} + void PhoneEditWidget::setPhoneNumbers( const KABC::PhoneNumber::List &li ) { if ( li.isEmpty() ) { setDefaults(); return; - } + } + mTypeNumberEditList.clear(); KABC::PhoneNumber::List::Iterator it; KABC::PhoneNumber::List list = li; - PhoneTypeNumberEdit* edit = mTypeNumberEditList.first(); + PhoneTypeNumberEdit* edit = 0;//mTypeNumberEditList.first(); for ( it = list.begin(); it != list.end(); ++it ) { if ( edit ) { edit->setPhoneNumber( (*it ) ); edit = mTypeNumberEditList.next(); } else { PhoneTypeNumberEdit* editNew = appendEditCombo(); editNew->setPhoneNumber( (*it ) ); } } while ( edit ) { edit->hide(); edit = mTypeNumberEditList.next(); } - //mainLayout->invalidate (); - mw->update(); } KABC::PhoneNumber::List PhoneEditWidget::phoneNumbers() { KABC::PhoneNumber::List retList; PhoneTypeNumberEdit* edit = mTypeNumberEditList.first(); while ( edit ) { if ( edit->isValid() ) { retList.append( edit->phoneNumber()); } edit = mTypeNumberEditList.next(); @@ -506,24 +512,25 @@ PhoneEditDialog::PhoneEditDialog( const KABC::PhoneNumber::List &list, QWidget * KABC::PhoneNumber::List::Iterator it; for ( it = mPhoneNumberList.begin(); it != mPhoneNumberList.end(); ++it ) new PhoneViewItem( mListView, *it ); if (QApplication::desktop()->width() < 480 ) showMaximized(); else resize( 400, 400 ); mChanged = false; } PhoneEditDialog::~PhoneEditDialog() { + qDebug("PhoneEditDialog::~PhoneEditDialog() "); } void PhoneEditDialog::slotAddPhoneNumber() { KABC::PhoneNumber tmp( "", 0 ); PhoneTypeDialog dlg( tmp, this ); if ( dlg.exec() ) { QListViewItem* i = mListView->firstChild(); KABC::PhoneNumber phoneNumber = dlg.phoneNumber(); bool insert = true; while ( i ) { |