summaryrefslogtreecommitdiffabout
path: root/kaddressbook
authorzautrix <zautrix>2005-08-17 14:48:16 (UTC)
committer zautrix <zautrix>2005-08-17 14:48:16 (UTC)
commit9e6d1f7f45ef1444dc6ee96347a2dbd67a0d79dd (patch) (unidiff)
tree4db3dfc9b67b56f415a9aab4306cc6375c6e7310 /kaddressbook
parentcb4e02944327194bc6066c4ec96826afc0ea178f (diff)
downloadkdepimpi-9e6d1f7f45ef1444dc6ee96347a2dbd67a0d79dd.zip
kdepimpi-9e6d1f7f45ef1444dc6ee96347a2dbd67a0d79dd.tar.gz
kdepimpi-9e6d1f7f45ef1444dc6ee96347a2dbd67a0d79dd.tar.bz2
kapi dlete conf
Diffstat (limited to 'kaddressbook') (more/less context) (show whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp20
-rw-r--r--kaddressbook/kabprefs.cpp1
-rw-r--r--kaddressbook/kabprefs.h1
-rw-r--r--kaddressbook/kcmconfigs/kabconfigwidget.cpp6
-rw-r--r--kaddressbook/kcmconfigs/kabconfigwidget.h1
5 files changed, 27 insertions, 2 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index d5de9cb..b9830b1 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1007,49 +1007,65 @@ void KABCore::beamDone( Ir *ir )
1007 1007
1008 1008
1009void KABCore::browse( const QString& url ) 1009void KABCore::browse( const QString& url )
1010{ 1010{
1011#ifndef KAB_EMBEDDED 1011#ifndef KAB_EMBEDDED
1012 kapp->invokeBrowser( url ); 1012 kapp->invokeBrowser( url );
1013#else //KAB_EMBEDDED 1013#else //KAB_EMBEDDED
1014 qDebug("KABCore::browse must be fixed"); 1014 qDebug("KABCore::browse must be fixed");
1015#endif //KAB_EMBEDDED 1015#endif //KAB_EMBEDDED
1016} 1016}
1017 1017
1018void KABCore::selectAllContacts() 1018void KABCore::selectAllContacts()
1019{ 1019{
1020 mViewManager->setSelected( QString::null, true ); 1020 mViewManager->setSelected( QString::null, true );
1021} 1021}
1022 1022
1023void KABCore::deleteContacts() 1023void KABCore::deleteContacts()
1024{ 1024{
1025 QStringList uidList = mViewManager->selectedUids(); 1025 QStringList uidList = mViewManager->selectedUids();
1026 deleteContacts( uidList ); 1026 deleteContacts( uidList );
1027} 1027}
1028 1028
1029void KABCore::deleteContacts( const QStringList &uids ) 1029void KABCore::deleteContacts( const QStringList &uids )
1030{ 1030{
1031
1031 if ( uids.count() > 0 ) { 1032 if ( uids.count() > 0 ) {
1033
1034 if ( KABPrefs::instance()->mAskForDelete ) {
1035 int count = uids.count();
1036 if ( count > 5 ) count = 5;
1037 QString cNames;
1038 int i;
1039 for ( i = 0; i < count ; ++i ) {
1040 cNames += KGlobal::formatMessage( mAddressBook->findByUid( uids[i] ).realName() ,0) + "\n";
1041 }
1042 if ( uids.count() > 5 )
1043 cNames += i18n("...and %1 more\ncontact(s) selected").arg( uids.count() - 5 );
1044 QString text = i18n( "Do you really\nwant to delete the\nsetected contact(s)?\n\n" ) + cNames ;
1045 if ( KMessageBox::questionYesNo( this, text ) != KMessageBox::Yes )
1046 return;
1047 }
1032 PwDeleteCommand *command = new PwDeleteCommand( mAddressBook, uids ); 1048 PwDeleteCommand *command = new PwDeleteCommand( mAddressBook, uids );
1033 UndoStack::instance()->push( command ); 1049 UndoStack::instance()->push( command );
1034 RedoStack::instance()->clear(); 1050 RedoStack::instance()->clear();
1035 1051
1036 // now if we deleted anything, refresh 1052 // now if we deleted anything, refresh
1037 setContactSelected( QString::null ); 1053 setContactSelected( QString::null );
1038 setModified( true ); 1054 setModified( true );
1039 } 1055 }
1040} 1056}
1041 1057
1042void KABCore::copyContacts() 1058void KABCore::copyContacts()
1043{ 1059{
1044 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 1060 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
1045 1061
1046 QString clipText = AddresseeUtil::addresseesToClipboard( addrList ); 1062 QString clipText = AddresseeUtil::addresseesToClipboard( addrList );
1047 1063
1048 kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl; 1064 kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl;
1049 1065
1050 QClipboard *cb = QApplication::clipboard(); 1066 QClipboard *cb = QApplication::clipboard();
1051 cb->setText( clipText ); 1067 cb->setText( clipText );
1052} 1068}
1053 1069
1054void KABCore::cutContacts() 1070void KABCore::cutContacts()
1055{ 1071{
@@ -1077,49 +1093,49 @@ void KABCore::pasteContacts()
1077void KABCore::pasteContacts( KABC::Addressee::List &list ) 1093void KABCore::pasteContacts( KABC::Addressee::List &list )
1078{ 1094{
1079 KABC::Resource *resource = requestResource( this ); 1095 KABC::Resource *resource = requestResource( this );
1080 KABC::Addressee::List::Iterator it; 1096 KABC::Addressee::List::Iterator it;
1081 for ( it = list.begin(); it != list.end(); ++it ) 1097 for ( it = list.begin(); it != list.end(); ++it )
1082 (*it).setResource( resource ); 1098 (*it).setResource( resource );
1083 1099
1084 PwPasteCommand *command = new PwPasteCommand( this, list ); 1100 PwPasteCommand *command = new PwPasteCommand( this, list );
1085 UndoStack::instance()->push( command ); 1101 UndoStack::instance()->push( command );
1086 RedoStack::instance()->clear(); 1102 RedoStack::instance()->clear();
1087 1103
1088 setModified( true ); 1104 setModified( true );
1089} 1105}
1090 1106
1091void KABCore::setWhoAmI() 1107void KABCore::setWhoAmI()
1092{ 1108{
1093 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 1109 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
1094 1110
1095 if ( addrList.count() > 1 ) { 1111 if ( addrList.count() > 1 ) {
1096 KMessageBox::sorry( this, i18n( "Please select only one contact." ) ); 1112 KMessageBox::sorry( this, i18n( "Please select only one contact." ) );
1097 return; 1113 return;
1098 } 1114 }
1099 1115
1100 QString text( i18n( "<qt>Do you really want to use <b>%1</b> as your new personal contact?</qt>" ) ); 1116 QString text( i18n( "<qt>Do you really want to use <b>%1</b> as your new personal contact?</qt>" ) );
1101 if ( KMessageBox::questionYesNo( this, text.arg( addrList[ 0 ].assembledName() ) ) == KMessageBox::Yes ) 1117 if ( KMessageBox::questionYesNo( this, text.arg( addrList[ 0 ].realName() ) ) == KMessageBox::Yes )
1102 static_cast<KABC::StdAddressBook*>( KABC::StdAddressBook::self() )->setWhoAmI( addrList[ 0 ] ); 1118 static_cast<KABC::StdAddressBook*>( KABC::StdAddressBook::self() )->setWhoAmI( addrList[ 0 ] );
1103} 1119}
1104void KABCore::editCategories() 1120void KABCore::editCategories()
1105{ 1121{
1106 KPIM::CategoryEditDialog dlg ( KABPrefs::instance(), this, "", true ); 1122 KPIM::CategoryEditDialog dlg ( KABPrefs::instance(), this, "", true );
1107 dlg.exec(); 1123 dlg.exec();
1108} 1124}
1109void KABCore::setCategories() 1125void KABCore::setCategories()
1110{ 1126{
1111 1127
1112 QStringList uids; 1128 QStringList uids;
1113 XXPortSelectDialog dlgx( this, false, this ); 1129 XXPortSelectDialog dlgx( this, false, this );
1114 if ( dlgx.exec() ) 1130 if ( dlgx.exec() )
1115 uids = dlgx.uids(); 1131 uids = dlgx.uids();
1116 else 1132 else
1117 return; 1133 return;
1118 if ( uids.isEmpty() ) 1134 if ( uids.isEmpty() )
1119 return; 1135 return;
1120 // qDebug("count %d ", uids.count()); 1136 // qDebug("count %d ", uids.count());
1121 1137
1122 1138
1123 KPIM::CategorySelectDialog dlg( KABPrefs::instance(), this, "", true ); 1139 KPIM::CategorySelectDialog dlg( KABPrefs::instance(), this, "", true );
1124 if ( !dlg.exec() ) { 1140 if ( !dlg.exec() ) {
1125 message( i18n("Setting categories cancelled") ); 1141 message( i18n("Setting categories cancelled") );
@@ -2645,49 +2661,49 @@ void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString
2645 QString formattedbday; 2661 QString formattedbday;
2646 2662
2647 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) 2663 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it )
2648 { 2664 {
2649 if ( ! bar.isVisible() ) 2665 if ( ! bar.isVisible() )
2650 return; 2666 return;
2651 bar.setProgress( count++ ); 2667 bar.setProgress( count++ );
2652 qApp->processEvents(); 2668 qApp->processEvents();
2653 bday = (*it).birthday().date(); 2669 bday = (*it).birthday().date();
2654 anni = (*it).custom("KADDRESSBOOK", "X-Anniversary" ); 2670 anni = (*it).custom("KADDRESSBOOK", "X-Anniversary" );
2655 2671
2656 if ( bday.isValid() || !anni.isEmpty()) 2672 if ( bday.isValid() || !anni.isEmpty())
2657 { 2673 {
2658 if (bday.isValid()) 2674 if (bday.isValid())
2659 formattedbday = KGlobal::locale()->formatDate(bday, true, KLocale::ISODate); 2675 formattedbday = KGlobal::locale()->formatDate(bday, true, KLocale::ISODate);
2660 else 2676 else
2661 formattedbday = "NOTVALID"; 2677 formattedbday = "NOTVALID";
2662 if (anni.isEmpty()) 2678 if (anni.isEmpty())
2663 anni = "INVALID"; 2679 anni = "INVALID";
2664 2680
2665 birthdayList.append(formattedbday); 2681 birthdayList.append(formattedbday);
2666 anniversaryList.append(anni); //should be ISODate 2682 anniversaryList.append(anni); //should be ISODate
2667 realNameList.append((*it).realName()); 2683 realNameList.append((*it).realName());
2668 preferredEmailList.append((*it).preferredEmail()); 2684 preferredEmailList.append((*it).preferredEmail());
2669 assembledNameList.append((*it).assembledName()); 2685 assembledNameList.append((*it).realName());
2670 uidList.append((*it).uid()); 2686 uidList.append((*it).uid());
2671 2687
2672 //qDebug("found birthday in KA/Pi: %s,%s,%s,%s: %s, %s", (*it).realName().latin1(), (*it).preferredEmail().latin1(), (*it).assembledName().latin1(), (*it).uid().latin1(), formattedbday.latin1(), anni.latin1() ); 2688 //qDebug("found birthday in KA/Pi: %s,%s,%s,%s: %s, %s", (*it).realName().latin1(), (*it).preferredEmail().latin1(), (*it).assembledName().latin1(), (*it).uid().latin1(), formattedbday.latin1(), anni.latin1() );
2673 } 2689 }
2674 } 2690 }
2675 2691
2676 bool res = ExternalAppHandler::instance()->returnBirthdayListFromKAPI(sourceChannel, uid, birthdayList, anniversaryList, realNameList, preferredEmailList, assembledNameList, uidList); 2692 bool res = ExternalAppHandler::instance()->returnBirthdayListFromKAPI(sourceChannel, uid, birthdayList, anniversaryList, realNameList, preferredEmailList, assembledNameList, uidList);
2677 2693
2678} 2694}
2679 2695
2680/* this method will be called through the QCop interface from other apps to show details of a contact. 2696/* this method will be called through the QCop interface from other apps to show details of a contact.
2681 */ 2697 */
2682void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid) 2698void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid)
2683{ 2699{
2684 //qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1()); 2700 //qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1());
2685 2701
2686 QString foundUid = QString::null; 2702 QString foundUid = QString::null;
2687 if ( ! uid.isEmpty() ) { 2703 if ( ! uid.isEmpty() ) {
2688 Addressee adrr = mAddressBook->findByUid( uid ); 2704 Addressee adrr = mAddressBook->findByUid( uid );
2689 if ( !adrr.isEmpty() ) { 2705 if ( !adrr.isEmpty() ) {
2690 foundUid = uid; 2706 foundUid = uid;
2691 } 2707 }
2692 if ( email == "sendbacklist" ) { 2708 if ( email == "sendbacklist" ) {
2693 //qDebug("ssssssssssssssssssssssend "); 2709 //qDebug("ssssssssssssssssssssssend ");
diff --git a/kaddressbook/kabprefs.cpp b/kaddressbook/kabprefs.cpp
index ea254b7..42d541b 100644
--- a/kaddressbook/kabprefs.cpp
+++ b/kaddressbook/kabprefs.cpp
@@ -35,48 +35,49 @@
35#include <klocale.h> 35#include <klocale.h>
36#include <kstaticdeleter.h> 36#include <kstaticdeleter.h>
37#include <kglobalsettings.h> 37#include <kglobalsettings.h>
38//US#include <kdebug.h> // defines kdDebug() 38//US#include <kdebug.h> // defines kdDebug()
39 39
40#include "kabprefs.h" 40#include "kabprefs.h"
41 41
42#ifdef DESKTOP_VERSION 42#ifdef DESKTOP_VERSION
43#include <qapplication.h> 43#include <qapplication.h>
44#endif 44#endif
45 45
46KABPrefs *KABPrefs::sInstance = 0; 46KABPrefs *KABPrefs::sInstance = 0;
47static KStaticDeleter<KABPrefs> staticDeleterAB; 47static KStaticDeleter<KABPrefs> staticDeleterAB;
48 48
49KABPrefs::KABPrefs() 49KABPrefs::KABPrefs()
50 : KPimPrefs("kaddressbookrc") 50 : KPimPrefs("kaddressbookrc")
51{ 51{
52 KPrefs::setCurrentGroup( "Views" ); 52 KPrefs::setCurrentGroup( "Views" );
53 addItemBool( "HonorSingleClick", &mHonorSingleClick, false ); 53 addItemBool( "HonorSingleClick", &mHonorSingleClick, false );
54 54
55 KPrefs::setCurrentGroup( "General" ); 55 KPrefs::setCurrentGroup( "General" );
56 addItemBool( "AutomaticNameParsing", &mAutomaticNameParsing, true ); 56 addItemBool( "AutomaticNameParsing", &mAutomaticNameParsing, true );
57 addItemInt( "CurrentIncSearchField", &mCurrentIncSearchField, 0 ); 57 addItemInt( "CurrentIncSearchField", &mCurrentIncSearchField, 0 );
58#ifdef KAB_EMBEDDED 58#ifdef KAB_EMBEDDED
59 addItemBool("AskForDelete",&mAskForDelete,true);
59 addItemBool("AskForQuit",&mAskForQuit,true); 60 addItemBool("AskForQuit",&mAskForQuit,true);
60 addItemBool("ToolBarHor",&mToolBarHor, true ); 61 addItemBool("ToolBarHor",&mToolBarHor, true );
61 addItemBool("ToolBarUp",&mToolBarUp, false ); 62 addItemBool("ToolBarUp",&mToolBarUp, false );
62 addItemBool("SearchWithReturn",&mSearchWithReturn, false ); 63 addItemBool("SearchWithReturn",&mSearchWithReturn, false );
63 addItemBool("AutoSearchWithWildcard",&mAutoSearchWithWildcard, false ); 64 addItemBool("AutoSearchWithWildcard",&mAutoSearchWithWildcard, false );
64 addItemBool("HideSearchOnSwitch",&mHideSearchOnSwitch, false ); 65 addItemBool("HideSearchOnSwitch",&mHideSearchOnSwitch, false );
65 addItemFont("DetailsFont",&mDetailsFont,KGlobalSettings::generalFont()); 66 addItemFont("DetailsFont",&mDetailsFont,KGlobalSettings::generalFont());
66 67
67 68
68#endif //KAB_EMBEDDED 69#endif //KAB_EMBEDDED
69 70
70 KPrefs::setCurrentGroup( "MainWindow" ); 71 KPrefs::setCurrentGroup( "MainWindow" );
71 bool m_visible = false; 72 bool m_visible = false;
72#ifdef DESKTOP_VERSION 73#ifdef DESKTOP_VERSION
73 m_visible = true; 74 m_visible = true;
74#endif 75#endif
75 addItemBool( "FullMenuBarVisible", &mFullMenuBarVisible, m_visible ); 76 addItemBool( "FullMenuBarVisible", &mFullMenuBarVisible, m_visible );
76 addItemBool( "JumpButtonBarVisible", &mJumpButtonBarVisible, false ); 77 addItemBool( "JumpButtonBarVisible", &mJumpButtonBarVisible, false );
77 addItemBool( "DetailsPageVisible", &mDetailsPageVisible, true ); 78 addItemBool( "DetailsPageVisible", &mDetailsPageVisible, true );
78 addItemIntList( "ExtensionsSplitter", &mExtensionsSplitter ); 79 addItemIntList( "ExtensionsSplitter", &mExtensionsSplitter );
79 addItemIntList( "DetailsSplitter", &mDetailsSplitter ); 80 addItemIntList( "DetailsSplitter", &mDetailsSplitter );
80 addItemBool( "MultipleViewsAtOnce", &mMultipleViewsAtOnce, true ); 81 addItemBool( "MultipleViewsAtOnce", &mMultipleViewsAtOnce, true );
81 82
82 83
diff --git a/kaddressbook/kabprefs.h b/kaddressbook/kabprefs.h
index 2bb173d..ddbc0c0 100644
--- a/kaddressbook/kabprefs.h
+++ b/kaddressbook/kabprefs.h
@@ -51,48 +51,49 @@ class KABPrefs : public KPimPrefs
51 bool mToolBarUp; 51 bool mToolBarUp;
52 bool mAskForQuit; 52 bool mAskForQuit;
53 53
54 54
55 /** Set preferences to default values */ 55 /** Set preferences to default values */
56// void usrSetDefaults(); 56// void usrSetDefaults();
57 57
58 /** Read preferences from config file */ 58 /** Read preferences from config file */
59// void usrReadConfig(); 59// void usrReadConfig();
60 60
61 /** Write preferences to config file */ 61 /** Write preferences to config file */
62// void usrWriteConfig(); 62// void usrWriteConfig();
63#endif //KAB_EMBEDDED 63#endif //KAB_EMBEDDED
64 void usrReadConfig(); 64 void usrReadConfig();
65 65
66 66
67 // GUI 67 // GUI
68 bool mFullMenuBarVisible; 68 bool mFullMenuBarVisible;
69 bool mJumpButtonBarVisible; 69 bool mJumpButtonBarVisible;
70 bool mDetailsPageVisible; 70 bool mDetailsPageVisible;
71 bool mMultipleViewsAtOnce; 71 bool mMultipleViewsAtOnce;
72 bool mSearchWithReturn; 72 bool mSearchWithReturn;
73 bool mAutoSearchWithWildcard; 73 bool mAutoSearchWithWildcard;
74 bool mHideSearchOnSwitch; 74 bool mHideSearchOnSwitch;
75 bool mAskForDelete;
75 QValueList<int> mExtensionsSplitter; 76 QValueList<int> mExtensionsSplitter;
76 QValueList<int> mDetailsSplitter; 77 QValueList<int> mDetailsSplitter;
77 78
78 // Extensions stuff 79 // Extensions stuff
79 int mCurrentExtension; 80 int mCurrentExtension;
80 QStringList mActiveExtensions; 81 QStringList mActiveExtensions;
81 82
82 // Views stuff 83 // Views stuff
83 QString mCurrentView; 84 QString mCurrentView;
84 QStringList mViewNames; 85 QStringList mViewNames;
85 86
86 // Filter 87 // Filter
87 int mCurrentFilter; 88 int mCurrentFilter;
88 89
89 void setCategoryDefaults(); 90 void setCategoryDefaults();
90 QFont mDetailsFont; 91 QFont mDetailsFont;
91 92
92 private: 93 private:
93 KABPrefs(); 94 KABPrefs();
94 95
95 static KABPrefs *sInstance; 96 static KABPrefs *sInstance;
96}; 97};
97 98
98#endif 99#endif
diff --git a/kaddressbook/kcmconfigs/kabconfigwidget.cpp b/kaddressbook/kcmconfigs/kabconfigwidget.cpp
index 1b4652a..9e4db74 100644
--- a/kaddressbook/kcmconfigs/kabconfigwidget.cpp
+++ b/kaddressbook/kcmconfigs/kabconfigwidget.cpp
@@ -121,142 +121,148 @@ KABConfigWidget::KABConfigWidget( KABPrefs* prefs, QWidget *parent, const char *
121 boxLayout->setAlignment( Qt::AlignTop ); 121 boxLayout->setAlignment( Qt::AlignTop );
122 boxLayout->setMargin(KDialog::marginHintSmall() ); 122 boxLayout->setMargin(KDialog::marginHintSmall() );
123 boxLayout->setSpacing( KDialog::spacingHintSmall() ); 123 boxLayout->setSpacing( KDialog::spacingHintSmall() );
124 mMenuBarBox = new QCheckBox( i18n( "Full Menu bar (restart)" ), vBox, "mremenuturn" ); 124 mMenuBarBox = new QCheckBox( i18n( "Full Menu bar (restart)" ), vBox, "mremenuturn" );
125 boxLayout->addWidget( mMenuBarBox ); 125 boxLayout->addWidget( mMenuBarBox );
126 mSearchReturnBox = new QCheckBox( i18n( "Search only after <return> key pressed" ), vBox, "mreturn" ); 126 mSearchReturnBox = new QCheckBox( i18n( "Search only after <return> key pressed" ), vBox, "mreturn" );
127 boxLayout->addWidget( mSearchReturnBox ); 127 boxLayout->addWidget( mSearchReturnBox );
128 mAutoSearchWithWildcardBox = new QCheckBox( i18n( "Search with '*' prefix (wildcard)" ), vBox, "mwildcard" ); 128 mAutoSearchWithWildcardBox = new QCheckBox( i18n( "Search with '*' prefix (wildcard)" ), vBox, "mwildcard" );
129 boxLayout->addWidget( mAutoSearchWithWildcardBox); 129 boxLayout->addWidget( mAutoSearchWithWildcardBox);
130 mHideSearchOnSwitchBox = new QCheckBox( i18n( "Shrink searchfield in portrait view" ), vBox, "mswitch" ); 130 mHideSearchOnSwitchBox = new QCheckBox( i18n( "Shrink searchfield in portrait view" ), vBox, "mswitch" );
131 boxLayout->addWidget( mHideSearchOnSwitchBox ); 131 boxLayout->addWidget( mHideSearchOnSwitchBox );
132 132
133#ifdef DESKTOP_VERSION 133#ifdef DESKTOP_VERSION
134 mHideSearchOnSwitchBox->hide(); 134 mHideSearchOnSwitchBox->hide();
135#endif 135#endif
136 mViewsSingleClickBox = new QCheckBox( i18n( "Show edit dialog on single click" ), vBox, "msingle" ); 136 mViewsSingleClickBox = new QCheckBox( i18n( "Show edit dialog on single click" ), vBox, "msingle" );
137 boxLayout->addWidget( mViewsSingleClickBox ); 137 boxLayout->addWidget( mViewsSingleClickBox );
138 138
139 mNameParsing = new QCheckBox( i18n( "Automatic name parsing for new contacts" ), vBox, "mparse" ); 139 mNameParsing = new QCheckBox( i18n( "Automatic name parsing for new contacts" ), vBox, "mparse" );
140 boxLayout->addWidget( mNameParsing ); 140 boxLayout->addWidget( mNameParsing );
141 141
142 mMultipleViewsAtOnce = new QCheckBox( i18n( "Display List and Details at once (restart)" ), vBox, "mdisplay" ); 142 mMultipleViewsAtOnce = new QCheckBox( i18n( "Display List and Details at once (restart)" ), vBox, "mdisplay" );
143 boxLayout->addWidget( mMultipleViewsAtOnce ); 143 boxLayout->addWidget( mMultipleViewsAtOnce );
144 144
145 mAskForDelete = new QCheckBox( i18n( "Ask before delete contact" ), vBox, "mdel" );
146 boxLayout->addWidget( mAskForDelete );
147
145 mAskForQuit = new QCheckBox( i18n( "Show exit confirmation" ), vBox, "mquit" ); 148 mAskForQuit = new QCheckBox( i18n( "Show exit confirmation" ), vBox, "mquit" );
146 boxLayout->addWidget( mAskForQuit ); 149 boxLayout->addWidget( mAskForQuit );
147 150
148 layout->addWidget( vBox ); 151 layout->addWidget( vBox );
149 152
150 tabWidget->addTab( generalPage, i18n( "General" ) ); 153 tabWidget->addTab( generalPage, i18n( "General" ) );
151 154
152 // Extension page 155 // Extension page
153 QWidget *extensionPage = new QWidget( this ); 156 QWidget *extensionPage = new QWidget( this );
154 QVBoxLayout *extensionLayout = new QVBoxLayout( extensionPage, KDialog::marginHintSmall(), 157 QVBoxLayout *extensionLayout = new QVBoxLayout( extensionPage, KDialog::marginHintSmall(),
155 KDialog::spacingHintSmall() ); 158 KDialog::spacingHintSmall() );
156 159
157 //extensions groupbox 160 //extensions groupbox
158 161
159 QGroupBox* groupBox = new QGroupBox( 0, Qt::Vertical, i18n( "Extensions (restart)" ), extensionPage ); 162 QGroupBox* groupBox = new QGroupBox( 0, Qt::Vertical, i18n( "Extensions (restart)" ), extensionPage );
160 boxLayout = new QVBoxLayout( groupBox->layout() ); 163 boxLayout = new QVBoxLayout( groupBox->layout() );
161 boxLayout->setAlignment( Qt::AlignTop ); 164 boxLayout->setAlignment( Qt::AlignTop );
162 boxLayout->setMargin(KDialog::marginHintSmall()); 165 boxLayout->setMargin(KDialog::marginHintSmall());
163 boxLayout->setSpacing(KDialog::spacingHintSmall()); 166 boxLayout->setSpacing(KDialog::spacingHintSmall());
164 groupBox->layout()->setMargin(1) ; 167 groupBox->layout()->setMargin(1) ;
165 groupBox->layout()->setSpacing(0); 168 groupBox->layout()->setSpacing(0);
166 mExtensionView = new KListView( groupBox ); 169 mExtensionView = new KListView( groupBox );
167 mExtensionView->setAllColumnsShowFocus( true ); 170 mExtensionView->setAllColumnsShowFocus( true );
168 mExtensionView->addColumn( i18n( "Name" ) ); 171 mExtensionView->addColumn( i18n( "Name" ) );
169 mExtensionView->addColumn( i18n( "Description" ) ); 172 mExtensionView->addColumn( i18n( "Description" ) );
170 //mExtensionView->setMaximumHeight(80); 173 //mExtensionView->setMaximumHeight(80);
171 174
172 boxLayout->addWidget( mExtensionView ); 175 boxLayout->addWidget( mExtensionView );
173 176
174 mConfigureButton = new QPushButton( i18n( "Configure..." ), groupBox ); 177 mConfigureButton = new QPushButton( i18n( "Configure..." ), groupBox );
175 mConfigureButton->setEnabled( false ); 178 mConfigureButton->setEnabled( false );
176 boxLayout->addWidget( mConfigureButton ); 179 boxLayout->addWidget( mConfigureButton );
177 180
178 extensionLayout->addWidget( groupBox ); 181 extensionLayout->addWidget( groupBox );
179 182
180 connect( mMenuBarBox, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) ); 183 connect( mMenuBarBox, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) );
181 connect( mNameParsing, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) ); 184 connect( mNameParsing, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) );
182 connect( mViewsSingleClickBox, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) ); 185 connect( mViewsSingleClickBox, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) );
183 connect( mSearchReturnBox, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) ); 186 connect( mSearchReturnBox, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) );
184 connect( mAutoSearchWithWildcardBox, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) ); 187 connect( mAutoSearchWithWildcardBox, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) );
185 connect( mHideSearchOnSwitchBox, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) ); 188 connect( mHideSearchOnSwitchBox, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) );
186 connect( mMultipleViewsAtOnce, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) ); 189 connect( mMultipleViewsAtOnce, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) );
187 connect( mAskForQuit, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) ); 190 connect( mAskForQuit, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) );
191 connect( mAskForDelete, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) );
188 connect( mExtensionView, SIGNAL( selectionChanged( QListViewItem* ) ), 192 connect( mExtensionView, SIGNAL( selectionChanged( QListViewItem* ) ),
189 SLOT( selectionChanged( QListViewItem* ) ) ); 193 SLOT( selectionChanged( QListViewItem* ) ) );
190 connect( mExtensionView, SIGNAL( clicked( QListViewItem* ) ), 194 connect( mExtensionView, SIGNAL( clicked( QListViewItem* ) ),
191 SLOT( itemClicked( QListViewItem* ) ) ); 195 SLOT( itemClicked( QListViewItem* ) ) );
192 connect( mConfigureButton, SIGNAL( clicked() ), 196 connect( mConfigureButton, SIGNAL( clicked() ),
193 SLOT( configureExtension() ) ); 197 SLOT( configureExtension() ) );
194 198
195 tabWidget->addTab( extensionPage, i18n( "Extensions" ) ); 199 tabWidget->addTab( extensionPage, i18n( "Extensions" ) );
196 200
197 // Addressee page 201 // Addressee page
198 mAddresseeWidget = new AddresseeWidget( this ); 202 mAddresseeWidget = new AddresseeWidget( this );
199 tabWidget->addTab( mAddresseeWidget, i18n( "Contact" ) ); 203 tabWidget->addTab( mAddresseeWidget, i18n( "Contact" ) );
200 connect( mAddresseeWidget, SIGNAL( modified() ), SLOT( modified() ) ); 204 connect( mAddresseeWidget, SIGNAL( modified() ), SLOT( modified() ) );
201 205
202} 206}
203 207
204void KABConfigWidget::usrReadConfig() 208void KABConfigWidget::usrReadConfig()
205{ 209{
206 KABPrefs* prefs = KABPrefs::instance(); 210 KABPrefs* prefs = KABPrefs::instance();
207 211
208 bool blocked = signalsBlocked(); 212 bool blocked = signalsBlocked();
209 blockSignals( true ); 213 blockSignals( true );
210 mMenuBarBox->setChecked( prefs->mFullMenuBarVisible); 214 mMenuBarBox->setChecked( prefs->mFullMenuBarVisible);
211 mNameParsing->setChecked( prefs->mAutomaticNameParsing ); 215 mNameParsing->setChecked( prefs->mAutomaticNameParsing );
212 mViewsSingleClickBox->setChecked( prefs->mHonorSingleClick ); 216 mViewsSingleClickBox->setChecked( prefs->mHonorSingleClick );
213 mSearchReturnBox->setChecked( prefs->mSearchWithReturn ); 217 mSearchReturnBox->setChecked( prefs->mSearchWithReturn );
214 mAutoSearchWithWildcardBox->setChecked( prefs->mAutoSearchWithWildcard ); 218 mAutoSearchWithWildcardBox->setChecked( prefs->mAutoSearchWithWildcard );
215 mHideSearchOnSwitchBox->setChecked( prefs->mHideSearchOnSwitch ); 219 mHideSearchOnSwitchBox->setChecked( prefs->mHideSearchOnSwitch );
216 mMultipleViewsAtOnce->setChecked( prefs->mMultipleViewsAtOnce ); 220 mMultipleViewsAtOnce->setChecked( prefs->mMultipleViewsAtOnce );
217 mAskForQuit->setChecked( prefs->mAskForQuit ); 221 mAskForQuit->setChecked( prefs->mAskForQuit );
222 mAskForDelete->setChecked( prefs->mAskForDelete );
218 223
219 mAddresseeWidget->restoreSettings(); 224 mAddresseeWidget->restoreSettings();
220 225
221 restoreExtensionSettings(); 226 restoreExtensionSettings();
222 227
223 blockSignals( blocked ); 228 blockSignals( blocked );
224 229
225} 230}
226 231
227void KABConfigWidget::usrWriteConfig() 232void KABConfigWidget::usrWriteConfig()
228{ 233{
229 KABPrefs* prefs = KABPrefs::instance(); 234 KABPrefs* prefs = KABPrefs::instance();
230 prefs->mFullMenuBarVisible = mMenuBarBox->isChecked(); 235 prefs->mFullMenuBarVisible = mMenuBarBox->isChecked();
231 prefs->mAutomaticNameParsing = mNameParsing->isChecked(); 236 prefs->mAutomaticNameParsing = mNameParsing->isChecked();
232 prefs->mHonorSingleClick = mViewsSingleClickBox->isChecked(); 237 prefs->mHonorSingleClick = mViewsSingleClickBox->isChecked();
233 prefs->mSearchWithReturn = mSearchReturnBox->isChecked(); 238 prefs->mSearchWithReturn = mSearchReturnBox->isChecked();
234 prefs->mAutoSearchWithWildcard = mAutoSearchWithWildcardBox->isChecked(); 239 prefs->mAutoSearchWithWildcard = mAutoSearchWithWildcardBox->isChecked();
235 prefs->mHideSearchOnSwitch = mHideSearchOnSwitchBox->isChecked(); 240 prefs->mHideSearchOnSwitch = mHideSearchOnSwitchBox->isChecked();
236 241
237 prefs->mMultipleViewsAtOnce = mMultipleViewsAtOnce->isChecked(); 242 prefs->mMultipleViewsAtOnce = mMultipleViewsAtOnce->isChecked();
238 prefs->mAskForQuit = mAskForQuit->isChecked(); 243 prefs->mAskForQuit = mAskForQuit->isChecked();
244 prefs->mAskForDelete = mAskForDelete->isChecked();
239 245
240 mAddresseeWidget->saveSettings(); 246 mAddresseeWidget->saveSettings();
241 247
242 saveExtensionSettings(); 248 saveExtensionSettings();
243 249
244} 250}
245 251
246void KABConfigWidget::restoreExtensionSettings() 252void KABConfigWidget::restoreExtensionSettings()
247{ 253{
248 QStringList activeExtensions = KABPrefs::instance()->mActiveExtensions; 254 QStringList activeExtensions = KABPrefs::instance()->mActiveExtensions;
249 255
250 mExtensionView->clear(); 256 mExtensionView->clear();
251 257
252#ifndef KAB_EMBEDDED 258#ifndef KAB_EMBEDDED
253 KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/Extension" ); 259 KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/Extension" );
254 KTrader::OfferList::ConstIterator it; 260 KTrader::OfferList::ConstIterator it;
255 for ( it = plugins.begin(); it != plugins.end(); ++it ) { 261 for ( it = plugins.begin(); it != plugins.end(); ++it ) {
256 if ( !(*it)->hasServiceType( "KAddressBook/Extension" ) ) 262 if ( !(*it)->hasServiceType( "KAddressBook/Extension" ) )
257 continue; 263 continue;
258 264
259 ExtensionItem *item = new ExtensionItem( mExtensionView, (*it)->name() ); 265 ExtensionItem *item = new ExtensionItem( mExtensionView, (*it)->name() );
260 item->setService( *it ); 266 item->setService( *it );
261 if ( activeExtensions.contains( item->factory()->identifier() ) ) 267 if ( activeExtensions.contains( item->factory()->identifier() ) )
262 item->setOn( true ); 268 item->setOn( true );
diff --git a/kaddressbook/kcmconfigs/kabconfigwidget.h b/kaddressbook/kcmconfigs/kabconfigwidget.h
index a172e97..f2a6b1b 100644
--- a/kaddressbook/kcmconfigs/kabconfigwidget.h
+++ b/kaddressbook/kcmconfigs/kabconfigwidget.h
@@ -48,30 +48,31 @@ class KABConfigWidget : public KPrefsWidget
48 virtual void usrReadConfig(); 48 virtual void usrReadConfig();
49 /** Implement this to write custom configuration widgets. */ 49 /** Implement this to write custom configuration widgets. */
50 virtual void usrWriteConfig(); 50 virtual void usrWriteConfig();
51 51
52 52
53 53
54 private slots: 54 private slots:
55 void configureExtension(); 55 void configureExtension();
56 void selectionChanged( QListViewItem* ); 56 void selectionChanged( QListViewItem* );
57 void itemClicked( QListViewItem* ); 57 void itemClicked( QListViewItem* );
58 58
59 private: 59 private:
60 void restoreExtensionSettings(); 60 void restoreExtensionSettings();
61 void saveExtensionSettings(); 61 void saveExtensionSettings();
62 62
63 KListView *mExtensionView; 63 KListView *mExtensionView;
64 QCheckBox *mSearchReturnBox; 64 QCheckBox *mSearchReturnBox;
65 QCheckBox *mNameParsing; 65 QCheckBox *mNameParsing;
66 QCheckBox *mViewsSingleClickBox; 66 QCheckBox *mViewsSingleClickBox;
67 QCheckBox *mAutoSearchWithWildcardBox; 67 QCheckBox *mAutoSearchWithWildcardBox;
68 QCheckBox *mHideSearchOnSwitchBox; 68 QCheckBox *mHideSearchOnSwitchBox;
69 QCheckBox *mMultipleViewsAtOnce; 69 QCheckBox *mMultipleViewsAtOnce;
70 QCheckBox *mAskForQuit; 70 QCheckBox *mAskForQuit;
71 QCheckBox *mMenuBarBox; 71 QCheckBox *mMenuBarBox;
72 QCheckBox *mAskForDelete;
72 QPushButton *mConfigureButton; 73 QPushButton *mConfigureButton;
73 74
74 AddresseeWidget *mAddresseeWidget; 75 AddresseeWidget *mAddresseeWidget;
75}; 76};
76 77
77#endif 78#endif