-rw-r--r-- | kaddressbook/kabcore.cpp | 87 |
1 files changed, 82 insertions, 5 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index e14e579..c6288fa 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -148,12 +148,13 @@ $Id$ | |||
148 | #include "kabprefs.h" | 148 | #include "kabprefs.h" |
149 | #include "xxportmanager.h" | 149 | #include "xxportmanager.h" |
150 | #include "incsearchwidget.h" | 150 | #include "incsearchwidget.h" |
151 | #include "jumpbuttonbar.h" | 151 | #include "jumpbuttonbar.h" |
152 | #include "extensionmanager.h" | 152 | #include "extensionmanager.h" |
153 | #include "addresseeconfig.h" | 153 | #include "addresseeconfig.h" |
154 | #include "nameeditdialog.h" | ||
154 | #include <kcmultidialog.h> | 155 | #include <kcmultidialog.h> |
155 | 156 | ||
156 | #ifdef _WIN32_ | 157 | #ifdef _WIN32_ |
157 | 158 | ||
158 | #include "kaimportoldialog.h" | 159 | #include "kaimportoldialog.h" |
159 | #else | 160 | #else |
@@ -193,12 +194,47 @@ class KABCatPrefs : public QDialog | |||
193 | 194 | ||
194 | bool addCat() { return addCatBut->isChecked(); } | 195 | bool addCat() { return addCatBut->isChecked(); } |
195 | private: | 196 | private: |
196 | QRadioButton* addCatBut; | 197 | QRadioButton* addCatBut; |
197 | }; | 198 | }; |
198 | 199 | ||
200 | class KABFormatPrefs : public QDialog | ||
201 | { | ||
202 | public: | ||
203 | KABFormatPrefs( QWidget *parent=0, const char *name=0 ) : | ||
204 | QDialog( parent, name, true ) | ||
205 | { | ||
206 | setCaption( i18n("Set formatted name") ); | ||
207 | QVBoxLayout* lay = new QVBoxLayout( this ); | ||
208 | lay->setSpacing( 3 ); | ||
209 | lay->setMargin( 3 ); | ||
210 | QLabel * lab = new QLabel( i18n("You can set the formatted name\nfor a list of contacts in one go."), this ); | ||
211 | lay->addWidget( lab ); | ||
212 | QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("Set formatted name to:"), this ); | ||
213 | lay->addWidget( format ); | ||
214 | format->setExclusive ( true ) ; | ||
215 | simple = new QRadioButton(i18n("Simple: James Bond"), format ); | ||
216 | full = new QRadioButton(i18n("Full: Mr. James 007 Bond I"), format ); | ||
217 | reverse = new QRadioButton(i18n("Reverse: Bond, James"), format ); | ||
218 | company = new QRadioButton(i18n("Organization: MI6"), format ); | ||
219 | simple->setChecked( true ); | ||
220 | setCompany = new QCheckBox(i18n("Set formatted name to\norganization, if name empty"), this); | ||
221 | lay->addWidget( setCompany ); | ||
222 | QPushButton * ok = new QPushButton( i18n("Select contact list"), this ); | ||
223 | lay->addWidget( ok ); | ||
224 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); | ||
225 | lay->addWidget( cancel ); | ||
226 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); | ||
227 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); | ||
228 | resize( 200, 200 ); | ||
229 | } | ||
230 | public: | ||
231 | QRadioButton* simple, *full, *reverse, *company; | ||
232 | QCheckBox* setCompany; | ||
233 | }; | ||
234 | |||
199 | 235 | ||
200 | 236 | ||
201 | class KAex2phonePrefs : public QDialog | 237 | class KAex2phonePrefs : public QDialog |
202 | { | 238 | { |
203 | public: | 239 | public: |
204 | KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) : | 240 | KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) : |
@@ -1143,13 +1179,18 @@ void KABCore::setModified( bool modified ) | |||
1143 | 1179 | ||
1144 | bool KABCore::modified() const | 1180 | bool KABCore::modified() const |
1145 | { | 1181 | { |
1146 | return mModified; | 1182 | return mModified; |
1147 | } | 1183 | } |
1148 | 1184 | ||
1149 | void KABCore::contactModified( const KABC::Addressee &addr ) | 1185 | void KABCore::contactModified( const KABC::Addressee &addr ) |
1186 | { | ||
1187 | addrModified( addr ); | ||
1188 | } | ||
1189 | |||
1190 | void KABCore::addrModified( const KABC::Addressee &addr ,bool updateDetails ) | ||
1150 | { | 1191 | { |
1151 | 1192 | ||
1152 | Command *command = 0; | 1193 | Command *command = 0; |
1153 | QString uid; | 1194 | QString uid; |
1154 | 1195 | ||
1155 | // check if it exists already | 1196 | // check if it exists already |
@@ -1160,13 +1201,14 @@ void KABCore::contactModified( const KABC::Addressee &addr ) | |||
1160 | command = new PwEditCommand( mAddressBook, origAddr, addr ); | 1201 | command = new PwEditCommand( mAddressBook, origAddr, addr ); |
1161 | uid = addr.uid(); | 1202 | uid = addr.uid(); |
1162 | } | 1203 | } |
1163 | 1204 | ||
1164 | UndoStack::instance()->push( command ); | 1205 | UndoStack::instance()->push( command ); |
1165 | RedoStack::instance()->clear(); | 1206 | RedoStack::instance()->clear(); |
1166 | mDetails->setAddressee( addr ); | 1207 | if ( updateDetails ) |
1208 | mDetails->setAddressee( addr ); | ||
1167 | setModified( true ); | 1209 | setModified( true ); |
1168 | } | 1210 | } |
1169 | 1211 | ||
1170 | void KABCore::newContact() | 1212 | void KABCore::newContact() |
1171 | { | 1213 | { |
1172 | 1214 | ||
@@ -1538,13 +1580,13 @@ void KABCore::openConfigDialog() | |||
1538 | KCMKabConfig* kabcfg = new KCMKabConfig( ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" ); | 1580 | KCMKabConfig* kabcfg = new KCMKabConfig( ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" ); |
1539 | ConfigureDialog->addModule(kabcfg ); | 1581 | ConfigureDialog->addModule(kabcfg ); |
1540 | KCMKdePimConfig* kdelibcfg = new KCMKdePimConfig( ConfigureDialog->getNewVBoxPage(i18n( "Global")) , "KCMKdeLibConfig" ); | 1582 | KCMKdePimConfig* kdelibcfg = new KCMKdePimConfig( ConfigureDialog->getNewVBoxPage(i18n( "Global")) , "KCMKdeLibConfig" ); |
1541 | ConfigureDialog->addModule(kdelibcfg ); | 1583 | ConfigureDialog->addModule(kdelibcfg ); |
1542 | 1584 | ||
1543 | connect( ConfigureDialog, SIGNAL( applyClicked() ), | 1585 | connect( ConfigureDialog, SIGNAL( applyClicked() ), |
1544 | this, SLOT( configurationChanged() ) ); | 1586 | this, SLOT( configurationChanged() ) ); |
1545 | connect( ConfigureDialog, SIGNAL( okClicked() ), | 1587 | connect( ConfigureDialog, SIGNAL( okClicked() ), |
1546 | this, SLOT( configurationChanged() ) ); | 1588 | this, SLOT( configurationChanged() ) ); |
1547 | saveSettings(); | 1589 | saveSettings(); |
1548 | #ifndef DESKTOP_VERSION | 1590 | #ifndef DESKTOP_VERSION |
1549 | ConfigureDialog->showMaximized(); | 1591 | ConfigureDialog->showMaximized(); |
1550 | #endif | 1592 | #endif |
@@ -1993,12 +2035,15 @@ void KABCore::initActions() | |||
1993 | SLOT( editCategories() ), actionCollection(), | 2035 | SLOT( editCategories() ), actionCollection(), |
1994 | "edit__categories" ); | 2036 | "edit__categories" ); |
1995 | 2037 | ||
1996 | mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this, | 2038 | mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this, |
1997 | SLOT( removeVoice() ), actionCollection(), | 2039 | SLOT( removeVoice() ), actionCollection(), |
1998 | "remove_voice" ); | 2040 | "remove_voice" ); |
2041 | mActionSetFormattedName = new KAction( i18n( "Set formatted name..." ), 0, this, | ||
2042 | SLOT( setFormattedName() ), actionCollection(), | ||
2043 | "set_formatted" ); | ||
1999 | 2044 | ||
2000 | mActionManageCategories= new KAction( i18n( "Manage new categories..." ), 0, this, | 2045 | mActionManageCategories= new KAction( i18n( "Manage new categories..." ), 0, this, |
2001 | SLOT( manageCategories() ), actionCollection(), | 2046 | SLOT( manageCategories() ), actionCollection(), |
2002 | "remove_voice" ); | 2047 | "remove_voice" ); |
2003 | 2048 | ||
2004 | 2049 | ||
@@ -2133,12 +2178,13 @@ void KABCore::addActionsManually() | |||
2133 | mActionCopy->plug( editMenu ); | 2178 | mActionCopy->plug( editMenu ); |
2134 | mActionPaste->plug( editMenu ); | 2179 | mActionPaste->plug( editMenu ); |
2135 | mActionDelete->plug( editMenu ); | 2180 | mActionDelete->plug( editMenu ); |
2136 | editMenu->insertSeparator(); | 2181 | editMenu->insertSeparator(); |
2137 | mActionSelectAll->plug( editMenu ); | 2182 | mActionSelectAll->plug( editMenu ); |
2138 | 2183 | ||
2184 | mActionSetFormattedName->plug( changeMenu ); | ||
2139 | mActionRemoveVoice->plug( changeMenu ); | 2185 | mActionRemoveVoice->plug( changeMenu ); |
2140 | // settings menu | 2186 | // settings menu |
2141 | //US special menuentry to configure the addressbook resources. On KDE | 2187 | //US special menuentry to configure the addressbook resources. On KDE |
2142 | // you do that through the control center !!! | 2188 | // you do that through the control center !!! |
2143 | mActionConfigResources->plug( settingsMenu ); | 2189 | mActionConfigResources->plug( settingsMenu ); |
2144 | settingsMenu->insertSeparator(); | 2190 | settingsMenu->insertSeparator(); |
@@ -2299,17 +2345,48 @@ void KABCore::removeVoice() | |||
2299 | list = dlg.contacts(); | 2345 | list = dlg.contacts(); |
2300 | else | 2346 | else |
2301 | return; | 2347 | return; |
2302 | KABC::Addressee::List::Iterator it; | 2348 | KABC::Addressee::List::Iterator it; |
2303 | for ( it = list.begin(); it != list.end(); ++it ) { | 2349 | for ( it = list.begin(); it != list.end(); ++it ) { |
2304 | if ( (*it).removeVoice() ) | 2350 | if ( (*it).removeVoice() ) |
2305 | contactModified((*it) ); | 2351 | addrModified((*it), false ); |
2306 | } | 2352 | } |
2307 | } | 2353 | } |
2308 | 2354 | ||
2309 | 2355 | void KABCore::setFormattedName() | |
2356 | { | ||
2357 | KABFormatPrefs setpref; | ||
2358 | if ( !setpref.exec() ) { | ||
2359 | return; | ||
2360 | } | ||
2361 | KABC::Addressee::List list; | ||
2362 | XXPortSelectDialog dlg( this, false, this ); | ||
2363 | if ( dlg.exec() ) | ||
2364 | list = dlg.contacts(); | ||
2365 | else | ||
2366 | return; | ||
2367 | KABC::Addressee::List::Iterator it; | ||
2368 | for ( it = list.begin(); it != list.end(); ++it ) { | ||
2369 | QString fName; | ||
2370 | if ( setpref.simple->isChecked() ) | ||
2371 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::SimpleName ); | ||
2372 | else if ( setpref.full->isChecked() ) | ||
2373 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::FullName ); | ||
2374 | else if ( setpref.reverse->isChecked() ) | ||
2375 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::ReverseName ); | ||
2376 | else | ||
2377 | fName = (*it).organization(); | ||
2378 | if ( setpref.setCompany->isChecked() ) | ||
2379 | if ( fName.isEmpty() || fName =="," ) | ||
2380 | fName = (*it).organization(); | ||
2381 | (*it).setFormattedName( fName ); | ||
2382 | addrModified((*it),false ); | ||
2383 | } | ||
2384 | Addressee add; | ||
2385 | mDetails->setAddressee( add ); | ||
2386 | } | ||
2310 | 2387 | ||
2311 | void KABCore::clipboardDataChanged() | 2388 | void KABCore::clipboardDataChanged() |
2312 | { | 2389 | { |
2313 | 2390 | ||
2314 | if ( mReadWrite ) | 2391 | if ( mReadWrite ) |
2315 | mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); | 2392 | mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); |