summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-10-28 12:10:35 (UTC)
committer zautrix <zautrix>2005-10-28 12:10:35 (UTC)
commitcee83f70d8e4a6945f4456c55ab1b280d3425f0f (patch) (side-by-side diff)
tree1b317655a344f1a3640ef2561d61075e0feddd64
parentb27cb619bb9005ad4345d38bbee3b1c3d0eda1b2 (diff)
downloadkdepimpi-cee83f70d8e4a6945f4456c55ab1b280d3425f0f.zip
kdepimpi-cee83f70d8e4a6945f4456c55ab1b280d3425f0f.tar.gz
kdepimpi-cee83f70d8e4a6945f4456c55ab1b280d3425f0f.tar.bz2
commit
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
@@ -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;