summaryrefslogtreecommitdiffabout
path: root/kaddressbook
authorzautrix <zautrix>2005-11-13 12:51:35 (UTC)
committer zautrix <zautrix>2005-11-13 12:51:35 (UTC)
commit59a3afa458bfb17314017d39c44b102bebb82fa7 (patch) (side-by-side diff)
tree689b1ef7a32d526067c7dddf4a59d19872129b68 /kaddressbook
parent4145dc4a513d5899d8a2b9e4573d8140d871b386 (diff)
downloadkdepimpi-59a3afa458bfb17314017d39c44b102bebb82fa7.zip
kdepimpi-59a3afa458bfb17314017d39c44b102bebb82fa7.tar.gz
kdepimpi-59a3afa458bfb17314017d39c44b102bebb82fa7.tar.bz2
fix
Diffstat (limited to 'kaddressbook') (more/less context) (show 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
@@ -329,19 +329,23 @@ void AddresseeEditorWidget::setupTab1()
///////////////////////////////////////
QHBox *categoryBox = new QHBox( tab1 ,"cato");
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() ) );
//US layout->addMultiCellWidget( categoryBox, 11, 11, 0, 6 );
layout->addMultiCellWidget( categoryBox, iii, iii, 0, maxCol );
@@ -349,27 +353,59 @@ void AddresseeEditorWidget::setupTab1()
// Build the layout and add to the tab widget
layout->activate(); // required
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()
{
// This is the Address tab
QWidget *tab1_1 = new QWidget( mTabWidget );
diff --git a/kaddressbook/addresseeeditorwidget.h b/kaddressbook/addresseeeditorwidget.h
index eaf5b16..1703e2f 100644
--- a/kaddressbook/addresseeeditorwidget.h
+++ b/kaddressbook/addresseeeditorwidget.h
@@ -86,12 +86,14 @@ class AddresseeEditorWidget : public ExtensionWidget
bool dirty();
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 );
/**
@@ -147,13 +149,14 @@ class AddresseeEditorWidget : public ExtensionWidget
KSqueezedTextLabel *mFormattedNameLabel;
AddressEditWidget *mAddressEditWidget;
EmailEditWidget *mEmailWidget;
PhoneEditWidget *mPhoneEditWidget;
KLineEdit *mURLEdit;
KLineEdit *mIMAddressEdit;
- KLineEdit *mCategoryEdit;
+ QPushButton *mCategoryEdit;
+ QPopupMenu *mCatPopup;
SecrecyWidget *mSecrecyWidget;
KSqueezedTextLabel *mNameLabel;
// Tab2 and Tab2_2
KLineEdit *mDepartmentEdit;
KLineEdit *mOfficeEdit;