author | zautrix <zautrix> | 2005-10-28 14:43:31 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-10-28 14:43:31 (UTC) |
commit | ab099bc1be027fe01dc252a9d7a0f8821e782d65 (patch) (side-by-side diff) | |
tree | 85bfb03f334da60dffcc52d54202f51d0f947e3f /kaddressbook | |
parent | caaa030d8bc2aa82c53e5d30abc314b992d7226f (diff) | |
download | kdepimpi-ab099bc1be027fe01dc252a9d7a0f8821e782d65.zip kdepimpi-ab099bc1be027fe01dc252a9d7a0f8821e782d65.tar.gz kdepimpi-ab099bc1be027fe01dc252a9d7a0f8821e782d65.tar.bz2 |
fixxxx
-rw-r--r-- | kaddressbook/phoneeditwidget.cpp | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/kaddressbook/phoneeditwidget.cpp b/kaddressbook/phoneeditwidget.cpp index 9e7e221..66f0a5e 100644 --- a/kaddressbook/phoneeditwidget.cpp +++ b/kaddressbook/phoneeditwidget.cpp @@ -108,143 +108,152 @@ void PhoneEditWidget::setDefaults() phoneNumber.setType( KABC::PhoneNumber::Cell ); edit->setPhoneNumber( phoneNumber ); } void PhoneEditWidget::addNumberInt( int index ) { PhoneTypeNumberEdit* edit = appendEditCombo(); KABC::PhoneNumber phoneNumber; phoneNumber.setType( PhoneNumber::supportedTypeList()[index] ); edit->setPhoneNumber( phoneNumber ); //verticalScrollBar()->setValue( 1024); QTimer::singleShot( 0, this, SLOT ( bottomVisible() ) ); } void PhoneEditWidget::bottomVisible() { sv->setContentsPos ( 0, 1024 ); } void PhoneEditWidget::addNumber() { int i = 0; while ( i < mPopupCount ) { mPopup->setItemEnabled( i, true ); ++i; } PhoneTypeNumberEdit* edit = mTypeNumberEditList.first(); while ( edit ) { if ( edit->currentType() < mPopupCount -1 ) mPopup->setItemEnabled( edit->currentType(), false ); edit = mTypeNumberEditList.next(); } mPopup->popup( QCursor::pos() ); } 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 = 0;//mTypeNumberEditList.first(); + KABC::PhoneNumber::List list2 = li; + KABC::PhoneNumber::List list ; + + PhoneNumber::TypeList tList = PhoneNumber::supportedTypeList(); + int i = 0; + int max = tList.count(); + while ( i < max-1 ) { + for ( it = list2.begin(); it != list2.end(); ++it ) { + if ( (*it).type() == tList[i] ) { + list.append( (*it ) ); + break; + } + } + ++i; + } + for ( it = list2.begin(); it != list2.end(); ++it ) { + if ( (*it).type() == tList[ max-1 ] ) + list.append( (*it ) ); + } 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(); - } + } KABC::PhoneNumber::List PhoneEditWidget::phoneNumbers() { KABC::PhoneNumber::List retList; PhoneTypeNumberEdit* edit = mTypeNumberEditList.first(); while ( edit ) { if ( edit->isValid() ) { retList.append( edit->phoneNumber()); } edit = mTypeNumberEditList.next(); } return retList; } #if 0 PhoneEditWidget::PhoneEditWidget( QWidget *parent, const char *name ) : QWidget( parent, name ) { QGridLayout *layout = new QGridLayout( this, 4, 1 ); //US layout->setSpacing( KDialog::spacingHint() ); layout->setSpacing( KDialogBase::spacingHintSmall() ); QLabel* label = new QLabel( this ); //US loadIcon call is ambiguous. Add one more parameter //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop ) ); label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop, 0 ) ); label->setAlignment( AlignCenter ); //US layout->addMultiCellWidget( label, 0, 1, 3, 3 ); layout->addWidget( label, 0, 0 ); QPushButton *editButton = new QPushButton( i18n( "Edit Phone Numbers..." ), this ); if ( QApplication::desktop()->width() < 640 ) layout->addWidget( editButton, 0, 1 ); else layout->addMultiCellWidget( editButton, 0, 0, 1, 3); mPrefCombo = new PhoneTypeCombo( mPhoneList, this ); mPrefEdit = new KLineEdit( this ); //mPrefEdit->setMinimumWidth( int(mPrefEdit->sizeHint().width() * 1.5) ); mPrefCombo->setLineEdit( mPrefEdit ); layout->addWidget( mPrefCombo, 1, 0 ); layout->addWidget( mPrefEdit, 1, 1 ); int x = 1, y = 2; if ( QApplication::desktop()->width() < 640 ) { ++x; y = 0; } mSecondCombo = new PhoneTypeCombo( mPhoneList, this ); mSecondEdit = new KLineEdit( this ); mSecondCombo->setLineEdit( mSecondEdit ); layout->addWidget( mSecondCombo, x, y++ ); layout->addWidget( mSecondEdit, x, y++ ); y = 0; ++x; mThirdCombo = new PhoneTypeCombo( mPhoneList, this ); mThirdEdit = new KLineEdit( this ); mThirdCombo->setLineEdit( mThirdEdit ); layout->addWidget( mThirdCombo, x, y++ ); |