author | zautrix <zautrix> | 2005-10-28 12:10:35 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-10-28 12:10:35 (UTC) |
commit | cee83f70d8e4a6945f4456c55ab1b280d3425f0f (patch) (side-by-side diff) | |
tree | 1b317655a344f1a3640ef2561d61075e0feddd64 /kaddressbook | |
parent | b27cb619bb9005ad4345d38bbee3b1c3d0eda1b2 (diff) | |
download | kdepimpi-cee83f70d8e4a6945f4456c55ab1b280d3425f0f.zip kdepimpi-cee83f70d8e4a6945f4456c55ab1b280d3425f0f.tar.gz kdepimpi-cee83f70d8e4a6945f4456c55ab1b280d3425f0f.tar.bz2 |
commit
-rw-r--r-- | kaddressbook/phoneeditwidget.cpp | 37 | ||||
-rw-r--r-- | kaddressbook/phoneeditwidget.h | 18 |
2 files changed, 31 insertions, 24 deletions
diff --git a/kaddressbook/phoneeditwidget.cpp b/kaddressbook/phoneeditwidget.cpp index b20275d..997fc05 100644 --- a/kaddressbook/phoneeditwidget.cpp +++ b/kaddressbook/phoneeditwidget.cpp @@ -74,34 +74,29 @@ PhoneEditWidget::PhoneEditWidget( QWidget *parent, const char *name ) 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() { @@ -110,24 +105,37 @@ 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(); @@ -139,10 +147,8 @@ void PhoneEditWidget::setPhoneNumbers( const KABC::PhoneNumber::List &li ) while ( edit ) { edit->hide(); edit = mTypeNumberEditList.next(); } - //mainLayout->invalidate (); - mw->update(); } KABC::PhoneNumber::List PhoneEditWidget::phoneNumbers() { KABC::PhoneNumber::List retList; @@ -514,8 +520,9 @@ 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 @@ -65,12 +65,15 @@ class PhoneEditWidget : public QScrollView void modified(); 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; QVBoxLayout* mainLayout; @@ -211,18 +214,18 @@ public: connect( mCombo , SIGNAL ( activated ( int ) ), this, SLOT ( comboTypeChange( int ) ) ); 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(); } KABC::PhoneNumber phoneNumber() @@ -233,9 +236,8 @@ public: return mPhoneNumber; } bool isValid() { - if ( !mIsValid ) return false; if ( mNumber->text().isEmpty() )return false; return true; } private slots: @@ -248,11 +250,9 @@ public: } } void deleteNumber() { - emit modified(); - hide(); - mIsValid = false; + emit deleteMe( this ); } void comboTypeChange( int index ) { int old = mPhoneNumber.type(); @@ -274,11 +274,11 @@ public: } signals: void typeChange( int oldType, int newType ); void modified(); + void deleteMe( PhoneTypeNumberEdit* ); private: - bool mIsValid; KABC::PhoneNumber mPhoneNumber; QPushButton* mMinusButton; KComboBox *mCombo; KLineEdit *mNumber; |