summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp8
-rw-r--r--kaddressbook/kabcore.h1
2 files changed, 7 insertions, 2 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index e34a7d3..e2e3a66 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1033,1359 +1033,1363 @@ void KABCore::copyContacts()
1033 1033
1034 QString clipText = AddresseeUtil::addresseesToClipboard( addrList ); 1034 QString clipText = AddresseeUtil::addresseesToClipboard( addrList );
1035 1035
1036 kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl; 1036 kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl;
1037 1037
1038 QClipboard *cb = QApplication::clipboard(); 1038 QClipboard *cb = QApplication::clipboard();
1039 cb->setText( clipText ); 1039 cb->setText( clipText );
1040} 1040}
1041 1041
1042void KABCore::cutContacts() 1042void KABCore::cutContacts()
1043{ 1043{
1044 QStringList uidList = mViewManager->selectedUids(); 1044 QStringList uidList = mViewManager->selectedUids();
1045 1045
1046//US if ( uidList.size() > 0 ) { 1046//US if ( uidList.size() > 0 ) {
1047 if ( uidList.count() > 0 ) { 1047 if ( uidList.count() > 0 ) {
1048 PwCutCommand *command = new PwCutCommand( mAddressBook, uidList ); 1048 PwCutCommand *command = new PwCutCommand( mAddressBook, uidList );
1049 UndoStack::instance()->push( command ); 1049 UndoStack::instance()->push( command );
1050 RedoStack::instance()->clear(); 1050 RedoStack::instance()->clear();
1051 1051
1052 setModified( true ); 1052 setModified( true );
1053 } 1053 }
1054} 1054}
1055 1055
1056void KABCore::pasteContacts() 1056void KABCore::pasteContacts()
1057{ 1057{
1058 QClipboard *cb = QApplication::clipboard(); 1058 QClipboard *cb = QApplication::clipboard();
1059 1059
1060 KABC::Addressee::List list = AddresseeUtil::clipboardToAddressees( cb->text() ); 1060 KABC::Addressee::List list = AddresseeUtil::clipboardToAddressees( cb->text() );
1061 1061
1062 pasteContacts( list ); 1062 pasteContacts( list );
1063} 1063}
1064 1064
1065void KABCore::pasteContacts( KABC::Addressee::List &list ) 1065void KABCore::pasteContacts( KABC::Addressee::List &list )
1066{ 1066{
1067 KABC::Resource *resource = requestResource( this ); 1067 KABC::Resource *resource = requestResource( this );
1068 KABC::Addressee::List::Iterator it; 1068 KABC::Addressee::List::Iterator it;
1069 for ( it = list.begin(); it != list.end(); ++it ) 1069 for ( it = list.begin(); it != list.end(); ++it )
1070 (*it).setResource( resource ); 1070 (*it).setResource( resource );
1071 1071
1072 PwPasteCommand *command = new PwPasteCommand( this, list ); 1072 PwPasteCommand *command = new PwPasteCommand( this, list );
1073 UndoStack::instance()->push( command ); 1073 UndoStack::instance()->push( command );
1074 RedoStack::instance()->clear(); 1074 RedoStack::instance()->clear();
1075 1075
1076 setModified( true ); 1076 setModified( true );
1077} 1077}
1078 1078
1079void KABCore::setWhoAmI() 1079void KABCore::setWhoAmI()
1080{ 1080{
1081 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 1081 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
1082 1082
1083 if ( addrList.count() > 1 ) { 1083 if ( addrList.count() > 1 ) {
1084 KMessageBox::sorry( this, i18n( "Please select only one contact." ) ); 1084 KMessageBox::sorry( this, i18n( "Please select only one contact." ) );
1085 return; 1085 return;
1086 } 1086 }
1087 1087
1088 QString text( i18n( "<qt>Do you really want to use <b>%1</b> as your new personal contact?</qt>" ) ); 1088 QString text( i18n( "<qt>Do you really want to use <b>%1</b> as your new personal contact?</qt>" ) );
1089 if ( KMessageBox::questionYesNo( this, text.arg( addrList[ 0 ].assembledName() ) ) == KMessageBox::Yes ) 1089 if ( KMessageBox::questionYesNo( this, text.arg( addrList[ 0 ].assembledName() ) ) == KMessageBox::Yes )
1090 static_cast<KABC::StdAddressBook*>( KABC::StdAddressBook::self() )->setWhoAmI( addrList[ 0 ] ); 1090 static_cast<KABC::StdAddressBook*>( KABC::StdAddressBook::self() )->setWhoAmI( addrList[ 0 ] );
1091} 1091}
1092void KABCore::editCategories() 1092void KABCore::editCategories()
1093{ 1093{
1094 KPIM::CategoryEditDialog dlg ( KABPrefs::instance(), this, "", true ); 1094 KPIM::CategoryEditDialog dlg ( KABPrefs::instance(), this, "", true );
1095 dlg.exec(); 1095 dlg.exec();
1096} 1096}
1097void KABCore::setCategories() 1097void KABCore::setCategories()
1098{ 1098{
1099 1099
1100 QStringList uids; 1100 QStringList uids;
1101 XXPortSelectDialog dlgx( this, false, this ); 1101 XXPortSelectDialog dlgx( this, false, this );
1102 if ( dlgx.exec() ) 1102 if ( dlgx.exec() )
1103 uids = dlgx.uids(); 1103 uids = dlgx.uids();
1104 else 1104 else
1105 return; 1105 return;
1106 if ( uids.isEmpty() ) 1106 if ( uids.isEmpty() )
1107 return; 1107 return;
1108 // qDebug("count %d ", uids.count()); 1108 // qDebug("count %d ", uids.count());
1109 1109
1110 1110
1111 KPIM::CategorySelectDialog dlg( KABPrefs::instance(), this, "", true ); 1111 KPIM::CategorySelectDialog dlg( KABPrefs::instance(), this, "", true );
1112 if ( !dlg.exec() ) { 1112 if ( !dlg.exec() ) {
1113 message( i18n("Setting categories cancelled") ); 1113 message( i18n("Setting categories cancelled") );
1114 return; 1114 return;
1115 } 1115 }
1116 bool merge = false; 1116 bool merge = false;
1117 QString msg = i18n( "Merge with existing categories?" ); 1117 QString msg = i18n( "Merge with existing categories?" );
1118 if ( KMessageBox::questionYesNo( this, msg ) == KMessageBox::Yes ) 1118 if ( KMessageBox::questionYesNo( this, msg ) == KMessageBox::Yes )
1119 merge = true; 1119 merge = true;
1120 1120
1121 message( i18n("Setting categories ... please wait!") ); 1121 message( i18n("Setting categories ... please wait!") );
1122 QStringList categories = dlg.selectedCategories(); 1122 QStringList categories = dlg.selectedCategories();
1123 1123
1124 //QStringList uids = mViewManager->selectedUids(); 1124 //QStringList uids = mViewManager->selectedUids();
1125 QStringList::Iterator it; 1125 QStringList::Iterator it;
1126 for ( it = uids.begin(); it != uids.end(); ++it ) { 1126 for ( it = uids.begin(); it != uids.end(); ++it ) {
1127 KABC::Addressee addr = mAddressBook->findByUid( *it ); 1127 KABC::Addressee addr = mAddressBook->findByUid( *it );
1128 if ( !addr.isEmpty() ) { 1128 if ( !addr.isEmpty() ) {
1129 if ( !merge ) 1129 if ( !merge )
1130 addr.setCategories( categories ); 1130 addr.setCategories( categories );
1131 else { 1131 else {
1132 QStringList addrCategories = addr.categories(); 1132 QStringList addrCategories = addr.categories();
1133 QStringList::Iterator catIt; 1133 QStringList::Iterator catIt;
1134 for ( catIt = categories.begin(); catIt != categories.end(); ++catIt ) { 1134 for ( catIt = categories.begin(); catIt != categories.end(); ++catIt ) {
1135 if ( !addrCategories.contains( *catIt ) ) 1135 if ( !addrCategories.contains( *catIt ) )
1136 addrCategories.append( *catIt ); 1136 addrCategories.append( *catIt );
1137 } 1137 }
1138 addr.setCategories( addrCategories ); 1138 addr.setCategories( addrCategories );
1139 } 1139 }
1140 mAddressBook->insertAddressee( addr ); 1140 mAddressBook->insertAddressee( addr );
1141 } 1141 }
1142 } 1142 }
1143 1143
1144 if ( uids.count() > 0 ) 1144 if ( uids.count() > 0 )
1145 setModified( true ); 1145 setModified( true );
1146 message( i18n("Setting categories completed!") ); 1146 message( i18n("Setting categories completed!") );
1147} 1147}
1148 1148
1149void KABCore::setSearchFields( const KABC::Field::List &fields ) 1149void KABCore::setSearchFields( const KABC::Field::List &fields )
1150{ 1150{
1151 mIncSearchWidget->setFields( fields ); 1151 mIncSearchWidget->setFields( fields );
1152} 1152}
1153 1153
1154void KABCore::incrementalSearch( const QString& text ) 1154void KABCore::incrementalSearch( const QString& text )
1155{ 1155{
1156 mViewManager->doSearch( text, mIncSearchWidget->currentField() ); 1156 mViewManager->doSearch( text, mIncSearchWidget->currentField() );
1157} 1157}
1158 1158
1159void KABCore::setModified() 1159void KABCore::setModified()
1160{ 1160{
1161 setModified( true ); 1161 setModified( true );
1162} 1162}
1163 1163
1164void KABCore::setModifiedWOrefresh() 1164void KABCore::setModifiedWOrefresh()
1165{ 1165{
1166 // qDebug("KABCore::setModifiedWOrefresh() "); 1166 // qDebug("KABCore::setModifiedWOrefresh() ");
1167 mModified = true; 1167 mModified = true;
1168 mActionSave->setEnabled( mModified ); 1168 mActionSave->setEnabled( mModified );
1169 1169
1170 1170
1171} 1171}
1172void KABCore::setModified( bool modified ) 1172void KABCore::setModified( bool modified )
1173{ 1173{
1174 mModified = modified; 1174 mModified = modified;
1175 mActionSave->setEnabled( mModified ); 1175 mActionSave->setEnabled( mModified );
1176 1176
1177 if ( modified ) 1177 if ( modified )
1178 mJumpButtonBar->recreateButtons(); 1178 mJumpButtonBar->recreateButtons();
1179 1179
1180 mViewManager->refreshView(); 1180 mViewManager->refreshView();
1181 1181
1182} 1182}
1183 1183
1184bool KABCore::modified() const 1184bool KABCore::modified() const
1185{ 1185{
1186 return mModified; 1186 return mModified;
1187} 1187}
1188 1188
1189void KABCore::contactModified( const KABC::Addressee &addr ) 1189void KABCore::contactModified( const KABC::Addressee &addr )
1190{ 1190{
1191 addrModified( addr ); 1191 addrModified( addr );
1192#if 0 // debug only 1192#if 0 // debug only
1193 KABC::Addressee ad = addr; 1193 KABC::Addressee ad = addr;
1194 ad.computeCsum( "123"); 1194 ad.computeCsum( "123");
1195#endif 1195#endif
1196} 1196}
1197 1197
1198void KABCore::addrModified( const KABC::Addressee &addr ,bool updateDetails ) 1198void KABCore::addrModified( const KABC::Addressee &addr ,bool updateDetails )
1199{ 1199{
1200 1200
1201 Command *command = 0; 1201 Command *command = 0;
1202 QString uid; 1202 QString uid;
1203 1203
1204 // check if it exists already 1204 // check if it exists already
1205 KABC::Addressee origAddr = mAddressBook->findByUid( addr.uid() ); 1205 KABC::Addressee origAddr = mAddressBook->findByUid( addr.uid() );
1206 if ( origAddr.isEmpty() ) 1206 if ( origAddr.isEmpty() )
1207 command = new PwNewCommand( mAddressBook, addr ); 1207 command = new PwNewCommand( mAddressBook, addr );
1208 else { 1208 else {
1209 command = new PwEditCommand( mAddressBook, origAddr, addr ); 1209 command = new PwEditCommand( mAddressBook, origAddr, addr );
1210 uid = addr.uid(); 1210 uid = addr.uid();
1211 } 1211 }
1212 1212
1213 UndoStack::instance()->push( command ); 1213 UndoStack::instance()->push( command );
1214 RedoStack::instance()->clear(); 1214 RedoStack::instance()->clear();
1215 if ( updateDetails ) 1215 if ( updateDetails )
1216 mDetails->setAddressee( addr ); 1216 mDetails->setAddressee( addr );
1217 setModified( true ); 1217 setModified( true );
1218} 1218}
1219 1219
1220void KABCore::newContact() 1220void KABCore::newContact()
1221{ 1221{
1222 1222
1223 1223
1224 QPtrList<KABC::Resource> kabcResources = mAddressBook->resources(); 1224 QPtrList<KABC::Resource> kabcResources = mAddressBook->resources();
1225 1225
1226 QPtrList<KRES::Resource> kresResources; 1226 QPtrList<KRES::Resource> kresResources;
1227 QPtrListIterator<KABC::Resource> it( kabcResources ); 1227 QPtrListIterator<KABC::Resource> it( kabcResources );
1228 KABC::Resource *resource; 1228 KABC::Resource *resource;
1229 while ( ( resource = it.current() ) != 0 ) { 1229 while ( ( resource = it.current() ) != 0 ) {
1230 ++it; 1230 ++it;
1231 if ( !resource->readOnly() ) { 1231 if ( !resource->readOnly() ) {
1232 KRES::Resource *res = static_cast<KRES::Resource*>( resource ); 1232 KRES::Resource *res = static_cast<KRES::Resource*>( resource );
1233 if ( res ) 1233 if ( res )
1234 kresResources.append( res ); 1234 kresResources.append( res );
1235 } 1235 }
1236 } 1236 }
1237 1237
1238 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, this ); 1238 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, this );
1239 resource = static_cast<KABC::Resource*>( res ); 1239 resource = static_cast<KABC::Resource*>( res );
1240 1240
1241 if ( resource ) { 1241 if ( resource ) {
1242 KABC::Addressee addr; 1242 KABC::Addressee addr;
1243 addr.setResource( resource ); 1243 addr.setResource( resource );
1244 mEditorDialog->setAddressee( addr ); 1244 mEditorDialog->setAddressee( addr );
1245 KApplication::execDialog ( mEditorDialog ); 1245 KApplication::execDialog ( mEditorDialog );
1246 1246
1247 } else 1247 } else
1248 return; 1248 return;
1249 1249
1250 // mEditorDict.insert( dialog->addressee().uid(), dialog ); 1250 // mEditorDict.insert( dialog->addressee().uid(), dialog );
1251 1251
1252 1252
1253} 1253}
1254 1254
1255void KABCore::addEmail( QString aStr ) 1255void KABCore::addEmail( QString aStr )
1256{ 1256{
1257#ifndef KAB_EMBEDDED 1257#ifndef KAB_EMBEDDED
1258 QString fullName, email; 1258 QString fullName, email;
1259 1259
1260 KABC::Addressee::parseEmailAddress( aStr, fullName, email ); 1260 KABC::Addressee::parseEmailAddress( aStr, fullName, email );
1261 1261
1262 // Try to lookup the addressee matching the email address 1262 // Try to lookup the addressee matching the email address
1263 bool found = false; 1263 bool found = false;
1264 QStringList emailList; 1264 QStringList emailList;
1265 KABC::AddressBook::Iterator it; 1265 KABC::AddressBook::Iterator it;
1266 for ( it = mAddressBook->begin(); !found && (it != mAddressBook->end()); ++it ) { 1266 for ( it = mAddressBook->begin(); !found && (it != mAddressBook->end()); ++it ) {
1267 emailList = (*it).emails(); 1267 emailList = (*it).emails();
1268 if ( emailList.contains( email ) > 0 ) { 1268 if ( emailList.contains( email ) > 0 ) {
1269 found = true; 1269 found = true;
1270 (*it).setNameFromString( fullName ); 1270 (*it).setNameFromString( fullName );
1271 editContact( (*it).uid() ); 1271 editContact( (*it).uid() );
1272 } 1272 }
1273 } 1273 }
1274 1274
1275 if ( !found ) { 1275 if ( !found ) {
1276 KABC::Addressee addr; 1276 KABC::Addressee addr;
1277 addr.setNameFromString( fullName ); 1277 addr.setNameFromString( fullName );
1278 addr.insertEmail( email, true ); 1278 addr.insertEmail( email, true );
1279 1279
1280 mAddressBook->insertAddressee( addr ); 1280 mAddressBook->insertAddressee( addr );
1281 mViewManager->refreshView( addr.uid() ); 1281 mViewManager->refreshView( addr.uid() );
1282 editContact( addr.uid() ); 1282 editContact( addr.uid() );
1283 } 1283 }
1284#else //KAB_EMBEDDED 1284#else //KAB_EMBEDDED
1285 qDebug("KABCore::addEmail finsih method"); 1285 qDebug("KABCore::addEmail finsih method");
1286#endif //KAB_EMBEDDED 1286#endif //KAB_EMBEDDED
1287} 1287}
1288 1288
1289void KABCore::importVCard( const KURL &url, bool showPreview ) 1289void KABCore::importVCard( const KURL &url, bool showPreview )
1290{ 1290{
1291 mXXPortManager->importVCard( url, showPreview ); 1291 mXXPortManager->importVCard( url, showPreview );
1292} 1292}
1293void KABCore::importFromOL() 1293void KABCore::importFromOL()
1294{ 1294{
1295#ifdef _OL_IMPORT_ 1295#ifdef _OL_IMPORT_
1296 KAImportOLdialog* idgl = new KAImportOLdialog( i18n("Import Contacts from OL"), mAddressBook, this ); 1296 KAImportOLdialog* idgl = new KAImportOLdialog( i18n("Import Contacts from OL"), mAddressBook, this );
1297 idgl->exec(); 1297 idgl->exec();
1298 KABC::Addressee::List list = idgl->getAddressList(); 1298 KABC::Addressee::List list = idgl->getAddressList();
1299 if ( list.count() > 0 ) { 1299 if ( list.count() > 0 ) {
1300 KABC::Addressee::List listNew; 1300 KABC::Addressee::List listNew;
1301 KABC::Addressee::List listExisting; 1301 KABC::Addressee::List listExisting;
1302 KABC::Addressee::List::Iterator it; 1302 KABC::Addressee::List::Iterator it;
1303 KABC::AddressBook::Iterator iter; 1303 KABC::AddressBook::Iterator iter;
1304 for ( it = list.begin(); it != list.end(); ++it ) { 1304 for ( it = list.begin(); it != list.end(); ++it ) {
1305 if ( mAddressBook->findByUid((*it).uid() ).isEmpty()) 1305 if ( mAddressBook->findByUid((*it).uid() ).isEmpty())
1306 listNew.append( (*it) ); 1306 listNew.append( (*it) );
1307 else 1307 else
1308 listExisting.append( (*it) ); 1308 listExisting.append( (*it) );
1309 } 1309 }
1310 if ( listExisting.count() > 0 ) 1310 if ( listExisting.count() > 0 )
1311 KMessageBox::information( this, i18n("%1 contacts not added to addressbook\nbecause they were already in the addressbook!").arg( listExisting.count() )); 1311 KMessageBox::information( this, i18n("%1 contacts not added to addressbook\nbecause they were already in the addressbook!").arg( listExisting.count() ));
1312 if ( listNew.count() > 0 ) { 1312 if ( listNew.count() > 0 ) {
1313 pasteWithNewUid = false; 1313 pasteWithNewUid = false;
1314 pasteContacts( listNew ); 1314 pasteContacts( listNew );
1315 pasteWithNewUid = true; 1315 pasteWithNewUid = true;
1316 } 1316 }
1317 } 1317 }
1318 delete idgl; 1318 delete idgl;
1319#endif 1319#endif
1320} 1320}
1321 1321
1322void KABCore::importVCard( const QString &vCard, bool showPreview ) 1322void KABCore::importVCard( const QString &vCard, bool showPreview )
1323{ 1323{
1324 mXXPortManager->importVCard( vCard, showPreview ); 1324 mXXPortManager->importVCard( vCard, showPreview );
1325} 1325}
1326 1326
1327//US added a second method without defaultparameter 1327//US added a second method without defaultparameter
1328void KABCore::editContact2() { 1328void KABCore::editContact2() {
1329 editContact( QString::null ); 1329 editContact( QString::null );
1330} 1330}
1331 1331
1332void KABCore::editContact( const QString &uid ) 1332void KABCore::editContact( const QString &uid )
1333{ 1333{
1334 1334
1335 if ( mExtensionManager->isQuickEditVisible() ) 1335 if ( mExtensionManager->isQuickEditVisible() )
1336 return; 1336 return;
1337 1337
1338 // First, locate the contact entry 1338 // First, locate the contact entry
1339 QString localUID = uid; 1339 QString localUID = uid;
1340 if ( localUID.isNull() ) { 1340 if ( localUID.isNull() ) {
1341 QStringList uidList = mViewManager->selectedUids(); 1341 QStringList uidList = mViewManager->selectedUids();
1342 if ( uidList.count() > 0 ) 1342 if ( uidList.count() > 0 )
1343 localUID = *( uidList.at( 0 ) ); 1343 localUID = *( uidList.at( 0 ) );
1344 } 1344 }
1345 1345
1346 KABC::Addressee addr = mAddressBook->findByUid( localUID ); 1346 KABC::Addressee addr = mAddressBook->findByUid( localUID );
1347 if ( !addr.isEmpty() ) { 1347 if ( !addr.isEmpty() ) {
1348 mEditorDialog->setAddressee( addr ); 1348 mEditorDialog->setAddressee( addr );
1349 KApplication::execDialog ( mEditorDialog ); 1349 KApplication::execDialog ( mEditorDialog );
1350 } 1350 }
1351} 1351}
1352 1352
1353/** 1353/**
1354 Shows or edits the detail view for the given uid. If the uid is QString::null, 1354 Shows or edits the detail view for the given uid. If the uid is QString::null,
1355 the method will try to find a selected addressee in the view. 1355 the method will try to find a selected addressee in the view.
1356 */ 1356 */
1357void KABCore::executeContact( const QString &uid /*US = QString::null*/ ) 1357void KABCore::executeContact( const QString &uid /*US = QString::null*/ )
1358{ 1358{
1359 if ( mMultipleViewsAtOnce ) 1359 if ( mMultipleViewsAtOnce )
1360 { 1360 {
1361 editContact( uid ); 1361 editContact( uid );
1362 } 1362 }
1363 else 1363 else
1364 { 1364 {
1365 setDetailsVisible( true ); 1365 setDetailsVisible( true );
1366 mActionDetails->setChecked(true); 1366 mActionDetails->setChecked(true);
1367 } 1367 }
1368 1368
1369} 1369}
1370 1370
1371void KABCore::save() 1371void KABCore::save()
1372{ 1372{
1373 if (syncManager->blockSave()) 1373 if (syncManager->blockSave())
1374 return; 1374 return;
1375 if ( !mModified ) 1375 if ( !mModified )
1376 return; 1376 return;
1377 1377
1378 syncManager->setBlockSave(true); 1378 syncManager->setBlockSave(true);
1379 QString text = i18n( "There was an error while attempting to save\n the " 1379 QString text = i18n( "There was an error while attempting to save\n the "
1380 "address book. Please check that some \nother application is " 1380 "address book. Please check that some \nother application is "
1381 "not using it. " ); 1381 "not using it. " );
1382 message(i18n("Saving ... please wait! "), false); 1382 message(i18n("Saving ... please wait! "), false);
1383 //qApp->processEvents(); 1383 //qApp->processEvents();
1384#ifndef KAB_EMBEDDED 1384#ifndef KAB_EMBEDDED
1385 KABC::StdAddressBook *b = dynamic_cast<KABC::StdAddressBook*>( mAddressBook ); 1385 KABC::StdAddressBook *b = dynamic_cast<KABC::StdAddressBook*>( mAddressBook );
1386 if ( !b || !b->save() ) { 1386 if ( !b || !b->save() ) {
1387 KMessageBox::error( this, text, i18n( "Unable to Save" ) ); 1387 KMessageBox::error( this, text, i18n( "Unable to Save" ) );
1388 } 1388 }
1389#else //KAB_EMBEDDED 1389#else //KAB_EMBEDDED
1390 KABC::StdAddressBook *b = (KABC::StdAddressBook*)( mAddressBook ); 1390 KABC::StdAddressBook *b = (KABC::StdAddressBook*)( mAddressBook );
1391 if ( !b || !b->save() ) { 1391 if ( !b || !b->save() ) {
1392 QMessageBox::critical( this, i18n( "Unable to Save" ), text, i18n("Ok")); 1392 QMessageBox::critical( this, i18n( "Unable to Save" ), text, i18n("Ok"));
1393 } 1393 }
1394#endif //KAB_EMBEDDED 1394#endif //KAB_EMBEDDED
1395 1395
1396 message(i18n("Addressbook saved!")); 1396 message(i18n("Addressbook saved!"));
1397 setModified( false ); 1397 setModified( false );
1398 syncManager->setBlockSave(false); 1398 syncManager->setBlockSave(false);
1399} 1399}
1400 1400
1401 1401
1402void KABCore::undo() 1402void KABCore::undo()
1403{ 1403{
1404 UndoStack::instance()->undo(); 1404 UndoStack::instance()->undo();
1405 1405
1406 // Refresh the view 1406 // Refresh the view
1407 mViewManager->refreshView(); 1407 mViewManager->refreshView();
1408} 1408}
1409 1409
1410void KABCore::redo() 1410void KABCore::redo()
1411{ 1411{
1412 RedoStack::instance()->redo(); 1412 RedoStack::instance()->redo();
1413 1413
1414 // Refresh the view 1414 // Refresh the view
1415 mViewManager->refreshView(); 1415 mViewManager->refreshView();
1416} 1416}
1417 1417void KABCore::setJumpButtonBar( bool visible )
1418{
1419 setJumpButtonBarVisible(visible );
1420 saveSettings();
1421}
1418void KABCore::setJumpButtonBarVisible( bool visible ) 1422void KABCore::setJumpButtonBarVisible( bool visible )
1419{ 1423{
1420 if (mMultipleViewsAtOnce) 1424 if (mMultipleViewsAtOnce)
1421 { 1425 {
1422 if ( visible ) 1426 if ( visible )
1423 mJumpButtonBar->show(); 1427 mJumpButtonBar->show();
1424 else 1428 else
1425 mJumpButtonBar->hide(); 1429 mJumpButtonBar->hide();
1426 } 1430 }
1427 else 1431 else
1428 { 1432 {
1429 // show the jumpbar only if "the details are hidden" == "viewmanager are shown" 1433 // show the jumpbar only if "the details are hidden" == "viewmanager are shown"
1430 if (mViewManager->isVisible()) 1434 if (mViewManager->isVisible())
1431 { 1435 {
1432 if ( visible ) 1436 if ( visible )
1433 mJumpButtonBar->show(); 1437 mJumpButtonBar->show();
1434 else 1438 else
1435 mJumpButtonBar->hide(); 1439 mJumpButtonBar->hide();
1436 } 1440 }
1437 else 1441 else
1438 { 1442 {
1439 mJumpButtonBar->hide(); 1443 mJumpButtonBar->hide();
1440 } 1444 }
1441 } 1445 }
1442} 1446}
1443 1447
1444 1448
1445void KABCore::setDetailsToState() 1449void KABCore::setDetailsToState()
1446{ 1450{
1447 setDetailsVisible( mActionDetails->isChecked() ); 1451 setDetailsVisible( mActionDetails->isChecked() );
1448} 1452}
1449void KABCore::setDetailsToggle() 1453void KABCore::setDetailsToggle()
1450{ 1454{
1451 mActionDetails->setChecked( !mActionDetails->isChecked() ); 1455 mActionDetails->setChecked( !mActionDetails->isChecked() );
1452 setDetailsToState(); 1456 setDetailsToState();
1453} 1457}
1454 1458
1455 1459
1456 1460
1457void KABCore::setDetailsVisible( bool visible ) 1461void KABCore::setDetailsVisible( bool visible )
1458{ 1462{
1459 if (visible && mDetails->isHidden()) 1463 if (visible && mDetails->isHidden())
1460 { 1464 {
1461 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 1465 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
1462 if ( addrList.count() > 0 ) 1466 if ( addrList.count() > 0 )
1463 mDetails->setAddressee( addrList[ 0 ] ); 1467 mDetails->setAddressee( addrList[ 0 ] );
1464 } 1468 }
1465 1469
1466 // mMultipleViewsAtOnce=false: mDetails is always visible. But we switch between 1470 // mMultipleViewsAtOnce=false: mDetails is always visible. But we switch between
1467 // the listview and the detailview. We do that by changing the splitbar size. 1471 // the listview and the detailview. We do that by changing the splitbar size.
1468 if (mMultipleViewsAtOnce) 1472 if (mMultipleViewsAtOnce)
1469 { 1473 {
1470 if ( visible ) 1474 if ( visible )
1471 mDetails->show(); 1475 mDetails->show();
1472 else 1476 else
1473 mDetails->hide(); 1477 mDetails->hide();
1474 } 1478 }
1475 else 1479 else
1476 { 1480 {
1477 if ( visible ) { 1481 if ( visible ) {
1478 mViewManager->hide(); 1482 mViewManager->hide();
1479 mDetails->show(); 1483 mDetails->show();
1480 mIncSearchWidget->setFocus(); 1484 mIncSearchWidget->setFocus();
1481 } 1485 }
1482 else { 1486 else {
1483 mViewManager->show(); 1487 mViewManager->show();
1484 mDetails->hide(); 1488 mDetails->hide();
1485 mViewManager->setFocusAV(); 1489 mViewManager->setFocusAV();
1486 } 1490 }
1487 setJumpButtonBarVisible( !visible ); 1491 setJumpButtonBarVisible( !visible );
1488 } 1492 }
1489 1493
1490} 1494}
1491 1495
1492void KABCore::extensionChanged( int id ) 1496void KABCore::extensionChanged( int id )
1493{ 1497{
1494 //change the details view only for non desktop systems 1498 //change the details view only for non desktop systems
1495#ifndef DESKTOP_VERSION 1499#ifndef DESKTOP_VERSION
1496 1500
1497 if (id == 0) 1501 if (id == 0)
1498 { 1502 {
1499 //the user disabled the extension. 1503 //the user disabled the extension.
1500 1504
1501 if (mMultipleViewsAtOnce) 1505 if (mMultipleViewsAtOnce)
1502 { // enable detailsview again 1506 { // enable detailsview again
1503 setDetailsVisible( true ); 1507 setDetailsVisible( true );
1504 mActionDetails->setChecked( true ); 1508 mActionDetails->setChecked( true );
1505 } 1509 }
1506 else 1510 else
1507 { //go back to the listview 1511 { //go back to the listview
1508 setDetailsVisible( false ); 1512 setDetailsVisible( false );
1509 mActionDetails->setChecked( false ); 1513 mActionDetails->setChecked( false );
1510 mActionDetails->setEnabled(true); 1514 mActionDetails->setEnabled(true);
1511 } 1515 }
1512 1516
1513 } 1517 }
1514 else 1518 else
1515 { 1519 {
1516 //the user enabled the extension. 1520 //the user enabled the extension.
1517 setDetailsVisible( false ); 1521 setDetailsVisible( false );
1518 mActionDetails->setChecked( false ); 1522 mActionDetails->setChecked( false );
1519 1523
1520 if (!mMultipleViewsAtOnce) 1524 if (!mMultipleViewsAtOnce)
1521 { 1525 {
1522 mActionDetails->setEnabled(false); 1526 mActionDetails->setEnabled(false);
1523 } 1527 }
1524 1528
1525 mExtensionManager->setSelectionChanged(); 1529 mExtensionManager->setSelectionChanged();
1526 1530
1527 } 1531 }
1528 1532
1529#endif// DESKTOP_VERSION 1533#endif// DESKTOP_VERSION
1530 1534
1531} 1535}
1532 1536
1533 1537
1534void KABCore::extensionModified( const KABC::Addressee::List &list ) 1538void KABCore::extensionModified( const KABC::Addressee::List &list )
1535{ 1539{
1536 1540
1537 if ( list.count() != 0 ) { 1541 if ( list.count() != 0 ) {
1538 KABC::Addressee::List::ConstIterator it; 1542 KABC::Addressee::List::ConstIterator it;
1539 for ( it = list.begin(); it != list.end(); ++it ) 1543 for ( it = list.begin(); it != list.end(); ++it )
1540 mAddressBook->insertAddressee( *it ); 1544 mAddressBook->insertAddressee( *it );
1541 if ( list.count() > 1 ) 1545 if ( list.count() > 1 )
1542 setModified(); 1546 setModified();
1543 else 1547 else
1544 setModifiedWOrefresh(); 1548 setModifiedWOrefresh();
1545 } 1549 }
1546 if ( list.count() == 0 ) 1550 if ( list.count() == 0 )
1547 mViewManager->refreshView(); 1551 mViewManager->refreshView();
1548 else 1552 else
1549 mViewManager->refreshView( list[ 0 ].uid() ); 1553 mViewManager->refreshView( list[ 0 ].uid() );
1550 1554
1551 1555
1552 1556
1553} 1557}
1554 1558
1555QString KABCore::getNameByPhone( const QString &phone ) 1559QString KABCore::getNameByPhone( const QString &phone )
1556{ 1560{
1557#ifndef KAB_EMBEDDED 1561#ifndef KAB_EMBEDDED
1558 QRegExp r( "[/*/-/ ]" ); 1562 QRegExp r( "[/*/-/ ]" );
1559 QString localPhone( phone ); 1563 QString localPhone( phone );
1560 1564
1561 bool found = false; 1565 bool found = false;
1562 QString ownerName = ""; 1566 QString ownerName = "";
1563 KABC::AddressBook::Iterator iter; 1567 KABC::AddressBook::Iterator iter;
1564 KABC::PhoneNumber::List::Iterator phoneIter; 1568 KABC::PhoneNumber::List::Iterator phoneIter;
1565 KABC::PhoneNumber::List phoneList; 1569 KABC::PhoneNumber::List phoneList;
1566 for ( iter = mAddressBook->begin(); !found && ( iter != mAddressBook->end() ); ++iter ) { 1570 for ( iter = mAddressBook->begin(); !found && ( iter != mAddressBook->end() ); ++iter ) {
1567 phoneList = (*iter).phoneNumbers(); 1571 phoneList = (*iter).phoneNumbers();
1568 for ( phoneIter = phoneList.begin(); !found && ( phoneIter != phoneList.end() ); 1572 for ( phoneIter = phoneList.begin(); !found && ( phoneIter != phoneList.end() );
1569 ++phoneIter) { 1573 ++phoneIter) {
1570 // Get rid of separator chars so just the numbers are compared. 1574 // Get rid of separator chars so just the numbers are compared.
1571 if ( (*phoneIter).number().replace( r, "" ) == localPhone.replace( r, "" ) ) { 1575 if ( (*phoneIter).number().replace( r, "" ) == localPhone.replace( r, "" ) ) {
1572 ownerName = (*iter).formattedName(); 1576 ownerName = (*iter).formattedName();
1573 found = true; 1577 found = true;
1574 } 1578 }
1575 } 1579 }
1576 } 1580 }
1577 1581
1578 return ownerName; 1582 return ownerName;
1579#else //KAB_EMBEDDED 1583#else //KAB_EMBEDDED
1580 qDebug("KABCore::getNameByPhone finsih method"); 1584 qDebug("KABCore::getNameByPhone finsih method");
1581 return ""; 1585 return "";
1582#endif //KAB_EMBEDDED 1586#endif //KAB_EMBEDDED
1583 1587
1584} 1588}
1585 1589
1586void KABCore::openConfigDialog() 1590void KABCore::openConfigDialog()
1587{ 1591{
1588 KCMultiDialog* ConfigureDialog = new KCMultiDialog( "PIM", this ,"kabconfigdialog", true ); 1592 KCMultiDialog* ConfigureDialog = new KCMultiDialog( "PIM", this ,"kabconfigdialog", true );
1589 KCMKabConfig* kabcfg = new KCMKabConfig( ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" ); 1593 KCMKabConfig* kabcfg = new KCMKabConfig( ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" );
1590 ConfigureDialog->addModule(kabcfg ); 1594 ConfigureDialog->addModule(kabcfg );
1591 KCMKdePimConfig* kdelibcfg = new KCMKdePimConfig( ConfigureDialog->getNewVBoxPage(i18n( "Global")) , "KCMKdeLibConfig" ); 1595 KCMKdePimConfig* kdelibcfg = new KCMKdePimConfig( ConfigureDialog->getNewVBoxPage(i18n( "Global")) , "KCMKdeLibConfig" );
1592 ConfigureDialog->addModule(kdelibcfg ); 1596 ConfigureDialog->addModule(kdelibcfg );
1593 1597
1594 connect( ConfigureDialog, SIGNAL( applyClicked() ), 1598 connect( ConfigureDialog, SIGNAL( applyClicked() ),
1595 this, SLOT( configurationChanged() ) ); 1599 this, SLOT( configurationChanged() ) );
1596 connect( ConfigureDialog, SIGNAL( okClicked() ), 1600 connect( ConfigureDialog, SIGNAL( okClicked() ),
1597 this, SLOT( configurationChanged() ) ); 1601 this, SLOT( configurationChanged() ) );
1598 saveSettings(); 1602 saveSettings();
1599#ifndef DESKTOP_VERSION 1603#ifndef DESKTOP_VERSION
1600 ConfigureDialog->showMaximized(); 1604 ConfigureDialog->showMaximized();
1601#endif 1605#endif
1602 if ( ConfigureDialog->exec() ) 1606 if ( ConfigureDialog->exec() )
1603 KMessageBox::information( this, i18n("Some changes are only\neffective after a restart!\n") ); 1607 KMessageBox::information( this, i18n("Some changes are only\neffective after a restart!\n") );
1604 delete ConfigureDialog; 1608 delete ConfigureDialog;
1605} 1609}
1606 1610
1607void KABCore::openLDAPDialog() 1611void KABCore::openLDAPDialog()
1608{ 1612{
1609#ifndef KAB_EMBEDDED 1613#ifndef KAB_EMBEDDED
1610 if ( !mLdapSearchDialog ) { 1614 if ( !mLdapSearchDialog ) {
1611 mLdapSearchDialog = new LDAPSearchDialog( mAddressBook, this ); 1615 mLdapSearchDialog = new LDAPSearchDialog( mAddressBook, this );
1612 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), mViewManager, 1616 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), mViewManager,
1613 SLOT( refreshView() ) ); 1617 SLOT( refreshView() ) );
1614 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), this, 1618 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), this,
1615 SLOT( setModified() ) ); 1619 SLOT( setModified() ) );
1616 } else 1620 } else
1617 mLdapSearchDialog->restoreSettings(); 1621 mLdapSearchDialog->restoreSettings();
1618 1622
1619 if ( mLdapSearchDialog->isOK() ) 1623 if ( mLdapSearchDialog->isOK() )
1620 mLdapSearchDialog->exec(); 1624 mLdapSearchDialog->exec();
1621#else //KAB_EMBEDDED 1625#else //KAB_EMBEDDED
1622 qDebug("KABCore::openLDAPDialog() finsih method"); 1626 qDebug("KABCore::openLDAPDialog() finsih method");
1623#endif //KAB_EMBEDDED 1627#endif //KAB_EMBEDDED
1624} 1628}
1625 1629
1626void KABCore::print() 1630void KABCore::print()
1627{ 1631{
1628#ifndef KAB_EMBEDDED 1632#ifndef KAB_EMBEDDED
1629 KPrinter printer; 1633 KPrinter printer;
1630 if ( !printer.setup( this ) ) 1634 if ( !printer.setup( this ) )
1631 return; 1635 return;
1632 1636
1633 KABPrinting::PrintingWizard wizard( &printer, mAddressBook, 1637 KABPrinting::PrintingWizard wizard( &printer, mAddressBook,
1634 mViewManager->selectedUids(), this ); 1638 mViewManager->selectedUids(), this );
1635 1639
1636 wizard.exec(); 1640 wizard.exec();
1637#else //KAB_EMBEDDED 1641#else //KAB_EMBEDDED
1638 qDebug("KABCore::print() finsih method"); 1642 qDebug("KABCore::print() finsih method");
1639#endif //KAB_EMBEDDED 1643#endif //KAB_EMBEDDED
1640 1644
1641} 1645}
1642 1646
1643 1647
1644void KABCore::addGUIClient( KXMLGUIClient *client ) 1648void KABCore::addGUIClient( KXMLGUIClient *client )
1645{ 1649{
1646 if ( mGUIClient ) 1650 if ( mGUIClient )
1647 mGUIClient->insertChildClient( client ); 1651 mGUIClient->insertChildClient( client );
1648 else 1652 else
1649 KMessageBox::error( this, "no KXMLGUICLient"); 1653 KMessageBox::error( this, "no KXMLGUICLient");
1650} 1654}
1651 1655
1652 1656
1653void KABCore::configurationChanged() 1657void KABCore::configurationChanged()
1654{ 1658{
1655 mExtensionManager->reconfigure(); 1659 mExtensionManager->reconfigure();
1656} 1660}
1657 1661
1658void KABCore::addressBookChanged() 1662void KABCore::addressBookChanged()
1659{ 1663{
1660/*US 1664/*US
1661 QDictIterator<AddresseeEditorDialog> it( mEditorDict ); 1665 QDictIterator<AddresseeEditorDialog> it( mEditorDict );
1662 while ( it.current() ) { 1666 while ( it.current() ) {
1663 if ( it.current()->dirty() ) { 1667 if ( it.current()->dirty() ) {
1664 QString text = i18n( "Data has been changed externally. Unsaved " 1668 QString text = i18n( "Data has been changed externally. Unsaved "
1665 "changes will be lost." ); 1669 "changes will be lost." );
1666 KMessageBox::information( this, text ); 1670 KMessageBox::information( this, text );
1667 } 1671 }
1668 it.current()->setAddressee( mAddressBook->findByUid( it.currentKey() ) ); 1672 it.current()->setAddressee( mAddressBook->findByUid( it.currentKey() ) );
1669 ++it; 1673 ++it;
1670 } 1674 }
1671*/ 1675*/
1672 if (mEditorDialog) 1676 if (mEditorDialog)
1673 { 1677 {
1674 if (mEditorDialog->dirty()) 1678 if (mEditorDialog->dirty())
1675 { 1679 {
1676 QString text = i18n( "Data has been changed externally. Unsaved " 1680 QString text = i18n( "Data has been changed externally. Unsaved "
1677 "changes will be lost." ); 1681 "changes will be lost." );
1678 KMessageBox::information( this, text ); 1682 KMessageBox::information( this, text );
1679 } 1683 }
1680 QString currentuid = mEditorDialog->addressee().uid(); 1684 QString currentuid = mEditorDialog->addressee().uid();
1681 mEditorDialog->setAddressee( mAddressBook->findByUid( currentuid ) ); 1685 mEditorDialog->setAddressee( mAddressBook->findByUid( currentuid ) );
1682 } 1686 }
1683 mViewManager->refreshView(); 1687 mViewManager->refreshView();
1684 1688
1685 1689
1686} 1690}
1687 1691
1688AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( QWidget *parent, 1692AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( QWidget *parent,
1689 const char *name ) 1693 const char *name )
1690{ 1694{
1691 1695
1692 if ( mEditorDialog == 0 ) { 1696 if ( mEditorDialog == 0 ) {
1693 mEditorDialog = new AddresseeEditorDialog( this, parent, 1697 mEditorDialog = new AddresseeEditorDialog( this, parent,
1694 name ? name : "editorDialog" ); 1698 name ? name : "editorDialog" );
1695 1699
1696 1700
1697 connect( mEditorDialog, SIGNAL( contactModified( const KABC::Addressee& ) ), 1701 connect( mEditorDialog, SIGNAL( contactModified( const KABC::Addressee& ) ),
1698 SLOT( contactModified( const KABC::Addressee& ) ) ); 1702 SLOT( contactModified( const KABC::Addressee& ) ) );
1699 //connect( mEditorDialog, SIGNAL( editorDestroyed( const QString& ) ), 1703 //connect( mEditorDialog, SIGNAL( editorDestroyed( const QString& ) ),
1700 // SLOT( slotEditorDestroyed( const QString& ) ) ; 1704 // SLOT( slotEditorDestroyed( const QString& ) ) ;
1701 } 1705 }
1702 1706
1703 return mEditorDialog; 1707 return mEditorDialog;
1704} 1708}
1705 1709
1706void KABCore::slotEditorDestroyed( const QString &uid ) 1710void KABCore::slotEditorDestroyed( const QString &uid )
1707{ 1711{
1708 //mEditorDict.remove( uid ); 1712 //mEditorDict.remove( uid );
1709} 1713}
1710 1714
1711void KABCore::initGUI() 1715void KABCore::initGUI()
1712{ 1716{
1713#ifndef KAB_EMBEDDED 1717#ifndef KAB_EMBEDDED
1714 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1718 QHBoxLayout *topLayout = new QHBoxLayout( this );
1715 topLayout->setSpacing( KDialogBase::spacingHint() ); 1719 topLayout->setSpacing( KDialogBase::spacingHint() );
1716 1720
1717 mExtensionBarSplitter = new QSplitter( this ); 1721 mExtensionBarSplitter = new QSplitter( this );
1718 mExtensionBarSplitter->setOrientation( Qt::Vertical ); 1722 mExtensionBarSplitter->setOrientation( Qt::Vertical );
1719 1723
1720 mDetailsSplitter = new QSplitter( mExtensionBarSplitter ); 1724 mDetailsSplitter = new QSplitter( mExtensionBarSplitter );
1721 1725
1722 QVBox *viewSpace = new QVBox( mDetailsSplitter ); 1726 QVBox *viewSpace = new QVBox( mDetailsSplitter );
1723 mIncSearchWidget = new IncSearchWidget( viewSpace ); 1727 mIncSearchWidget = new IncSearchWidget( viewSpace );
1724 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1728 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1725 SLOT( incrementalSearch( const QString& ) ) ); 1729 SLOT( incrementalSearch( const QString& ) ) );
1726 1730
1727 mViewManager = new ViewManager( this, viewSpace ); 1731 mViewManager = new ViewManager( this, viewSpace );
1728 viewSpace->setStretchFactor( mViewManager, 1 ); 1732 viewSpace->setStretchFactor( mViewManager, 1 );
1729 1733
1730 mDetails = new ViewContainer( mDetailsSplitter ); 1734 mDetails = new ViewContainer( mDetailsSplitter );
1731 1735
1732 mJumpButtonBar = new JumpButtonBar( this, this ); 1736 mJumpButtonBar = new JumpButtonBar( this, this );
1733 1737
1734 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); 1738 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter );
1735 1739
1736 topLayout->addWidget( mExtensionBarSplitter ); 1740 topLayout->addWidget( mExtensionBarSplitter );
1737 topLayout->setStretchFactor( mExtensionBarSplitter, 100 ); 1741 topLayout->setStretchFactor( mExtensionBarSplitter, 100 );
1738 topLayout->addWidget( mJumpButtonBar ); 1742 topLayout->addWidget( mJumpButtonBar );
1739 topLayout->setStretchFactor( mJumpButtonBar, 1 ); 1743 topLayout->setStretchFactor( mJumpButtonBar, 1 );
1740 1744
1741 mXXPortManager = new XXPortManager( this, this ); 1745 mXXPortManager = new XXPortManager( this, this );
1742 1746
1743#else //KAB_EMBEDDED 1747#else //KAB_EMBEDDED
1744 //US initialize viewMenu before settingup viewmanager. 1748 //US initialize viewMenu before settingup viewmanager.
1745 // Viewmanager needs this menu to plugin submenues. 1749 // Viewmanager needs this menu to plugin submenues.
1746 viewMenu = new QPopupMenu( this ); 1750 viewMenu = new QPopupMenu( this );
1747 settingsMenu = new QPopupMenu( this ); 1751 settingsMenu = new QPopupMenu( this );
1748 //filterMenu = new QPopupMenu( this ); 1752 //filterMenu = new QPopupMenu( this );
1749 ImportMenu = new QPopupMenu( this ); 1753 ImportMenu = new QPopupMenu( this );
1750 ExportMenu = new QPopupMenu( this ); 1754 ExportMenu = new QPopupMenu( this );
1751 syncMenu = new QPopupMenu( this ); 1755 syncMenu = new QPopupMenu( this );
1752 changeMenu= new QPopupMenu( this ); 1756 changeMenu= new QPopupMenu( this );
1753 beamMenu= new QPopupMenu( this ); 1757 beamMenu= new QPopupMenu( this );
1754 1758
1755//US since we have no splitter for the embedded system, setup 1759//US since we have no splitter for the embedded system, setup
1756// a layout with two frames. One left and one right. 1760// a layout with two frames. One left and one right.
1757 1761
1758 QBoxLayout *topLayout; 1762 QBoxLayout *topLayout;
1759 1763
1760 // = new QHBoxLayout( this ); 1764 // = new QHBoxLayout( this );
1761// QBoxLayout *topLayout = (QBoxLayout*)layout(); 1765// QBoxLayout *topLayout = (QBoxLayout*)layout();
1762 1766
1763// QWidget *mainBox = new QWidget( this ); 1767// QWidget *mainBox = new QWidget( this );
1764// QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox); 1768// QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox);
1765 1769
1766#ifdef DESKTOP_VERSION 1770#ifdef DESKTOP_VERSION
1767 topLayout = new QHBoxLayout( this ); 1771 topLayout = new QHBoxLayout( this );
1768 1772
1769 1773
1770 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 1774 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
1771 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 1775 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
1772 1776
1773 topLayout->addWidget(mMiniSplitter ); 1777 topLayout->addWidget(mMiniSplitter );
1774 1778
1775 mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter ); 1779 mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter );
1776 mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 1780 mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
1777 mViewManager = new ViewManager( this, mExtensionBarSplitter ); 1781 mViewManager = new ViewManager( this, mExtensionBarSplitter );
1778 mDetails = new ViewContainer( mMiniSplitter ); 1782 mDetails = new ViewContainer( mMiniSplitter );
1779 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); 1783 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter );
1780#else 1784#else
1781 if ( QApplication::desktop()->width() > 480 ) { 1785 if ( QApplication::desktop()->width() > 480 ) {
1782 topLayout = new QHBoxLayout( this ); 1786 topLayout = new QHBoxLayout( this );
1783 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 1787 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
1784 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 1788 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
1785 } else { 1789 } else {
1786 1790
1787 topLayout = new QHBoxLayout( this ); 1791 topLayout = new QHBoxLayout( this );
1788 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this); 1792 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this);
1789 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 1793 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
1790 } 1794 }
1791 1795
1792 topLayout->addWidget(mMiniSplitter ); 1796 topLayout->addWidget(mMiniSplitter );
1793 mViewManager = new ViewManager( this, mMiniSplitter ); 1797 mViewManager = new ViewManager( this, mMiniSplitter );
1794 mDetails = new ViewContainer( mMiniSplitter ); 1798 mDetails = new ViewContainer( mMiniSplitter );
1795 1799
1796 1800
1797 mExtensionManager = new ExtensionManager( this, mMiniSplitter ); 1801 mExtensionManager = new ExtensionManager( this, mMiniSplitter );
1798#endif 1802#endif
1799 //eh->hide(); 1803 //eh->hide();
1800 // topLayout->addWidget(mExtensionManager ); 1804 // topLayout->addWidget(mExtensionManager );
1801 1805
1802 1806
1803/*US 1807/*US
1804#ifndef KAB_NOSPLITTER 1808#ifndef KAB_NOSPLITTER
1805 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1809 QHBoxLayout *topLayout = new QHBoxLayout( this );
1806//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1810//US topLayout->setSpacing( KDialogBase::spacingHint() );
1807 topLayout->setSpacing( 10 ); 1811 topLayout->setSpacing( 10 );
1808 1812
1809 mDetailsSplitter = new QSplitter( this ); 1813 mDetailsSplitter = new QSplitter( this );
1810 1814
1811 QVBox *viewSpace = new QVBox( mDetailsSplitter ); 1815 QVBox *viewSpace = new QVBox( mDetailsSplitter );
1812 1816
1813 mViewManager = new ViewManager( this, viewSpace ); 1817 mViewManager = new ViewManager( this, viewSpace );
1814 viewSpace->setStretchFactor( mViewManager, 1 ); 1818 viewSpace->setStretchFactor( mViewManager, 1 );
1815 1819
1816 mDetails = new ViewContainer( mDetailsSplitter ); 1820 mDetails = new ViewContainer( mDetailsSplitter );
1817 1821
1818 topLayout->addWidget( mDetailsSplitter ); 1822 topLayout->addWidget( mDetailsSplitter );
1819 topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1823 topLayout->setStretchFactor( mDetailsSplitter, 100 );
1820#else //KAB_NOSPLITTER 1824#else //KAB_NOSPLITTER
1821 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1825 QHBoxLayout *topLayout = new QHBoxLayout( this );
1822//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1826//US topLayout->setSpacing( KDialogBase::spacingHint() );
1823 topLayout->setSpacing( 10 ); 1827 topLayout->setSpacing( 10 );
1824 1828
1825// mDetailsSplitter = new QSplitter( this ); 1829// mDetailsSplitter = new QSplitter( this );
1826 1830
1827 QVBox *viewSpace = new QVBox( this ); 1831 QVBox *viewSpace = new QVBox( this );
1828 1832
1829 mViewManager = new ViewManager( this, viewSpace ); 1833 mViewManager = new ViewManager( this, viewSpace );
1830 viewSpace->setStretchFactor( mViewManager, 1 ); 1834 viewSpace->setStretchFactor( mViewManager, 1 );
1831 1835
1832 mDetails = new ViewContainer( this ); 1836 mDetails = new ViewContainer( this );
1833 1837
1834 topLayout->addWidget( viewSpace ); 1838 topLayout->addWidget( viewSpace );
1835// topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1839// topLayout->setStretchFactor( mDetailsSplitter, 100 );
1836 topLayout->addWidget( mDetails ); 1840 topLayout->addWidget( mDetails );
1837#endif //KAB_NOSPLITTER 1841#endif //KAB_NOSPLITTER
1838*/ 1842*/
1839 1843
1840 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); 1844 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu);
1841 syncManager->setBlockSave(false); 1845 syncManager->setBlockSave(false);
1842 1846
1843 connect(syncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 1847 connect(syncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
1844 connect(syncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 1848 connect(syncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
1845 QString sync_file = sentSyncFile(); 1849 QString sync_file = sentSyncFile();
1846 //qDebug("KABCore::initGUI()::setting tmp sync file to:%s ",sync_file.latin1()); 1850 //qDebug("KABCore::initGUI()::setting tmp sync file to:%s ",sync_file.latin1());
1847 syncManager->setDefaultFileName( sync_file ); 1851 syncManager->setDefaultFileName( sync_file );
1848 //connect(syncManager , SIGNAL( ), this, SLOT( ) ); 1852 //connect(syncManager , SIGNAL( ), this, SLOT( ) );
1849 1853
1850#endif //KAB_EMBEDDED 1854#endif //KAB_EMBEDDED
1851 initActions(); 1855 initActions();
1852 1856
1853#ifdef KAB_EMBEDDED 1857#ifdef KAB_EMBEDDED
1854 addActionsManually(); 1858 addActionsManually();
1855 //US make sure the export and import menues are initialized before creating the xxPortManager. 1859 //US make sure the export and import menues are initialized before creating the xxPortManager.
1856 mXXPortManager = new XXPortManager( this, this ); 1860 mXXPortManager = new XXPortManager( this, this );
1857 1861
1858 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() ); 1862 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() );
1859 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget); 1863 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget);
1860 // mActionQuit->plug ( mMainWindow->toolBar()); 1864 // mActionQuit->plug ( mMainWindow->toolBar());
1861 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() ); 1865 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() );
1862 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget); 1866 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget);
1863 // mIncSearchWidget->hide(); 1867 // mIncSearchWidget->hide();
1864 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1868 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1865 SLOT( incrementalSearch( const QString& ) ) ); 1869 SLOT( incrementalSearch( const QString& ) ) );
1866 connect( mIncSearchWidget, SIGNAL( scrollUP() ),mViewManager, SLOT( scrollUP() ) ); 1870 connect( mIncSearchWidget, SIGNAL( scrollUP() ),mViewManager, SLOT( scrollUP() ) );
1867 connect( mIncSearchWidget, SIGNAL( scrollDOWN() ),mViewManager, SLOT( scrollDOWN() ) ); 1871 connect( mIncSearchWidget, SIGNAL( scrollDOWN() ),mViewManager, SLOT( scrollDOWN() ) );
1868 1872
1869 mJumpButtonBar = new JumpButtonBar( this, this ); 1873 mJumpButtonBar = new JumpButtonBar( this, this );
1870 1874
1871 topLayout->addWidget( mJumpButtonBar ); 1875 topLayout->addWidget( mJumpButtonBar );
1872//US topLayout->setStretchFactor( mJumpButtonBar, 10 ); 1876//US topLayout->setStretchFactor( mJumpButtonBar, 10 );
1873 1877
1874// mMainWindow->getIconToolBar()->raise(); 1878// mMainWindow->getIconToolBar()->raise();
1875 1879
1876#endif //KAB_EMBEDDED 1880#endif //KAB_EMBEDDED
1877 1881
1878} 1882}
1879void KABCore::initActions() 1883void KABCore::initActions()
1880{ 1884{
1881//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); 1885//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart);
1882 1886
1883#ifndef KAB_EMBEDDED 1887#ifndef KAB_EMBEDDED
1884 connect( QApplication::clipboard(), SIGNAL( dataChanged() ), 1888 connect( QApplication::clipboard(), SIGNAL( dataChanged() ),
1885 SLOT( clipboardDataChanged() ) ); 1889 SLOT( clipboardDataChanged() ) );
1886#endif //KAB_EMBEDDED 1890#endif //KAB_EMBEDDED
1887 1891
1888 // file menu 1892 // file menu
1889 1893
1890 mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() ); 1894 mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() );
1891 //mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() ); 1895 //mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() );
1892 mActionPrint = new KAction( i18n( "&Print View" ), "fileprint", CTRL + Key_P, mViewManager, 1896 mActionPrint = new KAction( i18n( "&Print View" ), "fileprint", CTRL + Key_P, mViewManager,
1893 SLOT( printView() ), actionCollection(), "kaddressbook_print" ); 1897 SLOT( printView() ), actionCollection(), "kaddressbook_print" );
1894 1898
1895 1899
1896 mActionPrintDetails = new KAction( i18n( "&Print Details" ), "fileprint", 0, mDetails, 1900 mActionPrintDetails = new KAction( i18n( "&Print Details" ), "fileprint", 0, mDetails,
1897 SLOT( printView() ), actionCollection(), "kaddressbook_print2" ); 1901 SLOT( printView() ), actionCollection(), "kaddressbook_print2" );
1898 1902
1899 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this, 1903 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this,
1900 SLOT( save() ), actionCollection(), "file_sync" ); 1904 SLOT( save() ), actionCollection(), "file_sync" );
1901 1905
1902 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this, 1906 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this,
1903 SLOT( newContact() ), actionCollection(), "file_new_contact" ); 1907 SLOT( newContact() ), actionCollection(), "file_new_contact" );
1904 1908
1905 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0, 1909 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0,
1906 this, SLOT( mailVCard() ), 1910 this, SLOT( mailVCard() ),
1907 actionCollection(), "file_mail_vcard"); 1911 actionCollection(), "file_mail_vcard");
1908 1912
1909 mActionExport2phone = new KAction( i18n( "Export to phone" ), "ex2phone", 0, this, 1913 mActionExport2phone = new KAction( i18n( "Export to phone" ), "ex2phone", 0, this,
1910 SLOT( export2phone() ), actionCollection(), 1914 SLOT( export2phone() ), actionCollection(),
1911 "kaddressbook_ex2phone" ); 1915 "kaddressbook_ex2phone" );
1912 1916
1913 mActionBeamVCard = 0; 1917 mActionBeamVCard = 0;
1914 mActionBeam = 0; 1918 mActionBeam = 0;
1915 1919
1916#ifndef DESKTOP_VERSION 1920#ifndef DESKTOP_VERSION
1917 if ( Ir::supported() ) { 1921 if ( Ir::supported() ) {
1918 mActionBeamVCard = new KAction( i18n( "Beam v&Card(s)..." ), "beam", 0, this, 1922 mActionBeamVCard = new KAction( i18n( "Beam v&Card(s)..." ), "beam", 0, this,
1919 SLOT( beamVCard() ), actionCollection(), 1923 SLOT( beamVCard() ), actionCollection(),
1920 "kaddressbook_beam_vcard" ); 1924 "kaddressbook_beam_vcard" );
1921 1925
1922 mActionBeam = new KAction( i18n( "&Beam personal vCard" ), "beam", 0, this, 1926 mActionBeam = new KAction( i18n( "&Beam personal vCard" ), "beam", 0, this,
1923 SLOT( beamMySelf() ), actionCollection(), 1927 SLOT( beamMySelf() ), actionCollection(),
1924 "kaddressbook_beam_myself" ); 1928 "kaddressbook_beam_myself" );
1925 } 1929 }
1926#endif 1930#endif
1927 1931
1928 mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0, 1932 mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0,
1929 this, SLOT( editContact2() ), 1933 this, SLOT( editContact2() ),
1930 actionCollection(), "file_properties" ); 1934 actionCollection(), "file_properties" );
1931 1935
1932#ifdef KAB_EMBEDDED 1936#ifdef KAB_EMBEDDED
1933 // mActionQuit = KStdAction::quit( mMainWindow, SLOT( exit() ), actionCollection() ); 1937 // mActionQuit = KStdAction::quit( mMainWindow, SLOT( exit() ), actionCollection() );
1934 mActionQuit = new KAction( i18n( "&Exit" ), "exit", 0, 1938 mActionQuit = new KAction( i18n( "&Exit" ), "exit", 0,
1935 mMainWindow, SLOT( exit() ), 1939 mMainWindow, SLOT( exit() ),
1936 actionCollection(), "quit" ); 1940 actionCollection(), "quit" );
1937#endif //KAB_EMBEDDED 1941#endif //KAB_EMBEDDED
1938 1942
1939 // edit menu 1943 // edit menu
1940 if ( mIsPart ) { 1944 if ( mIsPart ) {
1941 mActionCopy = new KAction( i18n( "&Copy" ), "editcopy", CTRL + Key_C, this, 1945 mActionCopy = new KAction( i18n( "&Copy" ), "editcopy", CTRL + Key_C, this,
1942 SLOT( copyContacts() ), actionCollection(), 1946 SLOT( copyContacts() ), actionCollection(),
1943 "kaddressbook_copy" ); 1947 "kaddressbook_copy" );
1944 mActionCut = new KAction( i18n( "Cu&t" ), "editcut", CTRL + Key_X, this, 1948 mActionCut = new KAction( i18n( "Cu&t" ), "editcut", CTRL + Key_X, this,
1945 SLOT( cutContacts() ), actionCollection(), 1949 SLOT( cutContacts() ), actionCollection(),
1946 "kaddressbook_cut" ); 1950 "kaddressbook_cut" );
1947 mActionPaste = new KAction( i18n( "&Paste" ), "editpaste", CTRL + Key_V, this, 1951 mActionPaste = new KAction( i18n( "&Paste" ), "editpaste", CTRL + Key_V, this,
1948 SLOT( pasteContacts() ), actionCollection(), 1952 SLOT( pasteContacts() ), actionCollection(),
1949 "kaddressbook_paste" ); 1953 "kaddressbook_paste" );
1950 mActionSelectAll = new KAction( i18n( "Select &All" ), CTRL + Key_A, this, 1954 mActionSelectAll = new KAction( i18n( "Select &All" ), CTRL + Key_A, this,
1951 SLOT( selectAllContacts() ), actionCollection(), 1955 SLOT( selectAllContacts() ), actionCollection(),
1952 "kaddressbook_select_all" ); 1956 "kaddressbook_select_all" );
1953 mActionUndo = new KAction( i18n( "&Undo" ), "undo", CTRL + Key_Z, this, 1957 mActionUndo = new KAction( i18n( "&Undo" ), "undo", CTRL + Key_Z, this,
1954 SLOT( undo() ), actionCollection(), 1958 SLOT( undo() ), actionCollection(),
1955 "kaddressbook_undo" ); 1959 "kaddressbook_undo" );
1956 mActionRedo = new KAction( i18n( "Re&do" ), "redo", CTRL + SHIFT + Key_Z, 1960 mActionRedo = new KAction( i18n( "Re&do" ), "redo", CTRL + SHIFT + Key_Z,
1957 this, SLOT( redo() ), actionCollection(), 1961 this, SLOT( redo() ), actionCollection(),
1958 "kaddressbook_redo" ); 1962 "kaddressbook_redo" );
1959 } else { 1963 } else {
1960 mActionCopy = KStdAction::copy( this, SLOT( copyContacts() ), actionCollection() ); 1964 mActionCopy = KStdAction::copy( this, SLOT( copyContacts() ), actionCollection() );
1961 mActionCut = KStdAction::cut( this, SLOT( cutContacts() ), actionCollection() ); 1965 mActionCut = KStdAction::cut( this, SLOT( cutContacts() ), actionCollection() );
1962 mActionPaste = KStdAction::paste( this, SLOT( pasteContacts() ), actionCollection() ); 1966 mActionPaste = KStdAction::paste( this, SLOT( pasteContacts() ), actionCollection() );
1963 mActionSelectAll = KStdAction::selectAll( this, SLOT( selectAllContacts() ), actionCollection() ); 1967 mActionSelectAll = KStdAction::selectAll( this, SLOT( selectAllContacts() ), actionCollection() );
1964 mActionUndo = KStdAction::undo( this, SLOT( undo() ), actionCollection() ); 1968 mActionUndo = KStdAction::undo( this, SLOT( undo() ), actionCollection() );
1965 mActionRedo = KStdAction::redo( this, SLOT( redo() ), actionCollection() ); 1969 mActionRedo = KStdAction::redo( this, SLOT( redo() ), actionCollection() );
1966 } 1970 }
1967 1971
1968 mActionDelete = new KAction( i18n( "&Delete Contact" ), "editdelete", 1972 mActionDelete = new KAction( i18n( "&Delete Contact" ), "editdelete",
1969 Key_Delete, this, SLOT( deleteContacts() ), 1973 Key_Delete, this, SLOT( deleteContacts() ),
1970 actionCollection(), "edit_delete" ); 1974 actionCollection(), "edit_delete" );
1971 1975
1972 mActionUndo->setEnabled( false ); 1976 mActionUndo->setEnabled( false );
1973 mActionRedo->setEnabled( false ); 1977 mActionRedo->setEnabled( false );
1974 1978
1975 // settings menu 1979 // settings menu
1976#ifdef KAB_EMBEDDED 1980#ifdef KAB_EMBEDDED
1977//US special menuentry to configure the addressbook resources. On KDE 1981//US special menuentry to configure the addressbook resources. On KDE
1978// you do that through the control center !!! 1982// you do that through the control center !!!
1979 mActionConfigResources = new KAction( i18n( "Configure &Resources..." ), "configure_resources", 0, this, 1983 mActionConfigResources = new KAction( i18n( "Configure &Resources..." ), "configure_resources", 0, this,
1980 SLOT( configureResources() ), actionCollection(), 1984 SLOT( configureResources() ), actionCollection(),
1981 "kaddressbook_configure_resources" ); 1985 "kaddressbook_configure_resources" );
1982#endif //KAB_EMBEDDED 1986#endif //KAB_EMBEDDED
1983 1987
1984 if ( mIsPart ) { 1988 if ( mIsPart ) {
1985 mActionConfigKAddressbook = new KAction( i18n( "&Configure KAddressBook..." ), "configure", 0, this, 1989 mActionConfigKAddressbook = new KAction( i18n( "&Configure KAddressBook..." ), "configure", 0, this,
1986 SLOT( openConfigDialog() ), actionCollection(), 1990 SLOT( openConfigDialog() ), actionCollection(),
1987 "kaddressbook_configure" ); 1991 "kaddressbook_configure" );
1988 1992
1989 //US not implemented yet 1993 //US not implemented yet
1990 //mActionConfigShortcuts = new KAction( i18n( "Configure S&hortcuts..." ), "configure_shortcuts", 0, 1994 //mActionConfigShortcuts = new KAction( i18n( "Configure S&hortcuts..." ), "configure_shortcuts", 0,
1991 // this, SLOT( configureKeyBindings() ), actionCollection(), 1995 // this, SLOT( configureKeyBindings() ), actionCollection(),
1992 // "kaddressbook_configure_shortcuts" ); 1996 // "kaddressbook_configure_shortcuts" );
1993#ifdef KAB_EMBEDDED 1997#ifdef KAB_EMBEDDED
1994 mActionConfigureToolbars = KStdAction::configureToolbars( this, SLOT( mMainWindow->configureToolbars() ), actionCollection() ); 1998 mActionConfigureToolbars = KStdAction::configureToolbars( this, SLOT( mMainWindow->configureToolbars() ), actionCollection() );
1995 mActionConfigureToolbars->setEnabled( false ); 1999 mActionConfigureToolbars->setEnabled( false );
1996#endif //KAB_EMBEDDED 2000#endif //KAB_EMBEDDED
1997 2001
1998 } else { 2002 } else {
1999 mActionConfigKAddressbook = KStdAction::preferences( this, SLOT( openConfigDialog() ), actionCollection() ); 2003 mActionConfigKAddressbook = KStdAction::preferences( this, SLOT( openConfigDialog() ), actionCollection() );
2000 2004
2001 //US not implemented yet 2005 //US not implemented yet
2002 //mActionKeyBindings = KStdAction::keyBindings( this, SLOT( configureKeyBindings() ), actionCollection() ); 2006 //mActionKeyBindings = KStdAction::keyBindings( this, SLOT( configureKeyBindings() ), actionCollection() );
2003 } 2007 }
2004 2008
2005 mActionJumpBar = new KToggleAction( i18n( "Show Jump Bar" ), 0, 0, 2009 mActionJumpBar = new KToggleAction( i18n( "Show Jump Bar" ), 0, 0,
2006 actionCollection(), "options_show_jump_bar" ); 2010 actionCollection(), "options_show_jump_bar" );
2007 connect( mActionJumpBar, SIGNAL( toggled( bool ) ), SLOT( setJumpButtonBarVisible( bool ) ) ); 2011 connect( mActionJumpBar, SIGNAL( toggled( bool ) ), SLOT( setJumpButtonBar( bool ) ) );
2008 2012
2009 mActionDetails = new KToggleAction( i18n( "Show Details" ), "listview", 0, 2013 mActionDetails = new KToggleAction( i18n( "Show Details" ), "listview", 0,
2010 actionCollection(), "options_show_details" ); 2014 actionCollection(), "options_show_details" );
2011 connect( mActionDetails, SIGNAL( toggled( bool ) ), SLOT( setDetailsVisible( bool ) ) ); 2015 connect( mActionDetails, SIGNAL( toggled( bool ) ), SLOT( setDetailsVisible( bool ) ) );
2012 2016
2013 2017
2014 mActionBR = new KToggleAction( i18n( "Beam receive enabled" ), "beam", 0, this, 2018 mActionBR = new KToggleAction( i18n( "Beam receive enabled" ), "beam", 0, this,
2015 SLOT( toggleBeamReceive() ), actionCollection(), 2019 SLOT( toggleBeamReceive() ), actionCollection(),
2016 "kaddressbook_beam_rec" ); 2020 "kaddressbook_beam_rec" );
2017 2021
2018 2022
2019 // misc 2023 // misc
2020 // only enable LDAP lookup if we can handle the protocol 2024 // only enable LDAP lookup if we can handle the protocol
2021#ifndef KAB_EMBEDDED 2025#ifndef KAB_EMBEDDED
2022 if ( KProtocolInfo::isKnownProtocol( KURL( "ldap://localhost" ) ) ) { 2026 if ( KProtocolInfo::isKnownProtocol( KURL( "ldap://localhost" ) ) ) {
2023 new KAction( i18n( "&Lookup Addresses in Directory" ), "find", 0, 2027 new KAction( i18n( "&Lookup Addresses in Directory" ), "find", 0,
2024 this, SLOT( openLDAPDialog() ), actionCollection(), 2028 this, SLOT( openLDAPDialog() ), actionCollection(),
2025 "ldap_lookup" ); 2029 "ldap_lookup" );
2026 } 2030 }
2027#else //KAB_EMBEDDED 2031#else //KAB_EMBEDDED
2028 //qDebug("KABCore::initActions() LDAP has to be implemented"); 2032 //qDebug("KABCore::initActions() LDAP has to be implemented");
2029#endif //KAB_EMBEDDED 2033#endif //KAB_EMBEDDED
2030 2034
2031 2035
2032 mActionWhoAmI = new KAction( i18n( "Set Who Am I" ), "personal", 0, this, 2036 mActionWhoAmI = new KAction( i18n( "Set Who Am I" ), "personal", 0, this,
2033 SLOT( setWhoAmI() ), actionCollection(), 2037 SLOT( setWhoAmI() ), actionCollection(),
2034 "set_personal" ); 2038 "set_personal" );
2035 2039
2036 2040
2037 mActionCategories = new KAction( i18n( "Set Categories" ), 0, this, 2041 mActionCategories = new KAction( i18n( "Set Categories" ), 0, this,
2038 SLOT( setCategories() ), actionCollection(), 2042 SLOT( setCategories() ), actionCollection(),
2039 "edit_set_categories" ); 2043 "edit_set_categories" );
2040 mActionEditCategories = new KAction( i18n( "Edit Categories" ), 0, this, 2044 mActionEditCategories = new KAction( i18n( "Edit Categories" ), 0, this,
2041 SLOT( editCategories() ), actionCollection(), 2045 SLOT( editCategories() ), actionCollection(),
2042 "edit__categories" ); 2046 "edit__categories" );
2043 2047
2044 mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this, 2048 mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this,
2045 SLOT( removeVoice() ), actionCollection(), 2049 SLOT( removeVoice() ), actionCollection(),
2046 "remove_voice" ); 2050 "remove_voice" );
2047 mActionSetFormattedName = new KAction( i18n( "Set formatted name..." ), 0, this, 2051 mActionSetFormattedName = new KAction( i18n( "Set formatted name..." ), 0, this,
2048 SLOT( setFormattedName() ), actionCollection(), 2052 SLOT( setFormattedName() ), actionCollection(),
2049 "set_formatted" ); 2053 "set_formatted" );
2050 2054
2051 mActionManageCategories= new KAction( i18n( "Manage new categories..." ), 0, this, 2055 mActionManageCategories= new KAction( i18n( "Manage new categories..." ), 0, this,
2052 SLOT( manageCategories() ), actionCollection(), 2056 SLOT( manageCategories() ), actionCollection(),
2053 "remove_voice" ); 2057 "remove_voice" );
2054 2058
2055 2059
2056 mActionImportOL = new KAction( i18n( "Import from Outlook..." ), 0, this, 2060 mActionImportOL = new KAction( i18n( "Import from Outlook..." ), 0, this,
2057 SLOT( importFromOL() ), actionCollection(), 2061 SLOT( importFromOL() ), actionCollection(),
2058 "import_OL" ); 2062 "import_OL" );
2059#ifdef KAB_EMBEDDED 2063#ifdef KAB_EMBEDDED
2060 mActionLicence = new KAction( i18n( "Licence" ), 0, 2064 mActionLicence = new KAction( i18n( "Licence" ), 0,
2061 this, SLOT( showLicence() ), actionCollection(), 2065 this, SLOT( showLicence() ), actionCollection(),
2062 "licence_about_data" ); 2066 "licence_about_data" );
2063 mActionFaq = new KAction( i18n( "Faq" ), 0, 2067 mActionFaq = new KAction( i18n( "Faq" ), 0,
2064 this, SLOT( faq() ), actionCollection(), 2068 this, SLOT( faq() ), actionCollection(),
2065 "faq_about_data" ); 2069 "faq_about_data" );
2066 mActionWN = new KAction( i18n( "What's New?" ), 0, 2070 mActionWN = new KAction( i18n( "What's New?" ), 0,
2067 this, SLOT( whatsnew() ), actionCollection(), 2071 this, SLOT( whatsnew() ), actionCollection(),
2068 "wn" ); 2072 "wn" );
2069 mActionSyncHowto = new KAction( i18n( "Sync HowTo" ), 0, 2073 mActionSyncHowto = new KAction( i18n( "Sync HowTo" ), 0,
2070 this, SLOT( synchowto() ), actionCollection(), 2074 this, SLOT( synchowto() ), actionCollection(),
2071 "sync" ); 2075 "sync" );
2072 mActionKdeSyncHowto = new KAction( i18n( "Kde Sync HowTo" ), 0, 2076 mActionKdeSyncHowto = new KAction( i18n( "Kde Sync HowTo" ), 0,
2073 this, SLOT( kdesynchowto() ), actionCollection(), 2077 this, SLOT( kdesynchowto() ), actionCollection(),
2074 "kdesync" ); 2078 "kdesync" );
2075 mActionMultiSyncHowto = new KAction( i18n( "Multi Sync HowTo" ), 0, 2079 mActionMultiSyncHowto = new KAction( i18n( "Multi Sync HowTo" ), 0,
2076 this, SLOT( multisynchowto() ), actionCollection(), 2080 this, SLOT( multisynchowto() ), actionCollection(),
2077 "multisync" ); 2081 "multisync" );
2078 2082
2079 mActionAboutKAddressbook = new KAction( i18n( "&About KAddressBook" ), "kaddressbook2", 0, 2083 mActionAboutKAddressbook = new KAction( i18n( "&About KAddressBook" ), "kaddressbook2", 0,
2080 this, SLOT( createAboutData() ), actionCollection(), 2084 this, SLOT( createAboutData() ), actionCollection(),
2081 "kaddressbook_about_data" ); 2085 "kaddressbook_about_data" );
2082#endif //KAB_EMBEDDED 2086#endif //KAB_EMBEDDED
2083 2087
2084 clipboardDataChanged(); 2088 clipboardDataChanged();
2085 connect( UndoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); 2089 connect( UndoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) );
2086 connect( RedoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); 2090 connect( RedoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) );
2087} 2091}
2088 2092
2089//US we need this function, to plug all actions into the correct menues. 2093//US we need this function, to plug all actions into the correct menues.
2090// KDE uses a XML format to plug the actions, but we work her without this overhead. 2094// KDE uses a XML format to plug the actions, but we work her without this overhead.
2091void KABCore::addActionsManually() 2095void KABCore::addActionsManually()
2092{ 2096{
2093//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); 2097//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart);
2094 2098
2095#ifdef KAB_EMBEDDED 2099#ifdef KAB_EMBEDDED
2096 QPopupMenu *fileMenu = new QPopupMenu( this ); 2100 QPopupMenu *fileMenu = new QPopupMenu( this );
2097 QPopupMenu *editMenu = new QPopupMenu( this ); 2101 QPopupMenu *editMenu = new QPopupMenu( this );
2098 QPopupMenu *helpMenu = new QPopupMenu( this ); 2102 QPopupMenu *helpMenu = new QPopupMenu( this );
2099 2103
2100 KToolBar* tb = mMainWindow->toolBar(); 2104 KToolBar* tb = mMainWindow->toolBar();
2101 2105
2102#ifndef DESKTOP_VERSION 2106#ifndef DESKTOP_VERSION
2103 if ( KABPrefs::instance()->mFullMenuBarVisible ) { 2107 if ( KABPrefs::instance()->mFullMenuBarVisible ) {
2104#endif 2108#endif
2105 QMenuBar* mb = mMainWindow->menuBar(); 2109 QMenuBar* mb = mMainWindow->menuBar();
2106 2110
2107 //US setup menubar. 2111 //US setup menubar.
2108 //Disable the following block if you do not want to have a menubar. 2112 //Disable the following block if you do not want to have a menubar.
2109 mb->insertItem( i18n("&File"), fileMenu ); 2113 mb->insertItem( i18n("&File"), fileMenu );
2110 mb->insertItem( i18n("&Edit"), editMenu ); 2114 mb->insertItem( i18n("&Edit"), editMenu );
2111 mb->insertItem( i18n("&View"), viewMenu ); 2115 mb->insertItem( i18n("&View"), viewMenu );
2112 mb->insertItem( i18n("&Settings"), settingsMenu ); 2116 mb->insertItem( i18n("&Settings"), settingsMenu );
2113 mb->insertItem( i18n("Synchronize"), syncMenu ); 2117 mb->insertItem( i18n("Synchronize"), syncMenu );
2114 //mb->insertItem( i18n("&Change"), changeMenu ); 2118 //mb->insertItem( i18n("&Change"), changeMenu );
2115 mb->insertItem( i18n("&Help"), helpMenu ); 2119 mb->insertItem( i18n("&Help"), helpMenu );
2116 mIncSearchWidget = new IncSearchWidget( tb ); 2120 mIncSearchWidget = new IncSearchWidget( tb );
2117 // tb->insertWidget(-1, 0, mIncSearchWidget); 2121 // tb->insertWidget(-1, 0, mIncSearchWidget);
2118#ifndef DESKTOP_VERSION 2122#ifndef DESKTOP_VERSION
2119 } else { 2123 } else {
2120 //US setup toolbar 2124 //US setup toolbar
2121 QPEMenuBar *menuBarTB = new QPEMenuBar( tb ); 2125 QPEMenuBar *menuBarTB = new QPEMenuBar( tb );
2122 QPopupMenu *popupBarTB = new QPopupMenu( this ); 2126 QPopupMenu *popupBarTB = new QPopupMenu( this );
2123 menuBarTB->insertItem( "ME", popupBarTB); 2127 menuBarTB->insertItem( "ME", popupBarTB);
2124 tb->insertWidget(-1, 0, menuBarTB); 2128 tb->insertWidget(-1, 0, menuBarTB);
2125 mIncSearchWidget = new IncSearchWidget( tb ); 2129 mIncSearchWidget = new IncSearchWidget( tb );
2126 2130
2127 tb->enableMoving(false); 2131 tb->enableMoving(false);
2128 popupBarTB->insertItem( i18n("&File"), fileMenu ); 2132 popupBarTB->insertItem( i18n("&File"), fileMenu );
2129 popupBarTB->insertItem( i18n("&Edit"), editMenu ); 2133 popupBarTB->insertItem( i18n("&Edit"), editMenu );
2130 popupBarTB->insertItem( i18n("&View"), viewMenu ); 2134 popupBarTB->insertItem( i18n("&View"), viewMenu );
2131 popupBarTB->insertItem( i18n("&Settings"), settingsMenu ); 2135 popupBarTB->insertItem( i18n("&Settings"), settingsMenu );
2132 popupBarTB->insertItem( i18n("Synchronize"), syncMenu ); 2136 popupBarTB->insertItem( i18n("Synchronize"), syncMenu );
2133 mViewManager->getFilterAction()->plug ( popupBarTB); 2137 mViewManager->getFilterAction()->plug ( popupBarTB);
2134 //popupBarTB->insertItem( i18n("&Change selected"), changeMenu ); 2138 //popupBarTB->insertItem( i18n("&Change selected"), changeMenu );
2135 popupBarTB->insertItem( i18n("&Help"), helpMenu ); 2139 popupBarTB->insertItem( i18n("&Help"), helpMenu );
2136 if (QApplication::desktop()->width() > 320 ) { 2140 if (QApplication::desktop()->width() > 320 ) {
2137 // mViewManager->getFilterAction()->plug ( tb); 2141 // mViewManager->getFilterAction()->plug ( tb);
2138 } 2142 }
2139 } 2143 }
2140#endif 2144#endif
2141 // mActionQuit->plug ( mMainWindow->toolBar()); 2145 // mActionQuit->plug ( mMainWindow->toolBar());
2142 2146
2143 2147
2144 2148
2145 //US Now connect the actions with the menue entries. 2149 //US Now connect the actions with the menue entries.
2146#ifdef DESKTOP_VERSION 2150#ifdef DESKTOP_VERSION
2147 mActionPrint->plug( fileMenu ); 2151 mActionPrint->plug( fileMenu );
2148 mActionPrintDetails->plug( fileMenu ); 2152 mActionPrintDetails->plug( fileMenu );
2149 fileMenu->insertSeparator(); 2153 fileMenu->insertSeparator();
2150#endif 2154#endif
2151 mActionMail->plug( fileMenu ); 2155 mActionMail->plug( fileMenu );
2152 fileMenu->insertSeparator(); 2156 fileMenu->insertSeparator();
2153 2157
2154 mActionNewContact->plug( fileMenu ); 2158 mActionNewContact->plug( fileMenu );
2155 mActionNewContact->plug( tb ); 2159 mActionNewContact->plug( tb );
2156 2160
2157 mActionEditAddressee->plug( fileMenu ); 2161 mActionEditAddressee->plug( fileMenu );
2158 // if ((KGlobal::getDesktopSize() > KGlobal::Small ) || 2162 // if ((KGlobal::getDesktopSize() > KGlobal::Small ) ||
2159 // (!KABPrefs::instance()->mMultipleViewsAtOnce )) 2163 // (!KABPrefs::instance()->mMultipleViewsAtOnce ))
2160 mActionEditAddressee->plug( tb ); 2164 mActionEditAddressee->plug( tb );
2161 2165
2162 fileMenu->insertSeparator(); 2166 fileMenu->insertSeparator();
2163 mActionSave->plug( fileMenu ); 2167 mActionSave->plug( fileMenu );
2164 fileMenu->insertItem( "&Import", ImportMenu ); 2168 fileMenu->insertItem( "&Import", ImportMenu );
2165 fileMenu->insertItem( "&Export", ExportMenu ); 2169 fileMenu->insertItem( "&Export", ExportMenu );
2166 fileMenu->insertItem( i18n("&Change"), changeMenu ); 2170 fileMenu->insertItem( i18n("&Change"), changeMenu );
2167#ifndef DESKTOP_VERSION 2171#ifndef DESKTOP_VERSION
2168 if ( Ir::supported() ) fileMenu->insertItem( i18n("&Beam"), beamMenu ); 2172 if ( Ir::supported() ) fileMenu->insertItem( i18n("&Beam"), beamMenu );
2169#endif 2173#endif
2170#if 0 2174#if 0
2171 // PENDING fix MailVCard 2175 // PENDING fix MailVCard
2172 fileMenu->insertSeparator(); 2176 fileMenu->insertSeparator();
2173 mActionMailVCard->plug( fileMenu ); 2177 mActionMailVCard->plug( fileMenu );
2174#endif 2178#endif
2175#ifndef DESKTOP_VERSION 2179#ifndef DESKTOP_VERSION
2176 if ( Ir::supported() ) mActionBR->plug( beamMenu ); 2180 if ( Ir::supported() ) mActionBR->plug( beamMenu );
2177 if ( Ir::supported() ) mActionBeamVCard->plug( beamMenu ); 2181 if ( Ir::supported() ) mActionBeamVCard->plug( beamMenu );
2178 if ( Ir::supported() ) mActionBeam->plug( beamMenu ); 2182 if ( Ir::supported() ) mActionBeam->plug( beamMenu );
2179#endif 2183#endif
2180 fileMenu->insertSeparator(); 2184 fileMenu->insertSeparator();
2181 mActionQuit->plug( fileMenu ); 2185 mActionQuit->plug( fileMenu );
2182#ifdef _OL_IMPORT_ 2186#ifdef _OL_IMPORT_
2183 mActionImportOL->plug( ImportMenu ); 2187 mActionImportOL->plug( ImportMenu );
2184#endif 2188#endif
2185 // edit menu 2189 // edit menu
2186 mActionUndo->plug( editMenu ); 2190 mActionUndo->plug( editMenu );
2187 mActionRedo->plug( editMenu ); 2191 mActionRedo->plug( editMenu );
2188 editMenu->insertSeparator(); 2192 editMenu->insertSeparator();
2189 mActionCut->plug( editMenu ); 2193 mActionCut->plug( editMenu );
2190 mActionCopy->plug( editMenu ); 2194 mActionCopy->plug( editMenu );
2191 mActionPaste->plug( editMenu ); 2195 mActionPaste->plug( editMenu );
2192 mActionDelete->plug( editMenu ); 2196 mActionDelete->plug( editMenu );
2193 editMenu->insertSeparator(); 2197 editMenu->insertSeparator();
2194 mActionSelectAll->plug( editMenu ); 2198 mActionSelectAll->plug( editMenu );
2195 2199
2196 mActionSetFormattedName->plug( changeMenu ); 2200 mActionSetFormattedName->plug( changeMenu );
2197 mActionRemoveVoice->plug( changeMenu ); 2201 mActionRemoveVoice->plug( changeMenu );
2198 // settings menu 2202 // settings menu
2199//US special menuentry to configure the addressbook resources. On KDE 2203//US special menuentry to configure the addressbook resources. On KDE
2200// you do that through the control center !!! 2204// you do that through the control center !!!
2201 mActionConfigResources->plug( settingsMenu ); 2205 mActionConfigResources->plug( settingsMenu );
2202 settingsMenu->insertSeparator(); 2206 settingsMenu->insertSeparator();
2203 2207
2204 mActionConfigKAddressbook->plug( settingsMenu ); 2208 mActionConfigKAddressbook->plug( settingsMenu );
2205 2209
2206 if ( mIsPart ) { 2210 if ( mIsPart ) {
2207 //US not implemented yet 2211 //US not implemented yet
2208 //mActionConfigShortcuts->plug( settingsMenu ); 2212 //mActionConfigShortcuts->plug( settingsMenu );
2209 //mActionConfigureToolbars->plug( settingsMenu ); 2213 //mActionConfigureToolbars->plug( settingsMenu );
2210 2214
2211 } else { 2215 } else {
2212 //US not implemented yet 2216 //US not implemented yet
2213 //mActionKeyBindings->plug( settingsMenu ); 2217 //mActionKeyBindings->plug( settingsMenu );
2214 } 2218 }
2215 2219
2216 settingsMenu->insertSeparator(); 2220 settingsMenu->insertSeparator();
2217 2221
2218 mActionJumpBar->plug( settingsMenu ); 2222 mActionJumpBar->plug( settingsMenu );
2219 mActionDetails->plug( settingsMenu ); 2223 mActionDetails->plug( settingsMenu );
2220 //if (!KABPrefs::instance()->mMultipleViewsAtOnce || KGlobal::getDesktopSize() == KGlobal::Desktop ) 2224 //if (!KABPrefs::instance()->mMultipleViewsAtOnce || KGlobal::getDesktopSize() == KGlobal::Desktop )
2221 mActionDetails->plug( tb ); 2225 mActionDetails->plug( tb );
2222 settingsMenu->insertSeparator(); 2226 settingsMenu->insertSeparator();
2223#ifndef DESKTOP_VERSION 2227#ifndef DESKTOP_VERSION
2224 if ( Ir::supported() ) mActionBR->plug(settingsMenu ); 2228 if ( Ir::supported() ) mActionBR->plug(settingsMenu );
2225 settingsMenu->insertSeparator(); 2229 settingsMenu->insertSeparator();
2226#endif 2230#endif
2227 2231
2228 mActionWhoAmI->plug( settingsMenu ); 2232 mActionWhoAmI->plug( settingsMenu );
2229 mActionEditCategories->plug( settingsMenu ); 2233 mActionEditCategories->plug( settingsMenu );
2230 mActionEditCategories->plug( changeMenu ); 2234 mActionEditCategories->plug( changeMenu );
2231 mActionCategories->plug( changeMenu ); 2235 mActionCategories->plug( changeMenu );
2232 mActionManageCategories->plug( changeMenu ); 2236 mActionManageCategories->plug( changeMenu );
2233 2237
2234 mActionCategories->plug( settingsMenu ); 2238 mActionCategories->plug( settingsMenu );
2235 mActionManageCategories->plug( settingsMenu ); 2239 mActionManageCategories->plug( settingsMenu );
2236 2240
2237 2241
2238 mActionWN->plug( helpMenu ); 2242 mActionWN->plug( helpMenu );
2239 mActionSyncHowto->plug( helpMenu ); 2243 mActionSyncHowto->plug( helpMenu );
2240 mActionKdeSyncHowto->plug( helpMenu ); 2244 mActionKdeSyncHowto->plug( helpMenu );
2241 mActionMultiSyncHowto->plug( helpMenu ); 2245 mActionMultiSyncHowto->plug( helpMenu );
2242 mActionFaq->plug( helpMenu ); 2246 mActionFaq->plug( helpMenu );
2243 mActionLicence->plug( helpMenu ); 2247 mActionLicence->plug( helpMenu );
2244 mActionAboutKAddressbook->plug( helpMenu ); 2248 mActionAboutKAddressbook->plug( helpMenu );
2245 2249
2246 if (KGlobal::getDesktopSize() > KGlobal::Small ) { 2250 if (KGlobal::getDesktopSize() > KGlobal::Small ) {
2247 2251
2248 mActionSave->plug( tb ); 2252 mActionSave->plug( tb );
2249 mViewManager->getFilterAction()->plug ( tb); 2253 mViewManager->getFilterAction()->plug ( tb);
2250 //LR hide filteraction on started in 480x640 2254 //LR hide filteraction on started in 480x640
2251 if (QApplication::desktop()->width() == 480 ) { 2255 if (QApplication::desktop()->width() == 480 ) {
2252 mViewManager->getFilterAction()->setComboWidth( 0 ); 2256 mViewManager->getFilterAction()->setComboWidth( 0 );
2253 } 2257 }
2254 mActionUndo->plug( tb ); 2258 mActionUndo->plug( tb );
2255 mActionDelete->plug( tb ); 2259 mActionDelete->plug( tb );
2256 mActionRedo->plug( tb ); 2260 mActionRedo->plug( tb );
2257 } else { 2261 } else {
2258 mActionSave->plug( tb ); 2262 mActionSave->plug( tb );
2259 tb->enableMoving(false); 2263 tb->enableMoving(false);
2260 } 2264 }
2261 //mActionQuit->plug ( tb ); 2265 //mActionQuit->plug ( tb );
2262 // tb->insertWidget(-1, 0, mIncSearchWidget, 6); 2266 // tb->insertWidget(-1, 0, mIncSearchWidget, 6);
2263 2267
2264 //US link the searchwidget first to this. 2268 //US link the searchwidget first to this.
2265 // The real linkage to the toolbar happens later. 2269 // The real linkage to the toolbar happens later.
2266//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE); 2270//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE);
2267//US tb->insertItem( mIncSearchWidget ); 2271//US tb->insertItem( mIncSearchWidget );
2268/*US 2272/*US
2269 mIncSearchWidget = new IncSearchWidget( tb ); 2273 mIncSearchWidget = new IncSearchWidget( tb );
2270 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 2274 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
2271 SLOT( incrementalSearch( const QString& ) ) ); 2275 SLOT( incrementalSearch( const QString& ) ) );
2272 2276
2273 mJumpButtonBar = new JumpButtonBar( this, this ); 2277 mJumpButtonBar = new JumpButtonBar( this, this );
2274 2278
2275//US topLayout->addWidget( mJumpButtonBar ); 2279//US topLayout->addWidget( mJumpButtonBar );
2276 this->layout()->add( mJumpButtonBar ); 2280 this->layout()->add( mJumpButtonBar );
2277*/ 2281*/
2278 2282
2279#endif //KAB_EMBEDDED 2283#endif //KAB_EMBEDDED
2280 2284
2281 mActionExport2phone->plug( ExportMenu ); 2285 mActionExport2phone->plug( ExportMenu );
2282 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) ); 2286 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) );
2283 syncManager->fillSyncMenu(); 2287 syncManager->fillSyncMenu();
2284 2288
2285} 2289}
2286void KABCore::showLicence() 2290void KABCore::showLicence()
2287{ 2291{
2288 KApplication::showLicence(); 2292 KApplication::showLicence();
2289} 2293}
2290 2294
2291void KABCore::manageCategories( ) 2295void KABCore::manageCategories( )
2292{ 2296{
2293 KABCatPrefs* cp = new KABCatPrefs(); 2297 KABCatPrefs* cp = new KABCatPrefs();
2294 cp->show(); 2298 cp->show();
2295 int w =cp->sizeHint().width() ; 2299 int w =cp->sizeHint().width() ;
2296 int h = cp->sizeHint().height() ; 2300 int h = cp->sizeHint().height() ;
2297 int dw = QApplication::desktop()->width(); 2301 int dw = QApplication::desktop()->width();
2298 int dh = QApplication::desktop()->height(); 2302 int dh = QApplication::desktop()->height();
2299 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2303 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2300 if ( !cp->exec() ) { 2304 if ( !cp->exec() ) {
2301 delete cp; 2305 delete cp;
2302 return; 2306 return;
2303 } 2307 }
2304 int count = 0; 2308 int count = 0;
2305 int cc = 0; 2309 int cc = 0;
2306 message( i18n("Please wait, processing categories...")); 2310 message( i18n("Please wait, processing categories..."));
2307 if ( cp->addCat() ) { 2311 if ( cp->addCat() ) {
2308 KABC::AddressBook::Iterator it; 2312 KABC::AddressBook::Iterator it;
2309 QStringList catList = KABPrefs::instance()->mCustomCategories; 2313 QStringList catList = KABPrefs::instance()->mCustomCategories;
2310 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2314 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2311 ++cc; 2315 ++cc;
2312 if ( cc %10 == 0) 2316 if ( cc %10 == 0)
2313 message(i18n("Processing contact #%1").arg(cc)); 2317 message(i18n("Processing contact #%1").arg(cc));
2314 QStringList catIncList = (*it).categories(); 2318 QStringList catIncList = (*it).categories();
2315 int i; 2319 int i;
2316 for( i = 0; i< catIncList.count(); ++i ) { 2320 for( i = 0; i< catIncList.count(); ++i ) {
2317 if ( !catList.contains (catIncList[i])) { 2321 if ( !catList.contains (catIncList[i])) {
2318 catList.append( catIncList[i] ); 2322 catList.append( catIncList[i] );
2319 //qDebug("add cat %s ", catIncList[i].latin1()); 2323 //qDebug("add cat %s ", catIncList[i].latin1());
2320 ++count; 2324 ++count;
2321 } 2325 }
2322 } 2326 }
2323 } 2327 }
2324 catList.sort(); 2328 catList.sort();
2325 KABPrefs::instance()->mCustomCategories = catList; 2329 KABPrefs::instance()->mCustomCategories = catList;
2326 KABPrefs::instance()->writeConfig(); 2330 KABPrefs::instance()->writeConfig();
2327 message(QString::number( count )+ i18n(" categories added to list! ")); 2331 message(QString::number( count )+ i18n(" categories added to list! "));
2328 } else { 2332 } else {
2329 QStringList catList = KABPrefs::instance()->mCustomCategories; 2333 QStringList catList = KABPrefs::instance()->mCustomCategories;
2330 QStringList catIncList; 2334 QStringList catIncList;
2331 QStringList newCatList; 2335 QStringList newCatList;
2332 KABC::AddressBook::Iterator it; 2336 KABC::AddressBook::Iterator it;
2333 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2337 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2334 ++cc; 2338 ++cc;
2335 if ( cc %10 == 0) 2339 if ( cc %10 == 0)
2336 message(i18n("Processing contact #%1").arg(cc)); 2340 message(i18n("Processing contact #%1").arg(cc));
2337 QStringList catIncList = (*it).categories(); 2341 QStringList catIncList = (*it).categories();
2338 int i; 2342 int i;
2339 if ( catIncList.count() ) { 2343 if ( catIncList.count() ) {
2340 newCatList.clear(); 2344 newCatList.clear();
2341 for( i = 0; i< catIncList.count(); ++i ) { 2345 for( i = 0; i< catIncList.count(); ++i ) {
2342 if ( catList.contains (catIncList[i])) { 2346 if ( catList.contains (catIncList[i])) {
2343 newCatList.append( catIncList[i] ); 2347 newCatList.append( catIncList[i] );
2344 } 2348 }
2345 } 2349 }
2346 newCatList.sort(); 2350 newCatList.sort();
2347 (*it).setCategories( newCatList ); 2351 (*it).setCategories( newCatList );
2348 mAddressBook->insertAddressee( (*it) ); 2352 mAddressBook->insertAddressee( (*it) );
2349 } 2353 }
2350 } 2354 }
2351 setModified( true ); 2355 setModified( true );
2352 mViewManager->refreshView(); 2356 mViewManager->refreshView();
2353 message( i18n("Removing categories done!")); 2357 message( i18n("Removing categories done!"));
2354 } 2358 }
2355 delete cp; 2359 delete cp;
2356} 2360}
2357void KABCore::removeVoice() 2361void KABCore::removeVoice()
2358{ 2362{
2359 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 ) 2363 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 )
2360 return; 2364 return;
2361 XXPortSelectDialog dlg( this, false, this ); 2365 XXPortSelectDialog dlg( this, false, this );
2362 if ( !dlg.exec() ) 2366 if ( !dlg.exec() )
2363 return; 2367 return;
2364 mAddressBook->setUntagged(); 2368 mAddressBook->setUntagged();
2365 dlg.tagSelected(); 2369 dlg.tagSelected();
2366 message(i18n("Removing voice..."), false ); 2370 message(i18n("Removing voice..."), false );
2367 KABC::AddressBook::Iterator it; 2371 KABC::AddressBook::Iterator it;
2368 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2372 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2369 if ( (*it).tagged() ) { 2373 if ( (*it).tagged() ) {
2370 (*it).removeVoice(); 2374 (*it).removeVoice();
2371 } 2375 }
2372 } 2376 }
2373 message(i18n("Refreshing view...") ); 2377 message(i18n("Refreshing view...") );
2374 qApp->processEvents(); 2378 qApp->processEvents();
2375 mViewManager->refreshView( "" ); 2379 mViewManager->refreshView( "" );
2376 Addressee add; 2380 Addressee add;
2377 mDetails->setAddressee( add ); 2381 mDetails->setAddressee( add );
2378 message(i18n("Remove voice completed!") ); 2382 message(i18n("Remove voice completed!") );
2379 2383
2380 2384
2381 2385
2382} 2386}
2383 2387
2384void KABCore::setFormattedName() 2388void KABCore::setFormattedName()
2385{ 2389{
2386 KABFormatPrefs setpref; 2390 KABFormatPrefs setpref;
2387 if ( !setpref.exec() ) { 2391 if ( !setpref.exec() ) {
2388 return; 2392 return;
2389 } 2393 }
2390 XXPortSelectDialog dlg( this, false, this ); 2394 XXPortSelectDialog dlg( this, false, this );
2391 if ( !dlg.exec() ) 2395 if ( !dlg.exec() )
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
index 786549a..c185117 100644
--- a/kaddressbook/kabcore.h
+++ b/kaddressbook/kabcore.h
@@ -1,519 +1,520 @@
1/* 1/*
2 This file is part of KAddressbook. 2 This file is part of KAddressbook.
3 Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> 3 Copyright (c) 2003 Tobias Koenig <tokoe@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#ifndef KABCORE_H 24#ifndef KABCORE_H
25#define KABCORE_H 25#define KABCORE_H
26 26
27#include <kabc/field.h> 27#include <kabc/field.h>
28 28
29#ifndef KAB_EMBEDDED 29#ifndef KAB_EMBEDDED
30#endif //KAB_EMBEDDED 30#endif //KAB_EMBEDDED
31#include <qdict.h> 31#include <qdict.h>
32#include <qtimer.h> 32#include <qtimer.h>
33 33
34#include <qwidget.h> 34#include <qwidget.h>
35#include <qpopupmenu.h> 35#include <qpopupmenu.h>
36#include <ksyncmanager.h> 36#include <ksyncmanager.h>
37#ifndef DESKTOP_VERSION 37#ifndef DESKTOP_VERSION
38#include <qcopchannel_qws.h> 38#include <qcopchannel_qws.h>
39#endif 39#endif
40 40
41namespace KABC { 41namespace KABC {
42class AddressBook; 42class AddressBook;
43} 43}
44 44
45#ifndef KAB_EMBEDDED 45#ifndef KAB_EMBEDDED
46class KAboutData; 46class KAboutData;
47class KConfig; 47class KConfig;
48 48
49class KAddressBookService; 49class KAddressBookService;
50class LDAPSearchDialog; 50class LDAPSearchDialog;
51#else //KAB_EMBEDDED 51#else //KAB_EMBEDDED
52class KAddressBookMain; 52class KAddressBookMain;
53//US class QAction; 53//US class QAction;
54#endif //KAB_EMBEDDED 54#endif //KAB_EMBEDDED
55class KCMultiDialog; 55class KCMultiDialog;
56class KXMLGUIClient; 56class KXMLGUIClient;
57class ExtensionManager; 57class ExtensionManager;
58class XXPortManager; 58class XXPortManager;
59class JumpButtonBar; 59class JumpButtonBar;
60class IncSearchWidget; 60class IncSearchWidget;
61class KDGanttMinimizeSplitter; 61class KDGanttMinimizeSplitter;
62class KAction; 62class KAction;
63class KActionCollection; 63class KActionCollection;
64class KToggleAction; 64class KToggleAction;
65class KSyncProfile; 65class KSyncProfile;
66 66
67class QAction; 67class QAction;
68class QMenuBar; 68class QMenuBar;
69class QSplitter; 69class QSplitter;
70class ViewContainer; 70class ViewContainer;
71class ViewManager; 71class ViewManager;
72class AddresseeEditorDialog; 72class AddresseeEditorDialog;
73class Ir; 73class Ir;
74 74
75class KABCore : public QWidget, public KSyncInterface 75class KABCore : public QWidget, public KSyncInterface
76{ 76{
77 Q_OBJECT 77 Q_OBJECT
78 78
79 public: 79 public:
80 KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name = 0 ); 80 KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name = 0 );
81 81
82 82
83 ~KABCore(); 83 ~KABCore();
84 84
85 85
86#ifdef KAB_EMBEDDED 86#ifdef KAB_EMBEDDED
87 //US added functionality 87 //US added functionality
88 QPopupMenu* getViewMenu() {return viewMenu;} 88 QPopupMenu* getViewMenu() {return viewMenu;}
89 QPopupMenu* getFilterMenu() {return filterMenu;} 89 QPopupMenu* getFilterMenu() {return filterMenu;}
90 QPopupMenu* getSettingsMenu() {return settingsMenu;} 90 QPopupMenu* getSettingsMenu() {return settingsMenu;}
91 void addActionsManually(); 91 void addActionsManually();
92#endif //KAB_EMBEDDED 92#endif //KAB_EMBEDDED
93 /** 93 /**
94 Restores the global settings. 94 Restores the global settings.
95 */ 95 */
96 void restoreSettings(); 96 void restoreSettings();
97 97
98 98
99 99
100 /** 100 /**
101 Returns a pointer to the StdAddressBook of the application. 101 Returns a pointer to the StdAddressBook of the application.
102 */ 102 */
103 KABC::AddressBook *addressBook() const; 103 KABC::AddressBook *addressBook() const;
104 104
105 /** 105 /**
106 Returns a pointer to the KConfig object of the application. 106 Returns a pointer to the KConfig object of the application.
107 */ 107 */
108 static KConfig *config(); 108 static KConfig *config();
109 109
110 /** 110 /**
111 Returns a pointer to the global KActionCollection object. So 111 Returns a pointer to the global KActionCollection object. So
112 other classes can register their actions easily. 112 other classes can register their actions easily.
113 */ 113 */
114 KActionCollection *actionCollection() const; 114 KActionCollection *actionCollection() const;
115 115
116 /** 116 /**
117 Returns the current search field of the Incremental Search Widget. 117 Returns the current search field of the Incremental Search Widget.
118 */ 118 */
119 KABC::Field *currentSearchField() const; 119 KABC::Field *currentSearchField() const;
120 120
121 /** 121 /**
122 Returns the uid list of the currently selected contacts. 122 Returns the uid list of the currently selected contacts.
123 */ 123 */
124 QStringList selectedUIDs() const; 124 QStringList selectedUIDs() const;
125 125
126 /** 126 /**
127 Displays the ResourceSelectDialog and returns the selected 127 Displays the ResourceSelectDialog and returns the selected
128 resource or a null pointer if no resource was selected by 128 resource or a null pointer if no resource was selected by
129 the user. 129 the user.
130 */ 130 */
131 KABC::Resource *requestResource( QWidget *parent ); 131 KABC::Resource *requestResource( QWidget *parent );
132 132
133#ifndef KAB_EMBEDDED 133#ifndef KAB_EMBEDDED
134 static KAboutData *createAboutData(); 134 static KAboutData *createAboutData();
135#endif //KAB_EMBEDDED 135#endif //KAB_EMBEDDED
136 136
137#ifdef KAB_EMBEDDED 137#ifdef KAB_EMBEDDED
138 inline QPopupMenu* getImportMenu() { return ImportMenu;} 138 inline QPopupMenu* getImportMenu() { return ImportMenu;}
139 inline QPopupMenu* getExportMenu() { return ExportMenu;} 139 inline QPopupMenu* getExportMenu() { return ExportMenu;}
140#endif //KAB_EMBEDDED 140#endif //KAB_EMBEDDED
141 141
142 public slots: 142 public slots:
143#ifdef KAB_EMBEDDED 143#ifdef KAB_EMBEDDED
144 void createAboutData(); 144 void createAboutData();
145#endif //KAB_EMBEDDED 145#endif //KAB_EMBEDDED
146 void setDetailsToggle(); 146 void setDetailsToggle();
147 147
148 void showLicence(); 148 void showLicence();
149 void faq(); 149 void faq();
150 void whatsnew() ; 150 void whatsnew() ;
151 void synchowto() ; 151 void synchowto() ;
152 void multisynchowto() ; 152 void multisynchowto() ;
153 void kdesynchowto() ; 153 void kdesynchowto() ;
154 void writeToPhone(); 154 void writeToPhone();
155 155
156 /** 156 /**
157 Is called whenever a contact is selected in the view. 157 Is called whenever a contact is selected in the view.
158 */ 158 */
159 void setContactSelected( const QString &uid ); 159 void setContactSelected( const QString &uid );
160 160
161 /** 161 /**
162 Opens the preferred mail composer with all selected contacts as 162 Opens the preferred mail composer with all selected contacts as
163 arguments. 163 arguments.
164 */ 164 */
165 void sendMail(); 165 void sendMail();
166 166
167 /** 167 /**
168 Opens the preferred mail composer with the given contacts as 168 Opens the preferred mail composer with the given contacts as
169 arguments. 169 arguments.
170 */ 170 */
171 void sendMail( const QString& email ); 171 void sendMail( const QString& email );
172 172
173 173
174 void mailVCard(); 174 void mailVCard();
175 void mailVCard(const QStringList& uids); 175 void mailVCard(const QStringList& uids);
176 176
177 /** 177 /**
178 Beams the "WhoAmI contact. 178 Beams the "WhoAmI contact.
179 */ 179 */
180 void beamMySelf(); 180 void beamMySelf();
181 181
182 void beamVCard(); 182 void beamVCard();
183 void export2phone(); 183 void export2phone();
184 void beamVCard(const QStringList& uids); 184 void beamVCard(const QStringList& uids);
185 void beamDone( Ir *ir ); 185 void beamDone( Ir *ir );
186 186
187 187
188 /** 188 /**
189 Starts the preferred web browser with the given URL as argument. 189 Starts the preferred web browser with the given URL as argument.
190 */ 190 */
191 void browse( const QString& url ); 191 void browse( const QString& url );
192 192
193 /** 193 /**
194 Select all contacts in the view. 194 Select all contacts in the view.
195 */ 195 */
196 void selectAllContacts(); 196 void selectAllContacts();
197 197
198 /** 198 /**
199 Deletes all selected contacts from the address book. 199 Deletes all selected contacts from the address book.
200 */ 200 */
201 void deleteContacts(); 201 void deleteContacts();
202 202
203 /** 203 /**
204 Deletes given contacts from the address book. 204 Deletes given contacts from the address book.
205 205
206 @param uids The uids of the contacts, which shall be deleted. 206 @param uids The uids of the contacts, which shall be deleted.
207 */ 207 */
208 void deleteContacts( const QStringList &uids ); 208 void deleteContacts( const QStringList &uids );
209 209
210 /** 210 /**
211 Copys the selected contacts into clipboard for later pasting. 211 Copys the selected contacts into clipboard for later pasting.
212 */ 212 */
213 void copyContacts(); 213 void copyContacts();
214 214
215 /** 215 /**
216 Cuts the selected contacts and stores them for later pasting. 216 Cuts the selected contacts and stores them for later pasting.
217 */ 217 */
218 void cutContacts(); 218 void cutContacts();
219 219
220 /** 220 /**
221 Paste contacts from clipboard into the address book. 221 Paste contacts from clipboard into the address book.
222 */ 222 */
223 void pasteContacts(); 223 void pasteContacts();
224 224
225 /** 225 /**
226 Paste given contacts into the address book. 226 Paste given contacts into the address book.
227 227
228 @param list The list of addressee, which shall be pasted. 228 @param list The list of addressee, which shall be pasted.
229 */ 229 */
230 void pasteContacts( KABC::Addressee::List &list ); 230 void pasteContacts( KABC::Addressee::List &list );
231 231
232 /** 232 /**
233 Sets the whoAmI contact, that is used by many other programs to 233 Sets the whoAmI contact, that is used by many other programs to
234 get personal information about the current user. 234 get personal information about the current user.
235 */ 235 */
236 void setWhoAmI(); 236 void setWhoAmI();
237 237
238 /** 238 /**
239 Displays the category dialog and applies the result to all 239 Displays the category dialog and applies the result to all
240 selected contacts. 240 selected contacts.
241 */ 241 */
242 void setCategories(); 242 void setCategories();
243 void manageCategories(); 243 void manageCategories();
244 void editCategories(); 244 void editCategories();
245 245
246 /** 246 /**
247 Sets the field list of the Incremental Search Widget. 247 Sets the field list of the Incremental Search Widget.
248 */ 248 */
249 void setSearchFields( const KABC::Field::List &fields ); 249 void setSearchFields( const KABC::Field::List &fields );
250 250
251 /** 251 /**
252 Search with the current search field for a contact, that matches 252 Search with the current search field for a contact, that matches
253 the given text, and selects it in the view. 253 the given text, and selects it in the view.
254 */ 254 */
255 void incrementalSearch( const QString& text ); 255 void incrementalSearch( const QString& text );
256 256
257 /** 257 /**
258 Marks the address book as modified. 258 Marks the address book as modified.
259 */ 259 */
260 void setModified(); 260 void setModified();
261 /** 261 /**
262 Marks the address book as modified without refreshing the view. 262 Marks the address book as modified without refreshing the view.
263 */ 263 */
264 void setModifiedWOrefresh(); 264 void setModifiedWOrefresh();
265 265
266 /** 266 /**
267 Marks the address book as modified concerning the argument. 267 Marks the address book as modified concerning the argument.
268 */ 268 */
269 void setModified( bool modified ); 269 void setModified( bool modified );
270 270
271 /** 271 /**
272 Returns whether the address book is modified. 272 Returns whether the address book is modified.
273 */ 273 */
274 bool modified() const; 274 bool modified() const;
275 275
276 /** 276 /**
277 Called whenever an contact is modified in the contact editor 277 Called whenever an contact is modified in the contact editor
278 dialog or the quick edit. 278 dialog or the quick edit.
279 */ 279 */
280 void contactModified( const KABC::Addressee &addr ); 280 void contactModified( const KABC::Addressee &addr );
281 void addrModified( const KABC::Addressee &addr, bool updateDetails = true ); 281 void addrModified( const KABC::Addressee &addr, bool updateDetails = true );
282 282
283 /** 283 /**
284 DCOP METHODS. 284 DCOP METHODS.
285 */ 285 */
286 void addEmail( QString addr ); 286 void addEmail( QString addr );
287 void importVCard( const KURL& url, bool showPreview ); 287 void importVCard( const KURL& url, bool showPreview );
288 void importVCard( const QString& vCard, bool showPreview ); 288 void importVCard( const QString& vCard, bool showPreview );
289 void newContact(); 289 void newContact();
290 QString getNameByPhone( const QString& phone ); 290 QString getNameByPhone( const QString& phone );
291 /** 291 /**
292 END DCOP METHODS 292 END DCOP METHODS
293 */ 293 */
294 294
295 /** 295 /**
296 Saves the contents of the AddressBook back to disk. 296 Saves the contents of the AddressBook back to disk.
297 */ 297 */
298 void save(); 298 void save();
299 299
300 /** 300 /**
301 Undos the last command using the undo stack. 301 Undos the last command using the undo stack.
302 */ 302 */
303 void undo(); 303 void undo();
304 304
305 /** 305 /**
306 Redos the last command that was undone, using the redo stack. 306 Redos the last command that was undone, using the redo stack.
307 */ 307 */
308 void redo(); 308 void redo();
309 309
310 /** 310 /**
311 Shows the edit dialog for the given uid. If the uid is QString::null, 311 Shows the edit dialog for the given uid. If the uid is QString::null,
312 the method will try to find a selected addressee in the view. 312 the method will try to find a selected addressee in the view.
313 */ 313 */
314 void editContact( const QString &uid /*US = QString::null*/ ); 314 void editContact( const QString &uid /*US = QString::null*/ );
315//US added a second method without defaultparameter 315//US added a second method without defaultparameter
316 void editContact2(); 316 void editContact2();
317 317
318 /** 318 /**
319 Shows or edits the detail view for the given uid. If the uid is QString::null, 319 Shows or edits the detail view for the given uid. If the uid is QString::null,
320 the method will try to find a selected addressee in the view. 320 the method will try to find a selected addressee in the view.
321 */ 321 */
322 void executeContact( const QString &uid /*US = QString::null*/ ); 322 void executeContact( const QString &uid /*US = QString::null*/ );
323 323
324 /** 324 /**
325 Launches the configuration dialog. 325 Launches the configuration dialog.
326 */ 326 */
327 void openConfigDialog(); 327 void openConfigDialog();
328 328
329 /** 329 /**
330 Launches the ldap search dialog. 330 Launches the ldap search dialog.
331 */ 331 */
332 void openLDAPDialog(); 332 void openLDAPDialog();
333 333
334 /** 334 /**
335 Creates a KAddressBookPrinter, which will display the print 335 Creates a KAddressBookPrinter, which will display the print
336 dialog and do the printing. 336 dialog and do the printing.
337 */ 337 */
338 void print(); 338 void print();
339 339
340 /** 340 /**
341 Registers a new GUI client, so plugins can register its actions. 341 Registers a new GUI client, so plugins can register its actions.
342 */ 342 */
343 void addGUIClient( KXMLGUIClient *client ); 343 void addGUIClient( KXMLGUIClient *client );
344 344
345 void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); 345 void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid);
346 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); 346 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid);
347 void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid); 347 void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid);
348 348
349 349
350 signals: 350 signals:
351 void contactSelected( const QString &name ); 351 void contactSelected( const QString &name );
352 void contactSelected( const QPixmap &pixmap ); 352 void contactSelected( const QPixmap &pixmap );
353 public slots: 353 public slots:
354 void recieve(QString cmsg ); 354 void recieve(QString cmsg );
355 void getFile( bool success ); 355 void getFile( bool success );
356 void syncFileRequest(); 356 void syncFileRequest();
357 void setDetailsVisible( bool visible ); 357 void setDetailsVisible( bool visible );
358 void setDetailsToState(); 358 void setDetailsToState();
359 359
360 void saveSettings(); 360 void saveSettings();
361 361
362 private slots: 362 private slots:
363 void updateToolBar(); 363 void updateToolBar();
364 void updateMainWindow(); 364 void updateMainWindow();
365 void receive( const QCString& cmsg, const QByteArray& data ); 365 void receive( const QCString& cmsg, const QByteArray& data );
366 void toggleBeamReceive( ); 366 void toggleBeamReceive( );
367 void disableBR(bool); 367 void disableBR(bool);
368 void setJumpButtonBarVisible( bool visible ); 368 void setJumpButtonBarVisible( bool visible );
369 void setJumpButtonBar( bool visible );
369 void setCaptionBack(); 370 void setCaptionBack();
370 void importFromOL(); 371 void importFromOL();
371 void extensionModified( const KABC::Addressee::List &list ); 372 void extensionModified( const KABC::Addressee::List &list );
372 void extensionChanged( int id ); 373 void extensionChanged( int id );
373 void clipboardDataChanged(); 374 void clipboardDataChanged();
374 void updateActionMenu(); 375 void updateActionMenu();
375 void configureKeyBindings(); 376 void configureKeyBindings();
376 void removeVoice(); 377 void removeVoice();
377 void setFormattedName(); 378 void setFormattedName();
378#ifdef KAB_EMBEDDED 379#ifdef KAB_EMBEDDED
379 void configureResources(); 380 void configureResources();
380#endif //KAB_EMBEDDED 381#endif //KAB_EMBEDDED
381 382
382 void slotEditorDestroyed( const QString &uid ); 383 void slotEditorDestroyed( const QString &uid );
383 void configurationChanged(); 384 void configurationChanged();
384 void addressBookChanged(); 385 void addressBookChanged();
385 386
386 private: 387 private:
387 void resizeEvent(QResizeEvent* e ); 388 void resizeEvent(QResizeEvent* e );
388 bool mBRdisabled; 389 bool mBRdisabled;
389#ifndef DESKTOP_VERSION 390#ifndef DESKTOP_VERSION
390 QCopChannel* infrared; 391 QCopChannel* infrared;
391#endif 392#endif
392 QTimer *mMessageTimer; 393 QTimer *mMessageTimer;
393 void initGUI(); 394 void initGUI();
394 void initActions(); 395 void initActions();
395 QString getPhoneFile(); 396 QString getPhoneFile();
396 397
397 AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, 398 AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent,
398 const char *name = 0 ); 399 const char *name = 0 );
399 400
400 KXMLGUIClient *mGUIClient; 401 KXMLGUIClient *mGUIClient;
401 402
402 KABC::AddressBook *mAddressBook; 403 KABC::AddressBook *mAddressBook;
403 404
404 ViewManager *mViewManager; 405 ViewManager *mViewManager;
405 // QSplitter *mDetailsSplitter; 406 // QSplitter *mDetailsSplitter;
406 KDGanttMinimizeSplitter *mExtensionBarSplitter; 407 KDGanttMinimizeSplitter *mExtensionBarSplitter;
407 ViewContainer *mDetails; 408 ViewContainer *mDetails;
408 KDGanttMinimizeSplitter* mMiniSplitter; 409 KDGanttMinimizeSplitter* mMiniSplitter;
409 XXPortManager *mXXPortManager; 410 XXPortManager *mXXPortManager;
410 JumpButtonBar *mJumpButtonBar; 411 JumpButtonBar *mJumpButtonBar;
411 IncSearchWidget *mIncSearchWidget; 412 IncSearchWidget *mIncSearchWidget;
412 ExtensionManager *mExtensionManager; 413 ExtensionManager *mExtensionManager;
413 414
414 KCMultiDialog *mConfigureDialog; 415 KCMultiDialog *mConfigureDialog;
415 416
416#ifndef KAB_EMBEDDED 417#ifndef KAB_EMBEDDED
417 LDAPSearchDialog *mLdapSearchDialog; 418 LDAPSearchDialog *mLdapSearchDialog;
418#endif //KAB_EMBEDDED 419#endif //KAB_EMBEDDED
419 // QDict<AddresseeEditorDialog> mEditorDict; 420 // QDict<AddresseeEditorDialog> mEditorDict;
420 AddresseeEditorDialog *mEditorDialog; 421 AddresseeEditorDialog *mEditorDialog;
421 bool mReadWrite; 422 bool mReadWrite;
422 bool mModified; 423 bool mModified;
423 bool mIsPart; 424 bool mIsPart;
424 bool mMultipleViewsAtOnce; 425 bool mMultipleViewsAtOnce;
425 426
426 427
427 //US file menu 428 //US file menu
428 KAction *mActionMail; 429 KAction *mActionMail;
429 KAction *mActionBeam; 430 KAction *mActionBeam;
430 KToggleAction *mActionBR; 431 KToggleAction *mActionBR;
431 KAction *mActionExport2phone; 432 KAction *mActionExport2phone;
432 KAction* mActionPrint; 433 KAction* mActionPrint;
433 KAction* mActionPrintDetails; 434 KAction* mActionPrintDetails;
434 KAction* mActionNewContact; 435 KAction* mActionNewContact;
435 KAction *mActionSave; 436 KAction *mActionSave;
436 KAction *mActionEditAddressee; 437 KAction *mActionEditAddressee;
437 KAction *mActionMailVCard; 438 KAction *mActionMailVCard;
438 KAction *mActionBeamVCard; 439 KAction *mActionBeamVCard;
439 440
440 KAction *mActionQuit; 441 KAction *mActionQuit;
441 442
442 //US edit menu 443 //US edit menu
443 KAction *mActionCopy; 444 KAction *mActionCopy;
444 KAction *mActionCut; 445 KAction *mActionCut;
445 KAction *mActionPaste; 446 KAction *mActionPaste;
446 KAction *mActionSelectAll; 447 KAction *mActionSelectAll;
447 KAction *mActionUndo; 448 KAction *mActionUndo;
448 KAction *mActionRedo; 449 KAction *mActionRedo;
449 KAction *mActionDelete; 450 KAction *mActionDelete;
450 451
451 //US settings menu 452 //US settings menu
452 KAction *mActionConfigResources; 453 KAction *mActionConfigResources;
453 KAction *mActionConfigKAddressbook; 454 KAction *mActionConfigKAddressbook;
454 KAction *mActionConfigShortcuts; 455 KAction *mActionConfigShortcuts;
455 KAction *mActionConfigureToolbars; 456 KAction *mActionConfigureToolbars;
456 KAction *mActionKeyBindings; 457 KAction *mActionKeyBindings;
457 KToggleAction *mActionJumpBar; 458 KToggleAction *mActionJumpBar;
458 KToggleAction *mActionDetails; 459 KToggleAction *mActionDetails;
459 KAction *mActionWhoAmI; 460 KAction *mActionWhoAmI;
460 KAction *mActionCategories; 461 KAction *mActionCategories;
461 KAction *mActionEditCategories; 462 KAction *mActionEditCategories;
462 KAction *mActionManageCategories; 463 KAction *mActionManageCategories;
463 KAction *mActionAboutKAddressbook; 464 KAction *mActionAboutKAddressbook;
464 KAction *mActionLicence; 465 KAction *mActionLicence;
465 KAction *mActionFaq; 466 KAction *mActionFaq;
466 KAction *mActionWN; 467 KAction *mActionWN;
467 KAction *mActionSyncHowto; 468 KAction *mActionSyncHowto;
468 KAction *mActionKdeSyncHowto; 469 KAction *mActionKdeSyncHowto;
469 KAction *mActionMultiSyncHowto; 470 KAction *mActionMultiSyncHowto;
470 471
471 KAction *mActionDeleteView; 472 KAction *mActionDeleteView;
472 473
473 QPopupMenu *viewMenu; 474 QPopupMenu *viewMenu;
474 QPopupMenu *filterMenu; 475 QPopupMenu *filterMenu;
475 QPopupMenu *settingsMenu; 476 QPopupMenu *settingsMenu;
476 QPopupMenu *changeMenu; 477 QPopupMenu *changeMenu;
477 QPopupMenu *beamMenu; 478 QPopupMenu *beamMenu;
478//US QAction *mActionSave; 479//US QAction *mActionSave;
479 QPopupMenu *ImportMenu; 480 QPopupMenu *ImportMenu;
480 QPopupMenu *ExportMenu; 481 QPopupMenu *ExportMenu;
481 //LR additional methods 482 //LR additional methods
482 KAction *mActionRemoveVoice; 483 KAction *mActionRemoveVoice;
483 KAction *mActionSetFormattedName; 484 KAction *mActionSetFormattedName;
484 KAction * mActionImportOL; 485 KAction * mActionImportOL;
485 486
486#ifndef KAB_EMBEDDED 487#ifndef KAB_EMBEDDED
487 KAddressBookService *mAddressBookService; 488 KAddressBookService *mAddressBookService;
488#endif //KAB_EMBEDDED 489#endif //KAB_EMBEDDED
489 490
490 class KABCorePrivate; 491 class KABCorePrivate;
491 KABCorePrivate *d; 492 KABCorePrivate *d;
492 //US bool mBlockSaveFlag; 493 //US bool mBlockSaveFlag;
493 494
494#ifdef KAB_EMBEDDED 495#ifdef KAB_EMBEDDED
495 KAddressBookMain *mMainWindow; // should be the same like mGUIClient 496 KAddressBookMain *mMainWindow; // should be the same like mGUIClient
496#endif //KAB_EMBEDDED 497#endif //KAB_EMBEDDED
497 498
498 //this are the overwritten callbackmethods from the syncinterface 499 //this are the overwritten callbackmethods from the syncinterface
499 virtual bool sync(KSyncManager* manager, QString filename, int mode); 500 virtual bool sync(KSyncManager* manager, QString filename, int mode);
500 virtual bool syncExternal(KSyncManager* manager, QString resource); 501 virtual bool syncExternal(KSyncManager* manager, QString resource);
501 virtual void removeSyncInfo( QString syncProfile); 502 virtual void removeSyncInfo( QString syncProfile);
502 bool syncPhone(); 503 bool syncPhone();
503 void message( QString m , bool startTimer = true); 504 void message( QString m , bool startTimer = true);
504 505
505 // LR ******************************* 506 // LR *******************************
506 // sync stuff! 507 // sync stuff!
507 QString sentSyncFile(); 508 QString sentSyncFile();
508 QPopupMenu *syncMenu; 509 QPopupMenu *syncMenu;
509 KSyncManager* syncManager; 510 KSyncManager* syncManager;
510 int mGlobalSyncMode; 511 int mGlobalSyncMode;
511 bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode); 512 bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode);
512 KABC::Addressee getLastSyncAddressee(); 513 KABC::Addressee getLastSyncAddressee();
513 QDateTime mLastAddressbookSync; 514 QDateTime mLastAddressbookSync;
514 int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full ); 515 int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full );
515 // ********************* 516 // *********************
516 517
517}; 518};
518 519
519#endif 520#endif