summaryrefslogtreecommitdiffabout
path: root/kaddressbook/kabcore.cpp
Unidiff
Diffstat (limited to 'kaddressbook/kabcore.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp32
1 files changed, 31 insertions, 1 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index a0fec91..7e3fc7c 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1017,586 +1017,616 @@ void KABCore::openLDAPDialog()
1017 SLOT( setModified() ) ); 1017 SLOT( setModified() ) );
1018 } else 1018 } else
1019 mLdapSearchDialog->restoreSettings(); 1019 mLdapSearchDialog->restoreSettings();
1020 1020
1021 if ( mLdapSearchDialog->isOK() ) 1021 if ( mLdapSearchDialog->isOK() )
1022 mLdapSearchDialog->exec(); 1022 mLdapSearchDialog->exec();
1023#else //KAB_EMBEDDED 1023#else //KAB_EMBEDDED
1024 qDebug("KABCore::openLDAPDialog() finsih method"); 1024 qDebug("KABCore::openLDAPDialog() finsih method");
1025#endif //KAB_EMBEDDED 1025#endif //KAB_EMBEDDED
1026} 1026}
1027 1027
1028void KABCore::print() 1028void KABCore::print()
1029{ 1029{
1030#ifndef KAB_EMBEDDED 1030#ifndef KAB_EMBEDDED
1031 KPrinter printer; 1031 KPrinter printer;
1032 if ( !printer.setup( this ) ) 1032 if ( !printer.setup( this ) )
1033 return; 1033 return;
1034 1034
1035 KABPrinting::PrintingWizard wizard( &printer, mAddressBook, 1035 KABPrinting::PrintingWizard wizard( &printer, mAddressBook,
1036 mViewManager->selectedUids(), this ); 1036 mViewManager->selectedUids(), this );
1037 1037
1038 wizard.exec(); 1038 wizard.exec();
1039#else //KAB_EMBEDDED 1039#else //KAB_EMBEDDED
1040 qDebug("KABCore::print() finsih method"); 1040 qDebug("KABCore::print() finsih method");
1041#endif //KAB_EMBEDDED 1041#endif //KAB_EMBEDDED
1042 1042
1043} 1043}
1044 1044
1045 1045
1046void KABCore::addGUIClient( KXMLGUIClient *client ) 1046void KABCore::addGUIClient( KXMLGUIClient *client )
1047{ 1047{
1048 if ( mGUIClient ) 1048 if ( mGUIClient )
1049 mGUIClient->insertChildClient( client ); 1049 mGUIClient->insertChildClient( client );
1050 else 1050 else
1051 KMessageBox::error( this, "no KXMLGUICLient"); 1051 KMessageBox::error( this, "no KXMLGUICLient");
1052} 1052}
1053 1053
1054 1054
1055void KABCore::configurationChanged() 1055void KABCore::configurationChanged()
1056{ 1056{
1057 mExtensionManager->reconfigure(); 1057 mExtensionManager->reconfigure();
1058} 1058}
1059 1059
1060void KABCore::addressBookChanged() 1060void KABCore::addressBookChanged()
1061{ 1061{
1062#ifndef KAB_EMBEDDED 1062#ifndef KAB_EMBEDDED
1063 QDictIterator<AddresseeEditorDialog> it( mEditorDict ); 1063 QDictIterator<AddresseeEditorDialog> it( mEditorDict );
1064 while ( it.current() ) { 1064 while ( it.current() ) {
1065 if ( it.current()->dirty() ) { 1065 if ( it.current()->dirty() ) {
1066 QString text = i18n( "Data has been changed externally. Unsaved " 1066 QString text = i18n( "Data has been changed externally. Unsaved "
1067 "changes will be lost." ); 1067 "changes will be lost." );
1068 KMessageBox::information( this, text ); 1068 KMessageBox::information( this, text );
1069 } 1069 }
1070 it.current()->setAddressee( mAddressBook->findByUid( it.currentKey() ) ); 1070 it.current()->setAddressee( mAddressBook->findByUid( it.currentKey() ) );
1071 ++it; 1071 ++it;
1072 } 1072 }
1073 1073
1074 mViewManager->refreshView(); 1074 mViewManager->refreshView();
1075#else //KAB_EMBEDDED 1075#else //KAB_EMBEDDED
1076 qDebug("KABCore::addressBookChanged() finsih method"); 1076 qDebug("KABCore::addressBookChanged() finsih method");
1077#endif //KAB_EMBEDDED 1077#endif //KAB_EMBEDDED
1078} 1078}
1079 1079
1080AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( QWidget *parent, 1080AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( QWidget *parent,
1081 const char *name ) 1081 const char *name )
1082{ 1082{
1083 1083
1084 if ( mEditorDialog == 0 ) { 1084 if ( mEditorDialog == 0 ) {
1085 mEditorDialog = new AddresseeEditorDialog( this, parent, 1085 mEditorDialog = new AddresseeEditorDialog( this, parent,
1086 name ? name : "editorDialog" ); 1086 name ? name : "editorDialog" );
1087 1087
1088 1088
1089 connect( mEditorDialog, SIGNAL( contactModified( const KABC::Addressee& ) ), 1089 connect( mEditorDialog, SIGNAL( contactModified( const KABC::Addressee& ) ),
1090 SLOT( contactModified( const KABC::Addressee& ) ) ); 1090 SLOT( contactModified( const KABC::Addressee& ) ) );
1091 //connect( mEditorDialog, SIGNAL( editorDestroyed( const QString& ) ), 1091 //connect( mEditorDialog, SIGNAL( editorDestroyed( const QString& ) ),
1092 // SLOT( slotEditorDestroyed( const QString& ) ) ); 1092 // SLOT( slotEditorDestroyed( const QString& ) ) );
1093 } 1093 }
1094 1094
1095 return mEditorDialog; 1095 return mEditorDialog;
1096} 1096}
1097 1097
1098void KABCore::slotEditorDestroyed( const QString &uid ) 1098void KABCore::slotEditorDestroyed( const QString &uid )
1099{ 1099{
1100 qDebug("KABCore::slotEditorDestroyed called. maybe a problem! "); 1100 qDebug("KABCore::slotEditorDestroyed called. maybe a problem! ");
1101 //mEditorDict.remove( uid ); 1101 //mEditorDict.remove( uid );
1102} 1102}
1103 1103
1104void KABCore::initGUI() 1104void KABCore::initGUI()
1105{ 1105{
1106#ifndef KAB_EMBEDDED 1106#ifndef KAB_EMBEDDED
1107 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1107 QHBoxLayout *topLayout = new QHBoxLayout( this );
1108 topLayout->setSpacing( KDialogBase::spacingHint() ); 1108 topLayout->setSpacing( KDialogBase::spacingHint() );
1109 1109
1110 mExtensionBarSplitter = new QSplitter( this ); 1110 mExtensionBarSplitter = new QSplitter( this );
1111 mExtensionBarSplitter->setOrientation( Qt::Vertical ); 1111 mExtensionBarSplitter->setOrientation( Qt::Vertical );
1112 1112
1113 mDetailsSplitter = new QSplitter( mExtensionBarSplitter ); 1113 mDetailsSplitter = new QSplitter( mExtensionBarSplitter );
1114 1114
1115 QVBox *viewSpace = new QVBox( mDetailsSplitter ); 1115 QVBox *viewSpace = new QVBox( mDetailsSplitter );
1116 mIncSearchWidget = new IncSearchWidget( viewSpace ); 1116 mIncSearchWidget = new IncSearchWidget( viewSpace );
1117 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1117 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1118 SLOT( incrementalSearch( const QString& ) ) ); 1118 SLOT( incrementalSearch( const QString& ) ) );
1119 1119
1120 mViewManager = new ViewManager( this, viewSpace ); 1120 mViewManager = new ViewManager( this, viewSpace );
1121 viewSpace->setStretchFactor( mViewManager, 1 ); 1121 viewSpace->setStretchFactor( mViewManager, 1 );
1122 1122
1123 mDetails = new ViewContainer( mDetailsSplitter ); 1123 mDetails = new ViewContainer( mDetailsSplitter );
1124 1124
1125 mJumpButtonBar = new JumpButtonBar( this, this ); 1125 mJumpButtonBar = new JumpButtonBar( this, this );
1126 1126
1127 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); 1127 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter );
1128 1128
1129 topLayout->addWidget( mExtensionBarSplitter ); 1129 topLayout->addWidget( mExtensionBarSplitter );
1130 topLayout->setStretchFactor( mExtensionBarSplitter, 100 ); 1130 topLayout->setStretchFactor( mExtensionBarSplitter, 100 );
1131 topLayout->addWidget( mJumpButtonBar ); 1131 topLayout->addWidget( mJumpButtonBar );
1132 topLayout->setStretchFactor( mJumpButtonBar, 1 ); 1132 topLayout->setStretchFactor( mJumpButtonBar, 1 );
1133 1133
1134 mXXPortManager = new XXPortManager( this, this ); 1134 mXXPortManager = new XXPortManager( this, this );
1135 1135
1136#else //KAB_EMBEDDED 1136#else //KAB_EMBEDDED
1137 //US initialize viewMenu before settingup viewmanager. 1137 //US initialize viewMenu before settingup viewmanager.
1138 // Viewmanager needs this menu to plugin submenues. 1138 // Viewmanager needs this menu to plugin submenues.
1139 viewMenu = new QPopupMenu( this ); 1139 viewMenu = new QPopupMenu( this );
1140 settingsMenu = new QPopupMenu( this ); 1140 settingsMenu = new QPopupMenu( this );
1141 //filterMenu = new QPopupMenu( this ); 1141 //filterMenu = new QPopupMenu( this );
1142 ImportMenu = new QPopupMenu( this ); 1142 ImportMenu = new QPopupMenu( this );
1143 ExportMenu = new QPopupMenu( this ); 1143 ExportMenu = new QPopupMenu( this );
1144 1144
1145 changeMenu= new QPopupMenu( this );
1145 1146
1146//US since we have no splitter for the embedded system, setup 1147//US since we have no splitter for the embedded system, setup
1147// a layout with two frames. One left and one right. 1148// a layout with two frames. One left and one right.
1148 1149
1149 QBoxLayout *topLayout; 1150 QBoxLayout *topLayout;
1150 1151
1151 // = new QHBoxLayout( this ); 1152 // = new QHBoxLayout( this );
1152// QBoxLayout *topLayout = (QBoxLayout*)layout(); 1153// QBoxLayout *topLayout = (QBoxLayout*)layout();
1153 1154
1154// QWidget *mainBox = new QWidget( this ); 1155// QWidget *mainBox = new QWidget( this );
1155// QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox); 1156// QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox);
1156 1157
1157#ifdef DESKTOP_VERSION 1158#ifdef DESKTOP_VERSION
1158 topLayout = new QHBoxLayout( this ); 1159 topLayout = new QHBoxLayout( this );
1159 1160
1160 1161
1161 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 1162 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
1162 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 1163 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
1163 1164
1164 topLayout->addWidget(mMiniSplitter ); 1165 topLayout->addWidget(mMiniSplitter );
1165 1166
1166 mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter ); 1167 mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter );
1167 mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 1168 mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
1168 mViewManager = new ViewManager( this, mExtensionBarSplitter ); 1169 mViewManager = new ViewManager( this, mExtensionBarSplitter );
1169 mDetails = new ViewContainer( mMiniSplitter ); 1170 mDetails = new ViewContainer( mMiniSplitter );
1170 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); 1171 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter );
1171#else 1172#else
1172 if ( QApplication::desktop()->width() > 480 ) { 1173 if ( QApplication::desktop()->width() > 480 ) {
1173 topLayout = new QHBoxLayout( this ); 1174 topLayout = new QHBoxLayout( this );
1174 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 1175 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
1175 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 1176 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
1176 } else { 1177 } else {
1177 1178
1178 topLayout = new QHBoxLayout( this ); 1179 topLayout = new QHBoxLayout( this );
1179 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this); 1180 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this);
1180 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 1181 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
1181 } 1182 }
1182 1183
1183 topLayout->addWidget(mMiniSplitter ); 1184 topLayout->addWidget(mMiniSplitter );
1184 mViewManager = new ViewManager( this, mMiniSplitter ); 1185 mViewManager = new ViewManager( this, mMiniSplitter );
1185 mDetails = new ViewContainer( mMiniSplitter ); 1186 mDetails = new ViewContainer( mMiniSplitter );
1186 1187
1187 1188
1188 mExtensionManager = new ExtensionManager( this, mMiniSplitter ); 1189 mExtensionManager = new ExtensionManager( this, mMiniSplitter );
1189#endif 1190#endif
1190 //eh->hide(); 1191 //eh->hide();
1191 // topLayout->addWidget(mExtensionManager ); 1192 // topLayout->addWidget(mExtensionManager );
1192 1193
1193 1194
1194/*US 1195/*US
1195#ifndef KAB_NOSPLITTER 1196#ifndef KAB_NOSPLITTER
1196 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1197 QHBoxLayout *topLayout = new QHBoxLayout( this );
1197//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1198//US topLayout->setSpacing( KDialogBase::spacingHint() );
1198 topLayout->setSpacing( 10 ); 1199 topLayout->setSpacing( 10 );
1199 1200
1200 mDetailsSplitter = new QSplitter( this ); 1201 mDetailsSplitter = new QSplitter( this );
1201 1202
1202 QVBox *viewSpace = new QVBox( mDetailsSplitter ); 1203 QVBox *viewSpace = new QVBox( mDetailsSplitter );
1203 1204
1204 mViewManager = new ViewManager( this, viewSpace ); 1205 mViewManager = new ViewManager( this, viewSpace );
1205 viewSpace->setStretchFactor( mViewManager, 1 ); 1206 viewSpace->setStretchFactor( mViewManager, 1 );
1206 1207
1207 mDetails = new ViewContainer( mDetailsSplitter ); 1208 mDetails = new ViewContainer( mDetailsSplitter );
1208 1209
1209 topLayout->addWidget( mDetailsSplitter ); 1210 topLayout->addWidget( mDetailsSplitter );
1210 topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1211 topLayout->setStretchFactor( mDetailsSplitter, 100 );
1211#else //KAB_NOSPLITTER 1212#else //KAB_NOSPLITTER
1212 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1213 QHBoxLayout *topLayout = new QHBoxLayout( this );
1213//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1214//US topLayout->setSpacing( KDialogBase::spacingHint() );
1214 topLayout->setSpacing( 10 ); 1215 topLayout->setSpacing( 10 );
1215 1216
1216// mDetailsSplitter = new QSplitter( this ); 1217// mDetailsSplitter = new QSplitter( this );
1217 1218
1218 QVBox *viewSpace = new QVBox( this ); 1219 QVBox *viewSpace = new QVBox( this );
1219 1220
1220 mViewManager = new ViewManager( this, viewSpace ); 1221 mViewManager = new ViewManager( this, viewSpace );
1221 viewSpace->setStretchFactor( mViewManager, 1 ); 1222 viewSpace->setStretchFactor( mViewManager, 1 );
1222 1223
1223 mDetails = new ViewContainer( this ); 1224 mDetails = new ViewContainer( this );
1224 1225
1225 topLayout->addWidget( viewSpace ); 1226 topLayout->addWidget( viewSpace );
1226// topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1227// topLayout->setStretchFactor( mDetailsSplitter, 100 );
1227 topLayout->addWidget( mDetails ); 1228 topLayout->addWidget( mDetails );
1228#endif //KAB_NOSPLITTER 1229#endif //KAB_NOSPLITTER
1229*/ 1230*/
1230 1231
1231 1232
1232#endif //KAB_EMBEDDED 1233#endif //KAB_EMBEDDED
1233 initActions(); 1234 initActions();
1234 1235
1235#ifdef KAB_EMBEDDED 1236#ifdef KAB_EMBEDDED
1236 addActionsManually(); 1237 addActionsManually();
1237 //US make sure the export and import menues are initialized before creating the xxPortManager. 1238 //US make sure the export and import menues are initialized before creating the xxPortManager.
1238 mXXPortManager = new XXPortManager( this, this ); 1239 mXXPortManager = new XXPortManager( this, this );
1239 1240
1240 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() ); 1241 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() );
1241 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget); 1242 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget);
1242 // mActionQuit->plug ( mMainWindow->toolBar()); 1243 // mActionQuit->plug ( mMainWindow->toolBar());
1243 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() ); 1244 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() );
1244 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget); 1245 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget);
1245 // mIncSearchWidget->hide(); 1246 // mIncSearchWidget->hide();
1246 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1247 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1247 SLOT( incrementalSearch( const QString& ) ) ); 1248 SLOT( incrementalSearch( const QString& ) ) );
1248 1249
1249 1250
1250 mJumpButtonBar = new JumpButtonBar( this, this ); 1251 mJumpButtonBar = new JumpButtonBar( this, this );
1251 1252
1252 topLayout->addWidget( mJumpButtonBar ); 1253 topLayout->addWidget( mJumpButtonBar );
1253//US topLayout->setStretchFactor( mJumpButtonBar, 10 ); 1254//US topLayout->setStretchFactor( mJumpButtonBar, 10 );
1254 1255
1255// mMainWindow->getIconToolBar()->raise(); 1256// mMainWindow->getIconToolBar()->raise();
1256 1257
1257#endif //KAB_EMBEDDED 1258#endif //KAB_EMBEDDED
1258 1259
1259} 1260}
1260void KABCore::initActions() 1261void KABCore::initActions()
1261{ 1262{
1262//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); 1263//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart);
1263 1264
1264#ifndef KAB_EMBEDDED 1265#ifndef KAB_EMBEDDED
1265 connect( QApplication::clipboard(), SIGNAL( dataChanged() ), 1266 connect( QApplication::clipboard(), SIGNAL( dataChanged() ),
1266 SLOT( clipboardDataChanged() ) ); 1267 SLOT( clipboardDataChanged() ) );
1267#endif //KAB_EMBEDDED 1268#endif //KAB_EMBEDDED
1268 1269
1269 // file menu 1270 // file menu
1270 if ( mIsPart ) { 1271 if ( mIsPart ) {
1271 mActionMail = new KAction( i18n( "&Mail" ), "mail_generic", 0, this, 1272 mActionMail = new KAction( i18n( "&Mail" ), "mail_generic", 0, this,
1272 SLOT( sendMail() ), actionCollection(), 1273 SLOT( sendMail() ), actionCollection(),
1273 "kaddressbook_mail" ); 1274 "kaddressbook_mail" );
1274 mActionPrint = new KAction( i18n( "&Print" ), "fileprint", CTRL + Key_P, this, 1275 mActionPrint = new KAction( i18n( "&Print" ), "fileprint", CTRL + Key_P, this,
1275 SLOT( print() ), actionCollection(), "kaddressbook_print" ); 1276 SLOT( print() ), actionCollection(), "kaddressbook_print" );
1276 1277
1277 } else { 1278 } else {
1278 mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() ); 1279 mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() );
1279 mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() ); 1280 mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() );
1280 } 1281 }
1281 1282
1282 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this, 1283 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this,
1283 SLOT( save() ), actionCollection(), "file_sync" ); 1284 SLOT( save() ), actionCollection(), "file_sync" );
1284 1285
1285 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this, 1286 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this,
1286 SLOT( newContact() ), actionCollection(), "file_new_contact" ); 1287 SLOT( newContact() ), actionCollection(), "file_new_contact" );
1287 1288
1288 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0, 1289 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0,
1289 this, SLOT( mailVCard() ), 1290 this, SLOT( mailVCard() ),
1290 actionCollection(), "file_mail_vcard"); 1291 actionCollection(), "file_mail_vcard");
1291 1292
1292 mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0, 1293 mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0,
1293 this, SLOT( editContact2() ), 1294 this, SLOT( editContact2() ),
1294 actionCollection(), "file_properties" ); 1295 actionCollection(), "file_properties" );
1295 1296
1296#ifdef KAB_EMBEDDED 1297#ifdef KAB_EMBEDDED
1297 // mActionQuit = KStdAction::quit( mMainWindow, SLOT( exit() ), actionCollection() ); 1298 // mActionQuit = KStdAction::quit( mMainWindow, SLOT( exit() ), actionCollection() );
1298 mActionQuit = new KAction( i18n( "&Exit" ), "exit", 0, 1299 mActionQuit = new KAction( i18n( "&Exit" ), "exit", 0,
1299 mMainWindow, SLOT( exit() ), 1300 mMainWindow, SLOT( exit() ),
1300 actionCollection(), "quit" ); 1301 actionCollection(), "quit" );
1301#endif //KAB_EMBEDDED 1302#endif //KAB_EMBEDDED
1302 1303
1303 // edit menu 1304 // edit menu
1304 if ( mIsPart ) { 1305 if ( mIsPart ) {
1305 mActionCopy = new KAction( i18n( "&Copy" ), "editcopy", CTRL + Key_C, this, 1306 mActionCopy = new KAction( i18n( "&Copy" ), "editcopy", CTRL + Key_C, this,
1306 SLOT( copyContacts() ), actionCollection(), 1307 SLOT( copyContacts() ), actionCollection(),
1307 "kaddressbook_copy" ); 1308 "kaddressbook_copy" );
1308 mActionCut = new KAction( i18n( "Cu&t" ), "editcut", CTRL + Key_X, this, 1309 mActionCut = new KAction( i18n( "Cu&t" ), "editcut", CTRL + Key_X, this,
1309 SLOT( cutContacts() ), actionCollection(), 1310 SLOT( cutContacts() ), actionCollection(),
1310 "kaddressbook_cut" ); 1311 "kaddressbook_cut" );
1311 mActionPaste = new KAction( i18n( "&Paste" ), "editpaste", CTRL + Key_V, this, 1312 mActionPaste = new KAction( i18n( "&Paste" ), "editpaste", CTRL + Key_V, this,
1312 SLOT( pasteContacts() ), actionCollection(), 1313 SLOT( pasteContacts() ), actionCollection(),
1313 "kaddressbook_paste" ); 1314 "kaddressbook_paste" );
1314 mActionSelectAll = new KAction( i18n( "Select &All" ), CTRL + Key_A, this, 1315 mActionSelectAll = new KAction( i18n( "Select &All" ), CTRL + Key_A, this,
1315 SLOT( selectAllContacts() ), actionCollection(), 1316 SLOT( selectAllContacts() ), actionCollection(),
1316 "kaddressbook_select_all" ); 1317 "kaddressbook_select_all" );
1317 mActionUndo = new KAction( i18n( "&Undo" ), "undo", CTRL + Key_Z, this, 1318 mActionUndo = new KAction( i18n( "&Undo" ), "undo", CTRL + Key_Z, this,
1318 SLOT( undo() ), actionCollection(), 1319 SLOT( undo() ), actionCollection(),
1319 "kaddressbook_undo" ); 1320 "kaddressbook_undo" );
1320 mActionRedo = new KAction( i18n( "Re&do" ), "redo", CTRL + SHIFT + Key_Z, 1321 mActionRedo = new KAction( i18n( "Re&do" ), "redo", CTRL + SHIFT + Key_Z,
1321 this, SLOT( redo() ), actionCollection(), 1322 this, SLOT( redo() ), actionCollection(),
1322 "kaddressbook_redo" ); 1323 "kaddressbook_redo" );
1323 } else { 1324 } else {
1324 mActionCopy = KStdAction::copy( this, SLOT( copyContacts() ), actionCollection() ); 1325 mActionCopy = KStdAction::copy( this, SLOT( copyContacts() ), actionCollection() );
1325 mActionCut = KStdAction::cut( this, SLOT( cutContacts() ), actionCollection() ); 1326 mActionCut = KStdAction::cut( this, SLOT( cutContacts() ), actionCollection() );
1326 mActionPaste = KStdAction::paste( this, SLOT( pasteContacts() ), actionCollection() ); 1327 mActionPaste = KStdAction::paste( this, SLOT( pasteContacts() ), actionCollection() );
1327 mActionSelectAll = KStdAction::selectAll( this, SLOT( selectAllContacts() ), actionCollection() ); 1328 mActionSelectAll = KStdAction::selectAll( this, SLOT( selectAllContacts() ), actionCollection() );
1328 mActionUndo = KStdAction::undo( this, SLOT( undo() ), actionCollection() ); 1329 mActionUndo = KStdAction::undo( this, SLOT( undo() ), actionCollection() );
1329 mActionRedo = KStdAction::redo( this, SLOT( redo() ), actionCollection() ); 1330 mActionRedo = KStdAction::redo( this, SLOT( redo() ), actionCollection() );
1330 } 1331 }
1331 1332
1332 mActionDelete = new KAction( i18n( "&Delete Contact" ), "editdelete", 1333 mActionDelete = new KAction( i18n( "&Delete Contact" ), "editdelete",
1333 Key_Delete, this, SLOT( deleteContacts() ), 1334 Key_Delete, this, SLOT( deleteContacts() ),
1334 actionCollection(), "edit_delete" ); 1335 actionCollection(), "edit_delete" );
1335 1336
1336 mActionUndo->setEnabled( false ); 1337 mActionUndo->setEnabled( false );
1337 mActionRedo->setEnabled( false ); 1338 mActionRedo->setEnabled( false );
1338 1339
1339 // settings menu 1340 // settings menu
1340#ifdef KAB_EMBEDDED 1341#ifdef KAB_EMBEDDED
1341//US special menuentry to configure the addressbook resources. On KDE 1342//US special menuentry to configure the addressbook resources. On KDE
1342// you do that through the control center !!! 1343// you do that through the control center !!!
1343 mActionConfigResources = new KAction( i18n( "Configure &Resources..." ), "configure_resources", 0, this, 1344 mActionConfigResources = new KAction( i18n( "Configure &Resources..." ), "configure_resources", 0, this,
1344 SLOT( configureResources() ), actionCollection(), 1345 SLOT( configureResources() ), actionCollection(),
1345 "kaddressbook_configure_resources" ); 1346 "kaddressbook_configure_resources" );
1346#endif //KAB_EMBEDDED 1347#endif //KAB_EMBEDDED
1347 1348
1348 if ( mIsPart ) { 1349 if ( mIsPart ) {
1349 mActionConfigKAddressbook = new KAction( i18n( "&Configure KAddressBook..." ), "configure", 0, this, 1350 mActionConfigKAddressbook = new KAction( i18n( "&Configure KAddressBook..." ), "configure", 0, this,
1350 SLOT( openConfigDialog() ), actionCollection(), 1351 SLOT( openConfigDialog() ), actionCollection(),
1351 "kaddressbook_configure" ); 1352 "kaddressbook_configure" );
1352 1353
1353 mActionConfigShortcuts = new KAction( i18n( "Configure S&hortcuts..." ), "configure_shortcuts", 0, 1354 mActionConfigShortcuts = new KAction( i18n( "Configure S&hortcuts..." ), "configure_shortcuts", 0,
1354 this, SLOT( configureKeyBindings() ), actionCollection(), 1355 this, SLOT( configureKeyBindings() ), actionCollection(),
1355 "kaddressbook_configure_shortcuts" ); 1356 "kaddressbook_configure_shortcuts" );
1356#ifdef KAB_EMBEDDED 1357#ifdef KAB_EMBEDDED
1357 mActionConfigureToolbars = KStdAction::configureToolbars( this, SLOT( mMainWindow->configureToolbars() ), actionCollection() ); 1358 mActionConfigureToolbars = KStdAction::configureToolbars( this, SLOT( mMainWindow->configureToolbars() ), actionCollection() );
1358 mActionConfigureToolbars->setEnabled( false ); 1359 mActionConfigureToolbars->setEnabled( false );
1359#endif //KAB_EMBEDDED 1360#endif //KAB_EMBEDDED
1360 1361
1361 } else { 1362 } else {
1362 mActionConfigKAddressbook = KStdAction::preferences( this, SLOT( openConfigDialog() ), actionCollection() ); 1363 mActionConfigKAddressbook = KStdAction::preferences( this, SLOT( openConfigDialog() ), actionCollection() );
1363 1364
1364 mActionKeyBindings = KStdAction::keyBindings( this, SLOT( configureKeyBindings() ), actionCollection() ); 1365 mActionKeyBindings = KStdAction::keyBindings( this, SLOT( configureKeyBindings() ), actionCollection() );
1365 } 1366 }
1366 1367
1367 mActionJumpBar = new KToggleAction( i18n( "Show Jump Bar" ), 0, 0, 1368 mActionJumpBar = new KToggleAction( i18n( "Show Jump Bar" ), 0, 0,
1368 actionCollection(), "options_show_jump_bar" ); 1369 actionCollection(), "options_show_jump_bar" );
1369 connect( mActionJumpBar, SIGNAL( toggled( bool ) ), SLOT( setJumpButtonBarVisible( bool ) ) ); 1370 connect( mActionJumpBar, SIGNAL( toggled( bool ) ), SLOT( setJumpButtonBarVisible( bool ) ) );
1370 1371
1371 mActionDetails = new KToggleAction( i18n( "Show Details" ), 0, 0, 1372 mActionDetails = new KToggleAction( i18n( "Show Details" ), 0, 0,
1372 actionCollection(), "options_show_details" ); 1373 actionCollection(), "options_show_details" );
1373 connect( mActionDetails, SIGNAL( toggled( bool ) ), SLOT( setDetailsVisible( bool ) ) ); 1374 connect( mActionDetails, SIGNAL( toggled( bool ) ), SLOT( setDetailsVisible( bool ) ) );
1374 1375
1375 // misc 1376 // misc
1376 // only enable LDAP lookup if we can handle the protocol 1377 // only enable LDAP lookup if we can handle the protocol
1377#ifndef KAB_EMBEDDED 1378#ifndef KAB_EMBEDDED
1378 if ( KProtocolInfo::isKnownProtocol( KURL( "ldap://localhost" ) ) ) { 1379 if ( KProtocolInfo::isKnownProtocol( KURL( "ldap://localhost" ) ) ) {
1379 new KAction( i18n( "&Lookup Addresses in Directory" ), "find", 0, 1380 new KAction( i18n( "&Lookup Addresses in Directory" ), "find", 0,
1380 this, SLOT( openLDAPDialog() ), actionCollection(), 1381 this, SLOT( openLDAPDialog() ), actionCollection(),
1381 "ldap_lookup" ); 1382 "ldap_lookup" );
1382 } 1383 }
1383#else //KAB_EMBEDDED 1384#else //KAB_EMBEDDED
1384 //qDebug("KABCore::initActions() LDAP has to be implemented"); 1385 //qDebug("KABCore::initActions() LDAP has to be implemented");
1385#endif //KAB_EMBEDDED 1386#endif //KAB_EMBEDDED
1386 1387
1387 1388
1388 mActionWhoAmI = new KAction( i18n( "Set Who Am I" ), "personal", 0, this, 1389 mActionWhoAmI = new KAction( i18n( "Set Who Am I" ), "personal", 0, this,
1389 SLOT( setWhoAmI() ), actionCollection(), 1390 SLOT( setWhoAmI() ), actionCollection(),
1390 "set_personal" ); 1391 "set_personal" );
1391 1392
1392 mActionCategories = new KAction( i18n( "Set Categories" ), 0, this, 1393 mActionCategories = new KAction( i18n( "Set Categories" ), 0, this,
1393 SLOT( setCategories() ), actionCollection(), 1394 SLOT( setCategories() ), actionCollection(),
1394 "edit_set_categories" ); 1395 "edit_set_categories" );
1395 1396
1397 mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this,
1398 SLOT( removeVoice() ), actionCollection(),
1399 "remove_voice" );
1396#ifdef KAB_EMBEDDED 1400#ifdef KAB_EMBEDDED
1397 1401
1398 mActionAboutKAddressbook = new KAction( i18n( "&About KAddressBook" ), "kaddressbook2", 0, 1402 mActionAboutKAddressbook = new KAction( i18n( "&About KAddressBook" ), "kaddressbook2", 0,
1399 this, SLOT( createAboutData() ), actionCollection(), 1403 this, SLOT( createAboutData() ), actionCollection(),
1400 "kaddressbook_about_data" ); 1404 "kaddressbook_about_data" );
1401#endif //KAB_EMBEDDED 1405#endif //KAB_EMBEDDED
1402 1406
1403 clipboardDataChanged(); 1407 clipboardDataChanged();
1404 connect( UndoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); 1408 connect( UndoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) );
1405 connect( RedoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); 1409 connect( RedoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) );
1406} 1410}
1407 1411
1408//US we need this function, to plug all actions into the correct menues. 1412//US we need this function, to plug all actions into the correct menues.
1409// KDE uses a XML format to plug the actions, but we work her without this overhead. 1413// KDE uses a XML format to plug the actions, but we work her without this overhead.
1410void KABCore::addActionsManually() 1414void KABCore::addActionsManually()
1411{ 1415{
1412//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); 1416//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart);
1413 1417
1414#ifdef KAB_EMBEDDED 1418#ifdef KAB_EMBEDDED
1415 QPopupMenu *fileMenu = new QPopupMenu( this ); 1419 QPopupMenu *fileMenu = new QPopupMenu( this );
1416 QPopupMenu *editMenu = new QPopupMenu( this ); 1420 QPopupMenu *editMenu = new QPopupMenu( this );
1417 QPopupMenu *helpMenu = new QPopupMenu( this ); 1421 QPopupMenu *helpMenu = new QPopupMenu( this );
1418 1422
1419 KToolBar* tb = mMainWindow->toolBar(); 1423 KToolBar* tb = mMainWindow->toolBar();
1420 1424
1421#ifdef DESKTOP_VERSION 1425#ifdef DESKTOP_VERSION
1422 QMenuBar* mb = mMainWindow->menuBar(); 1426 QMenuBar* mb = mMainWindow->menuBar();
1423 1427
1424 //US setup menubar. 1428 //US setup menubar.
1425 //Disable the following block if you do not want to have a menubar. 1429 //Disable the following block if you do not want to have a menubar.
1426 mb->insertItem( "&File", fileMenu ); 1430 mb->insertItem( "&File", fileMenu );
1427 mb->insertItem( "&Edit", editMenu ); 1431 mb->insertItem( "&Edit", editMenu );
1428 mb->insertItem( "&View", viewMenu ); 1432 mb->insertItem( "&View", viewMenu );
1429 mb->insertItem( "&Settings", settingsMenu ); 1433 mb->insertItem( "&Settings", settingsMenu );
1434 mb->insertItem( "&Change selected", changeMenu );
1430 mb->insertItem( "&Help", helpMenu ); 1435 mb->insertItem( "&Help", helpMenu );
1431 mIncSearchWidget = new IncSearchWidget( tb ); 1436 mIncSearchWidget = new IncSearchWidget( tb );
1432 // tb->insertWidget(-1, 0, mIncSearchWidget); 1437 // tb->insertWidget(-1, 0, mIncSearchWidget);
1433 1438
1434#else 1439#else
1435 //US setup toolbar 1440 //US setup toolbar
1436 QMenuBar *menuBarTB = new QMenuBar( tb ); 1441 QMenuBar *menuBarTB = new QMenuBar( tb );
1437 QPopupMenu *popupBarTB = new QPopupMenu( this ); 1442 QPopupMenu *popupBarTB = new QPopupMenu( this );
1438 menuBarTB->insertItem( "ME", popupBarTB); 1443 menuBarTB->insertItem( "ME", popupBarTB);
1439 tb->insertWidget(-1, 0, menuBarTB); 1444 tb->insertWidget(-1, 0, menuBarTB);
1440 mIncSearchWidget = new IncSearchWidget( tb ); 1445 mIncSearchWidget = new IncSearchWidget( tb );
1441 1446
1442 tb->enableMoving(false); 1447 tb->enableMoving(false);
1443 popupBarTB->insertItem( "&File", fileMenu ); 1448 popupBarTB->insertItem( "&File", fileMenu );
1444 popupBarTB->insertItem( "&Edit", editMenu ); 1449 popupBarTB->insertItem( "&Edit", editMenu );
1445 popupBarTB->insertItem( "&View", viewMenu ); 1450 popupBarTB->insertItem( "&View", viewMenu );
1446 popupBarTB->insertItem( "&Settings", settingsMenu ); 1451 popupBarTB->insertItem( "&Settings", settingsMenu );
1447 mViewManager->getFilterAction()->plug ( popupBarTB); 1452 mViewManager->getFilterAction()->plug ( popupBarTB);
1453 popupBarTB->insertItem( "&Change selected", changeMenu );
1448 popupBarTB->insertItem( "&Help", helpMenu ); 1454 popupBarTB->insertItem( "&Help", helpMenu );
1449 if (QApplication::desktop()->width() > 320 ) { 1455 if (QApplication::desktop()->width() > 320 ) {
1450 // mViewManager->getFilterAction()->plug ( tb); 1456 // mViewManager->getFilterAction()->plug ( tb);
1451 } 1457 }
1452#endif 1458#endif
1453 // mActionQuit->plug ( mMainWindow->toolBar()); 1459 // mActionQuit->plug ( mMainWindow->toolBar());
1454 1460
1455 1461
1456 1462
1457 //US Now connect the actions with the menue entries. 1463 //US Now connect the actions with the menue entries.
1458 mActionPrint->plug( fileMenu ); 1464 mActionPrint->plug( fileMenu );
1459 mActionMail->plug( fileMenu ); 1465 mActionMail->plug( fileMenu );
1460 fileMenu->insertSeparator(); 1466 fileMenu->insertSeparator();
1461 1467
1462 mActionNewContact->plug( fileMenu ); 1468 mActionNewContact->plug( fileMenu );
1463 mActionNewContact->plug( tb ); 1469 mActionNewContact->plug( tb );
1464 1470
1465 mActionEditAddressee->plug( fileMenu ); 1471 mActionEditAddressee->plug( fileMenu );
1466 fileMenu->insertSeparator(); 1472 fileMenu->insertSeparator();
1467 mActionSave->plug( fileMenu ); 1473 mActionSave->plug( fileMenu );
1468 fileMenu->insertItem( "&Import", ImportMenu ); 1474 fileMenu->insertItem( "&Import", ImportMenu );
1469 fileMenu->insertItem( "&Emport", ExportMenu ); 1475 fileMenu->insertItem( "&Emport", ExportMenu );
1470 fileMenu->insertSeparator(); 1476 fileMenu->insertSeparator();
1471 mActionMailVCard->plug( fileMenu ); 1477 mActionMailVCard->plug( fileMenu );
1472 fileMenu->insertSeparator(); 1478 fileMenu->insertSeparator();
1473 mActionQuit->plug( fileMenu ); 1479 mActionQuit->plug( fileMenu );
1474 1480
1475 1481
1476 // edit menu 1482 // edit menu
1477 mActionUndo->plug( editMenu ); 1483 mActionUndo->plug( editMenu );
1478 mActionRedo->plug( editMenu ); 1484 mActionRedo->plug( editMenu );
1479 editMenu->insertSeparator(); 1485 editMenu->insertSeparator();
1480 mActionCut->plug( editMenu ); 1486 mActionCut->plug( editMenu );
1481 mActionCopy->plug( editMenu ); 1487 mActionCopy->plug( editMenu );
1482 mActionPaste->plug( editMenu ); 1488 mActionPaste->plug( editMenu );
1483 mActionDelete->plug( editMenu ); 1489 mActionDelete->plug( editMenu );
1484 editMenu->insertSeparator(); 1490 editMenu->insertSeparator();
1485 mActionSelectAll->plug( editMenu ); 1491 mActionSelectAll->plug( editMenu );
1486 1492
1487 1493 mActionRemoveVoice->plug( changeMenu );
1488 // settings menu 1494 // settings menu
1489//US special menuentry to configure the addressbook resources. On KDE 1495//US special menuentry to configure the addressbook resources. On KDE
1490// you do that through the control center !!! 1496// you do that through the control center !!!
1491 mActionConfigResources->plug( settingsMenu ); 1497 mActionConfigResources->plug( settingsMenu );
1492 settingsMenu->insertSeparator(); 1498 settingsMenu->insertSeparator();
1493 1499
1494 mActionConfigKAddressbook->plug( settingsMenu ); 1500 mActionConfigKAddressbook->plug( settingsMenu );
1495 1501
1496 if ( mIsPart ) { 1502 if ( mIsPart ) {
1497 mActionConfigShortcuts->plug( settingsMenu ); 1503 mActionConfigShortcuts->plug( settingsMenu );
1498 mActionConfigureToolbars->plug( settingsMenu ); 1504 mActionConfigureToolbars->plug( settingsMenu );
1499 1505
1500 } else { 1506 } else {
1501 mActionKeyBindings->plug( settingsMenu ); 1507 mActionKeyBindings->plug( settingsMenu );
1502 } 1508 }
1503 1509
1504 settingsMenu->insertSeparator(); 1510 settingsMenu->insertSeparator();
1505 1511
1506 mActionJumpBar->plug( settingsMenu ); 1512 mActionJumpBar->plug( settingsMenu );
1507 mActionDetails->plug( settingsMenu ); 1513 mActionDetails->plug( settingsMenu );
1508 settingsMenu->insertSeparator(); 1514 settingsMenu->insertSeparator();
1509 1515
1510 mActionWhoAmI->plug( settingsMenu ); 1516 mActionWhoAmI->plug( settingsMenu );
1511 mActionCategories->plug( settingsMenu ); 1517 mActionCategories->plug( settingsMenu );
1512 1518
1513 mActionAboutKAddressbook->plug( helpMenu ); 1519 mActionAboutKAddressbook->plug( helpMenu );
1514 1520
1515 1521
1516 if (QApplication::desktop()->width() > 320 ) { 1522 if (QApplication::desktop()->width() > 320 ) {
1517 1523
1518 mActionEditAddressee->plug( tb ); 1524 mActionEditAddressee->plug( tb );
1519 mActionSave->plug( tb ); 1525 mActionSave->plug( tb );
1520 mViewManager->getFilterAction()->plug ( tb); 1526 mViewManager->getFilterAction()->plug ( tb);
1521 if (QApplication::desktop()->width() > 480 ) { 1527 if (QApplication::desktop()->width() > 480 ) {
1522 mActionUndo->plug( tb ); 1528 mActionUndo->plug( tb );
1523 mActionDelete->plug( tb ); 1529 mActionDelete->plug( tb );
1524 mActionRedo->plug( tb ); 1530 mActionRedo->plug( tb );
1525 } 1531 }
1526 } 1532 }
1527 //mActionQuit->plug ( tb ); 1533 //mActionQuit->plug ( tb );
1528 // tb->insertWidget(-1, 0, mIncSearchWidget, 6); 1534 // tb->insertWidget(-1, 0, mIncSearchWidget, 6);
1529 1535
1530 //US link the searchwidget first to this. 1536 //US link the searchwidget first to this.
1531 // The real linkage to the toolbar happens later. 1537 // The real linkage to the toolbar happens later.
1532//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE); 1538//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE);
1533//US tb->insertItem( mIncSearchWidget ); 1539//US tb->insertItem( mIncSearchWidget );
1534/*US 1540/*US
1535 mIncSearchWidget = new IncSearchWidget( tb ); 1541 mIncSearchWidget = new IncSearchWidget( tb );
1536 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1542 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1537 SLOT( incrementalSearch( const QString& ) ) ); 1543 SLOT( incrementalSearch( const QString& ) ) );
1538 1544
1539 mJumpButtonBar = new JumpButtonBar( this, this ); 1545 mJumpButtonBar = new JumpButtonBar( this, this );
1540 1546
1541//US topLayout->addWidget( mJumpButtonBar ); 1547//US topLayout->addWidget( mJumpButtonBar );
1542 this->layout()->add( mJumpButtonBar ); 1548 this->layout()->add( mJumpButtonBar );
1543*/ 1549*/
1544 1550
1545#endif //KAB_EMBEDDED 1551#endif //KAB_EMBEDDED
1546} 1552}
1553void KABCore::removeVoice()
1554{
1555 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 )
1556 return;
1557 KABC::Addressee::List list = mViewManager->selectedAddressees();
1558 KABC::Addressee::List::Iterator it;
1559 for ( it = list.begin(); it != list.end(); ++it ) {
1560 PhoneNumber::List phoneNumbers = (*it).phoneNumbers();
1561 PhoneNumber::List::Iterator phoneIt;
1562 bool found = false;
1563 for ( phoneIt = phoneNumbers.begin(); phoneIt != phoneNumbers.end(); ++phoneIt ) {
1564 if ( (*phoneIt).type() & PhoneNumber::Voice) { // voice found
1565 if ((*phoneIt).type() - PhoneNumber::Voice ) {
1566 (*phoneIt).setType((*phoneIt).type() - PhoneNumber::Voice );
1567 (*it).insertPhoneNumber( (*phoneIt) );
1568 found = true;
1569 }
1570 }
1571
1572 }
1573 if ( found )
1574 contactModified((*it) );
1575 }
1576}
1547 1577
1548 1578
1549 1579
1550void KABCore::clipboardDataChanged() 1580void KABCore::clipboardDataChanged()
1551{ 1581{
1552 1582
1553 if ( mReadWrite ) 1583 if ( mReadWrite )
1554 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); 1584 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() );
1555 1585
1556} 1586}
1557 1587
1558void KABCore::updateActionMenu() 1588void KABCore::updateActionMenu()
1559{ 1589{
1560 UndoStack *undo = UndoStack::instance(); 1590 UndoStack *undo = UndoStack::instance();
1561 RedoStack *redo = RedoStack::instance(); 1591 RedoStack *redo = RedoStack::instance();
1562 1592
1563 if ( undo->isEmpty() ) 1593 if ( undo->isEmpty() )
1564 mActionUndo->setText( i18n( "Undo" ) ); 1594 mActionUndo->setText( i18n( "Undo" ) );
1565 else 1595 else
1566 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) ); 1596 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) );
1567 1597
1568 mActionUndo->setEnabled( !undo->isEmpty() ); 1598 mActionUndo->setEnabled( !undo->isEmpty() );
1569 1599
1570 if ( !redo->top() ) 1600 if ( !redo->top() )
1571 mActionRedo->setText( i18n( "Redo" ) ); 1601 mActionRedo->setText( i18n( "Redo" ) );
1572 else 1602 else
1573 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) ); 1603 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) );
1574 1604
1575 mActionRedo->setEnabled( !redo->isEmpty() ); 1605 mActionRedo->setEnabled( !redo->isEmpty() );
1576} 1606}
1577 1607
1578void KABCore::configureKeyBindings() 1608void KABCore::configureKeyBindings()
1579{ 1609{
1580#ifndef KAB_EMBEDDED 1610#ifndef KAB_EMBEDDED
1581 KKeyDialog::configure( actionCollection(), true ); 1611 KKeyDialog::configure( actionCollection(), true );
1582#else //KAB_EMBEDDED 1612#else //KAB_EMBEDDED
1583 qDebug("KABCore::configureKeyBindings() not implemented"); 1613 qDebug("KABCore::configureKeyBindings() not implemented");
1584#endif //KAB_EMBEDDED 1614#endif //KAB_EMBEDDED
1585} 1615}
1586 1616
1587#ifdef KAB_EMBEDDED 1617#ifdef KAB_EMBEDDED
1588void KABCore::configureResources() 1618void KABCore::configureResources()
1589{ 1619{
1590 KRES::KCMKResources dlg( this, "" , 0 ); 1620 KRES::KCMKResources dlg( this, "" , 0 );
1591 1621
1592 if ( !dlg.exec() ) 1622 if ( !dlg.exec() )
1593 return; 1623 return;
1594 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); 1624 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") );
1595} 1625}
1596#endif //KAB_EMBEDDED 1626#endif //KAB_EMBEDDED
1597 1627
1598 1628
1599 1629
1600#ifndef KAB_EMBEDDED 1630#ifndef KAB_EMBEDDED
1601#include "kabcore.moc" 1631#include "kabcore.moc"
1602#endif //KAB_EMBEDDED 1632#endif //KAB_EMBEDDED