summaryrefslogtreecommitdiffabout
path: root/kaddressbook/kabcore.cpp
Unidiff
Diffstat (limited to 'kaddressbook/kabcore.cpp') (more/less context) (show 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
@@ -1097,96 +1097,97 @@ AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( QWidget *parent,
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
@@ -1348,247 +1349,276 @@ void KABCore::initActions()
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") );