From cee83f70d8e4a6945f4456c55ab1b280d3425f0f Mon Sep 17 00:00:00 2001 From: zautrix Date: Fri, 28 Oct 2005 12:10:35 +0000 Subject: commit --- diff --git a/kaddressbook/phoneeditwidget.cpp b/kaddressbook/phoneeditwidget.cpp index b20275d..997fc05 100644 --- a/kaddressbook/phoneeditwidget.cpp +++ b/kaddressbook/phoneeditwidget.cpp @@ -75,10 +75,8 @@ PhoneEditWidget::PhoneEditWidget( QWidget *parent, const char *name ) 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() @@ -86,21 +84,18 @@ 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() { @@ -111,6 +106,7 @@ 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 ); @@ -118,15 +114,27 @@ PhoneTypeNumberEdit* PhoneEditWidget::appendEditCombo() 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 ) ); @@ -140,8 +148,6 @@ void PhoneEditWidget::setPhoneNumbers( const KABC::PhoneNumber::List &li ) edit->hide(); edit = mTypeNumberEditList.next(); } - //mainLayout->invalidate (); - mw->update(); } KABC::PhoneNumber::List PhoneEditWidget::phoneNumbers() { @@ -515,6 +521,7 @@ PhoneEditDialog::PhoneEditDialog( const KABC::PhoneNumber::List &list, QWidget * PhoneEditDialog::~PhoneEditDialog() { + qDebug("PhoneEditDialog::~PhoneEditDialog() "); } void PhoneEditDialog::slotAddPhoneNumber() diff --git a/kaddressbook/phoneeditwidget.h b/kaddressbook/phoneeditwidget.h index 6a514ed..c730c7b 100644 --- a/kaddressbook/phoneeditwidget.h +++ b/kaddressbook/phoneeditwidget.h @@ -66,10 +66,13 @@ class PhoneEditWidget : public QScrollView void typeChange( int oldType, int newType ); private slots: - void addNumber(); + void deleteEdit( PhoneTypeNumberEdit* ew ); + void addNumber(); + void pendingDelete(); protected: private: + PhoneTypeNumberEdit* mPendingDelete; void setDefaults(); PhoneTypeNumberEdit* appendEditCombo(); QWidget* mw; @@ -212,16 +215,16 @@ public: connect( mNumber , SIGNAL ( textChanged ( const QString & ) ), this, SLOT ( textChanged ( const QString & ) ) ); mCombo->insertStringList( PhoneNumber::supportedTypeListNames() ); - mIsValid = true; } - + ~PhoneTypeNumberEdit() { + // qDebug("~PhoneTypeNumberEdit() "); + } void setPhoneNumber( const KABC::PhoneNumber &phoneNumber ) { mPhoneNumber = phoneNumber; int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() ); mCombo->setCurrentItem( index ); mNumber->setText( mPhoneNumber.number() ); - mIsValid = true; show(); } @@ -234,7 +237,6 @@ public: } bool isValid() { - if ( !mIsValid ) return false; if ( mNumber->text().isEmpty() )return false; return true; } @@ -249,9 +251,7 @@ public: } void deleteNumber() { - emit modified(); - hide(); - mIsValid = false; + emit deleteMe( this ); } void comboTypeChange( int index ) { @@ -275,9 +275,9 @@ public: signals: void typeChange( int oldType, int newType ); void modified(); + void deleteMe( PhoneTypeNumberEdit* ); private: - bool mIsValid; KABC::PhoneNumber mPhoneNumber; QPushButton* mMinusButton; KComboBox *mCombo; -- cgit v0.9.0.2