summaryrefslogtreecommitdiffabout
path: root/kaddressbook/kabcore.cpp
authorzautrix <zautrix>2004-10-29 23:13:22 (UTC)
committer zautrix <zautrix>2004-10-29 23:13:22 (UTC)
commitda80b510e4643fa3f78cf3f97af108e87097583d (patch) (side-by-side diff)
tree01c328362a6bf1898853ba26fd5d48eb5cff1e27 /kaddressbook/kabcore.cpp
parentaafa695508796e86e9f267633ea5e6965d876031 (diff)
downloadkdepimpi-da80b510e4643fa3f78cf3f97af108e87097583d.zip
kdepimpi-da80b510e4643fa3f78cf3f97af108e87097583d.tar.gz
kdepimpi-da80b510e4643fa3f78cf3f97af108e87097583d.tar.bz2
added better category handling to kapi
Diffstat (limited to 'kaddressbook/kabcore.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp54
1 files changed, 52 insertions, 2 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index e6bdde9..2c2f1a0 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1876,8 +1876,6 @@ void KABCore::initActions()
"set_personal" );
-
-
mActionCategories = new KAction( i18n( "Set Categories" ), 0, this,
SLOT( setCategories() ), actionCollection(),
"edit_set_categories" );
@@ -1885,6 +1883,16 @@ void KABCore::initActions()
mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this,
SLOT( removeVoice() ), actionCollection(),
"remove_voice" );
+
+ mActionSetCat= new KAction( i18n( "Set categories..." ), 0, this,
+ SLOT( setCat() ), actionCollection(),
+ "remove_voice" );
+
+
+ mActionAddCat= new KAction( i18n( "Add categories..." ), 0, this,
+ SLOT( addCat() ), actionCollection(),
+ "remove_voice" );
+
mActionImportOL = new KAction( i18n( "Import from Outlook..." ), 0, this,
SLOT( importFromOL() ), actionCollection(),
"import_OL" );
@@ -2014,6 +2022,8 @@ void KABCore::addActionsManually()
mActionSelectAll->plug( editMenu );
mActionRemoveVoice->plug( changeMenu );
+ mActionSetCat->plug( changeMenu );
+ mActionAddCat->plug( changeMenu );
// settings menu
//US special menuentry to configure the addressbook resources. On KDE
// you do that through the control center !!!
@@ -2096,6 +2106,46 @@ void KABCore::showLicence()
{
KApplication::showLicence();
}
+void KABCore::setCat()
+{
+ setCategories( true );
+}
+void KABCore::addCat()
+{
+ setCategories( false );
+}
+void KABCore::setCategories( bool removeOld )
+{
+ KPIM::CategorySelectDialog* csd = new KPIM::CategorySelectDialog( KABPrefs::instance(), 0 );
+ if (! csd->exec()) {
+ message( i18n("Setting categories cancelled") );
+ delete csd;
+ return;
+ }
+ message( i18n("Setting categories ... please wait!") );
+ QStringList catList = csd->selectedCategories();
+ delete csd;
+ catList.sort();
+ QStringList newList;
+ KABC::Addressee::List list = mViewManager->selectedAddressees();
+ KABC::Addressee::List::Iterator it;
+ for ( it = list.begin(); it != list.end(); ++it ) {
+ if ( removeOld ) {
+ (*it).setCategories( catList );
+ } else {
+ newList = (*it).categories();
+ int i;
+ for( i = 0; i< catList.count(); ++i ) {
+ if ( !newList.contains (catList[i]))
+ newList.append( catList[i] );
+ }
+ newList.sort();
+ (*it).setCategories( newList );
+ }
+ contactModified((*it) );
+ }
+ message( i18n("Setting categories completed!") );
+}
void KABCore::removeVoice()
{
if ( KMessageBox::questionYesNo( this, i18n("After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as \"other\".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?") ) == KMessageBox::No )