summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/addresseeeditorwidget.cpp50
-rw-r--r--kaddressbook/addresseeeditorwidget.h5
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
@@ -333,11 +333,15 @@ void AddresseeEditorWidget::setupTab1()
// 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 );
@@ -353,4 +357,36 @@ void AddresseeEditorWidget::setupTab1()
}
+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()
{
@@ -359,5 +395,5 @@ void AddresseeEditorWidget::setRole2FN()
mAddressee.setFormattedName( mRoleEdit->text() );
mFormattedNameLabel->setText( mRoleEdit->text() );
- mDirty = true;
+ emitModified();
}
void AddresseeEditorWidget::setCompany2FN()
@@ -367,5 +403,5 @@ void AddresseeEditorWidget::setCompany2FN()
mAddressee.setFormattedName( mOrgEdit->text() );
mFormattedNameLabel->setText( mOrgEdit->text() );
- mDirty = true;
+ emitModified();
}
diff --git a/kaddressbook/addresseeeditorwidget.h b/kaddressbook/addresseeeditorwidget.h
index eaf5b16..1703e2f 100644
--- a/kaddressbook/addresseeeditorwidget.h
+++ b/kaddressbook/addresseeeditorwidget.h
@@ -90,4 +90,6 @@ class AddresseeEditorWidget : public ExtensionWidget
protected slots:
+ void showCatPopup();
+ void selectedCatPopup( int );
void setRole2FN();
void setCompany2FN();
@@ -151,5 +153,6 @@ class AddresseeEditorWidget : public ExtensionWidget
KLineEdit *mURLEdit;
KLineEdit *mIMAddressEdit;
- KLineEdit *mCategoryEdit;
+ QPushButton *mCategoryEdit;
+ QPopupMenu *mCatPopup;
SecrecyWidget *mSecrecyWidget;
KSqueezedTextLabel *mNameLabel;