summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/phoneeditwidget.cpp37
-rw-r--r--kaddressbook/phoneeditwidget.h18
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
@@ -77,6 +77,4 @@ PhoneEditWidget::PhoneEditWidget( QWidget *parent, const char *name )
hbLayout->add( temp );
- appendEditCombo();
- appendEditCombo();
- appendEditCombo();
setDefaults();
+ mTypeNumberEditList.setAutoDelete( true );
}
@@ -88,3 +86,4 @@ void PhoneEditWidget::setDefaults()
{
- PhoneTypeNumberEdit* edit = mTypeNumberEditList.first();
+ mTypeNumberEditList.clear();
+ PhoneTypeNumberEdit* edit = appendEditCombo();
KABC::PhoneNumber phoneNumber;
@@ -92,13 +91,9 @@ void PhoneEditWidget::setDefaults()
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();
- }
+
}
@@ -113,2 +108,3 @@ PhoneTypeNumberEdit* PhoneEditWidget::appendEditCombo()
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)) );
@@ -120,2 +116,13 @@ PhoneTypeNumberEdit* PhoneEditWidget::appendEditCombo()
+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 )
@@ -125,6 +132,7 @@ void PhoneEditWidget::setPhoneNumbers( const KABC::PhoneNumber::List &li )
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 ) {
@@ -142,4 +150,2 @@ void PhoneEditWidget::setPhoneNumbers( const KABC::PhoneNumber::List &li )
}
- //mainLayout->invalidate ();
- mw->update();
}
@@ -517,2 +523,3 @@ PhoneEditDialog::~PhoneEditDialog()
{
+ qDebug("PhoneEditDialog::~PhoneEditDialog() ");
}
diff --git a/kaddressbook/phoneeditwidget.h b/kaddressbook/phoneeditwidget.h
index 6a514ed..c730c7b 100644
--- a/kaddressbook/phoneeditwidget.h
+++ b/kaddressbook/phoneeditwidget.h
@@ -68,3 +68,5 @@ class PhoneEditWidget : public QScrollView
private slots:
- void addNumber();
+ void deleteEdit( PhoneTypeNumberEdit* ew );
+ void addNumber();
+ void pendingDelete();
protected:
@@ -72,2 +74,3 @@ class PhoneEditWidget : public QScrollView
private:
+ PhoneTypeNumberEdit* mPendingDelete;
void setDefaults();
@@ -214,5 +217,6 @@ public:
mCombo->insertStringList( PhoneNumber::supportedTypeListNames() );
- mIsValid = true;
}
-
+ ~PhoneTypeNumberEdit() {
+ // qDebug("~PhoneTypeNumberEdit() ");
+ }
void setPhoneNumber( const KABC::PhoneNumber &phoneNumber )
@@ -223,3 +227,2 @@ public:
mNumber->setText( mPhoneNumber.number() );
- mIsValid = true;
show();
@@ -236,3 +239,2 @@ public:
{
- if ( !mIsValid ) return false;
if ( mNumber->text().isEmpty() )return false;
@@ -251,5 +253,3 @@ public:
{
- emit modified();
- hide();
- mIsValid = false;
+ emit deleteMe( this );
}
@@ -277,5 +277,5 @@ void typeChange( int oldType, int newType );
void modified();
+ void deleteMe( PhoneTypeNumberEdit* );
private:
- bool mIsValid;
KABC::PhoneNumber mPhoneNumber;