summaryrefslogtreecommitdiffabout
path: root/kaddressbook/phoneeditwidget.cpp
Side-by-side diff
Diffstat (limited to 'kaddressbook/phoneeditwidget.cpp') (more/less context) (show whitespace changes)
-rw-r--r--kaddressbook/phoneeditwidget.cpp35
1 files changed, 21 insertions, 14 deletions
diff --git a/kaddressbook/phoneeditwidget.cpp b/kaddressbook/phoneeditwidget.cpp
index b20275d..997fc05 100644
--- a/kaddressbook/phoneeditwidget.cpp
+++ b/kaddressbook/phoneeditwidget.cpp
@@ -70,83 +70,89 @@ PhoneEditWidget::PhoneEditWidget( QWidget *parent, const char *name )
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() ) {
@@ -510,16 +516,17 @@ PhoneEditDialog::PhoneEditDialog( const KABC::PhoneNumber::List &list, QWidget *
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() ) {