-rw-r--r-- | kaddressbook/addresseeeditorwidget.cpp | 50 | ||||
-rw-r--r-- | kaddressbook/addresseeeditorwidget.h | 5 |
2 files changed, 47 insertions, 8 deletions
diff --git a/kaddressbook/addresseeeditorwidget.cpp b/kaddressbook/addresseeeditorwidget.cpp index c4083a9..4313998 100644 --- a/kaddressbook/addresseeeditorwidget.cpp +++ b/kaddressbook/addresseeeditorwidget.cpp @@ -331,15 +331,19 @@ void AddresseeEditorWidget::setupTab1() categoryBox->setSpacing( KDialogBase::spacingHint() ); categoryBox->setMargin( KDialogBase::marginHintSmall() ); // Categories - button = new QPushButton( i18n( "Categories" ), categoryBox ); + button = new QPushButton( i18n( "Categories" )+":", categoryBox ); connect( button, SIGNAL( clicked() ), SLOT( categoryButtonClicked() ) ); - mCategoryEdit = new KLineEdit( categoryBox ); - mCategoryEdit->setReadOnly( true ); - connect( mCategoryEdit, SIGNAL( textChanged( const QString& ) ), - SLOT( textChanged( const QString& ) ) ); + mCategoryEdit = new QPushButton ( categoryBox ); + mCategoryEdit->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::Fixed ,FALSE) ); + mCatPopup = new QPopupMenu ( categoryBox ); + mCategoryEdit->setPopup( mCatPopup ); + connect(mCatPopup,SIGNAL(aboutToShow () ), this ,SLOT(showCatPopup())); + connect(mCatPopup,SIGNAL( activated ( int ) ), this ,SLOT(selectedCatPopup( int ))); + //connect( mCategoryEdit, SIGNAL( textChanged( const QString& ) ), + // SLOT( textChanged( const QString& ) ) ); mSecrecyWidget = new SecrecyWidget( categoryBox ); connect( mSecrecyWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); @@ -351,23 +355,55 @@ void AddresseeEditorWidget::setupTab1() mTabWidget->addTab( tab1, i18n( "&General" ) ); } +void AddresseeEditorWidget::showCatPopup() +{ + mCatPopup->clear(); + QStringList checkedCategories = QStringList::split (",", mCategoryEdit->text()); + int index = 0; + for (QStringList::Iterator it = KABPrefs::instance()->mCustomCategories.begin (); + it != KABPrefs::instance()->mCustomCategories.end (); + ++it) { + mCatPopup->insertItem (*it, index ); + //mCategory[index] = *it; + if (checkedCategories.find (*it) != checkedCategories.end ()) mCatPopup->setItemChecked (index, true); + ++index; + } +} +void AddresseeEditorWidget::selectedCatPopup( int index ) +{ + QStringList categories = QStringList::split (",", mCategoryEdit->text()); + QString colcat = categories.first(); + if (categories.find ( KABPrefs::instance()->mCustomCategories[index]) != categories.end ()) + categories.remove (KABPrefs::instance()->mCustomCategories[index]); + else + categories.insert (categories.end(), KABPrefs::instance()->mCustomCategories[index]); + categories.sort (); + if ( !colcat.isEmpty() ) { + if ( categories.find ( colcat ) != categories.end () ) { + categories.remove( colcat ); + categories.prepend( colcat ); + } + } + mCategoryEdit->setText( categories.join(",") ); + emitModified(); +} void AddresseeEditorWidget::setRole2FN() { if ( mRoleEdit->text().isEmpty() ) return; mFormattedNameType = NameEditDialog::CustomName; mAddressee.setFormattedName( mRoleEdit->text() ); mFormattedNameLabel->setText( mRoleEdit->text() ); - mDirty = true; + emitModified(); } void AddresseeEditorWidget::setCompany2FN() { if ( mOrgEdit->text().isEmpty() ) return; mFormattedNameType = NameEditDialog::CustomName; mAddressee.setFormattedName( mOrgEdit->text() ); mFormattedNameLabel->setText( mOrgEdit->text() ); - mDirty = true; + emitModified(); } void AddresseeEditorWidget::setupTab1_1() { diff --git a/kaddressbook/addresseeeditorwidget.h b/kaddressbook/addresseeeditorwidget.h index eaf5b16..1703e2f 100644 --- a/kaddressbook/addresseeeditorwidget.h +++ b/kaddressbook/addresseeeditorwidget.h @@ -88,8 +88,10 @@ class AddresseeEditorWidget : public ExtensionWidget QString title() const; QString identifier() const; protected slots: + void showCatPopup(); + void selectedCatPopup( int ); void setRole2FN(); void setCompany2FN(); void textChanged( const QString& ); void pageChanged( QWidget *wdg ); @@ -149,9 +151,10 @@ class AddresseeEditorWidget : public ExtensionWidget EmailEditWidget *mEmailWidget; PhoneEditWidget *mPhoneEditWidget; KLineEdit *mURLEdit; KLineEdit *mIMAddressEdit; - KLineEdit *mCategoryEdit; + QPushButton *mCategoryEdit; + QPopupMenu *mCatPopup; SecrecyWidget *mSecrecyWidget; KSqueezedTextLabel *mNameLabel; // Tab2 and Tab2_2 |