summaryrefslogtreecommitdiffabout
path: root/kaddressbook
authorzautrix <zautrix>2004-10-27 12:27:39 (UTC)
committer zautrix <zautrix>2004-10-27 12:27:39 (UTC)
commit2f3396d84d2f3c92e1e0e420d677892c1f9c0778 (patch) (unidiff)
tree1ebab5dc6d00cb09720789897ce2c86df05cc9ab /kaddressbook
parentf73d249579d52d7aeaacde2dcb23abeb42f9ee95 (diff)
downloadkdepimpi-2f3396d84d2f3c92e1e0e420d677892c1f9c0778.zip
kdepimpi-2f3396d84d2f3c92e1e0e420d677892c1f9c0778.tar.gz
kdepimpi-2f3396d84d2f3c92e1e0e420d677892c1f9c0778.tar.bz2
completed KDE AB sync. but will it work ...?
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp23
-rw-r--r--kaddressbook/viewmanager.cpp5
-rw-r--r--kaddressbook/viewmanager.h1
3 files changed, 27 insertions, 2 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 2f00a09..ea87929 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1267,100 +1267,102 @@ void KABCore::setJumpButtonBarVisible( bool visible )
1267 else 1267 else
1268 { 1268 {
1269 // show the jumpbar only if "the details are hidden" == "viewmanager are shown" 1269 // show the jumpbar only if "the details are hidden" == "viewmanager are shown"
1270 if (mViewManager->isVisible()) 1270 if (mViewManager->isVisible())
1271 { 1271 {
1272 if ( visible ) 1272 if ( visible )
1273 mJumpButtonBar->show(); 1273 mJumpButtonBar->show();
1274 else 1274 else
1275 mJumpButtonBar->hide(); 1275 mJumpButtonBar->hide();
1276 } 1276 }
1277 else 1277 else
1278 { 1278 {
1279 mJumpButtonBar->hide(); 1279 mJumpButtonBar->hide();
1280 } 1280 }
1281 } 1281 }
1282} 1282}
1283 1283
1284 1284
1285void KABCore::setDetailsToState() 1285void KABCore::setDetailsToState()
1286{ 1286{
1287 setDetailsVisible( mActionDetails->isChecked() ); 1287 setDetailsVisible( mActionDetails->isChecked() );
1288} 1288}
1289 1289
1290 1290
1291 1291
1292void KABCore::setDetailsVisible( bool visible ) 1292void KABCore::setDetailsVisible( bool visible )
1293{ 1293{
1294 if (visible && mDetails->isHidden()) 1294 if (visible && mDetails->isHidden())
1295 { 1295 {
1296 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 1296 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
1297 if ( addrList.count() > 0 ) 1297 if ( addrList.count() > 0 )
1298 mDetails->setAddressee( addrList[ 0 ] ); 1298 mDetails->setAddressee( addrList[ 0 ] );
1299 } 1299 }
1300 1300
1301 // mMultipleViewsAtOnce=false: mDetails is always visible. But we switch between 1301 // mMultipleViewsAtOnce=false: mDetails is always visible. But we switch between
1302 // the listview and the detailview. We do that by changing the splitbar size. 1302 // the listview and the detailview. We do that by changing the splitbar size.
1303 if (mMultipleViewsAtOnce) 1303 if (mMultipleViewsAtOnce)
1304 { 1304 {
1305 if ( visible ) 1305 if ( visible )
1306 mDetails->show(); 1306 mDetails->show();
1307 else 1307 else
1308 mDetails->hide(); 1308 mDetails->hide();
1309 } 1309 }
1310 else 1310 else
1311 { 1311 {
1312 if ( visible ) { 1312 if ( visible ) {
1313 mViewManager->hide(); 1313 mViewManager->hide();
1314 mDetails->show(); 1314 mDetails->show();
1315 mIncSearchWidget->setFocus();
1315 } 1316 }
1316 else { 1317 else {
1317 mViewManager->show(); 1318 mViewManager->show();
1318 mDetails->hide(); 1319 mDetails->hide();
1320 mViewManager->setFocusAV();
1319 } 1321 }
1320 setJumpButtonBarVisible( !visible ); 1322 setJumpButtonBarVisible( !visible );
1321 } 1323 }
1322 1324
1323} 1325}
1324 1326
1325void KABCore::extensionChanged( int id ) 1327void KABCore::extensionChanged( int id )
1326{ 1328{
1327 //change the details view only for non desktop systems 1329 //change the details view only for non desktop systems
1328#ifndef DESKTOP_VERSION 1330#ifndef DESKTOP_VERSION
1329 1331
1330 if (id == 0) 1332 if (id == 0)
1331 { 1333 {
1332 //the user disabled the extension. 1334 //the user disabled the extension.
1333 1335
1334 if (mMultipleViewsAtOnce) 1336 if (mMultipleViewsAtOnce)
1335 { // enable detailsview again 1337 { // enable detailsview again
1336 setDetailsVisible( true ); 1338 setDetailsVisible( true );
1337 mActionDetails->setChecked( true ); 1339 mActionDetails->setChecked( true );
1338 } 1340 }
1339 else 1341 else
1340 { //go back to the listview 1342 { //go back to the listview
1341 setDetailsVisible( false ); 1343 setDetailsVisible( false );
1342 mActionDetails->setChecked( false ); 1344 mActionDetails->setChecked( false );
1343 mActionDetails->setEnabled(true); 1345 mActionDetails->setEnabled(true);
1344 } 1346 }
1345 1347
1346 } 1348 }
1347 else 1349 else
1348 { 1350 {
1349 //the user enabled the extension. 1351 //the user enabled the extension.
1350 setDetailsVisible( false ); 1352 setDetailsVisible( false );
1351 mActionDetails->setChecked( false ); 1353 mActionDetails->setChecked( false );
1352 1354
1353 if (!mMultipleViewsAtOnce) 1355 if (!mMultipleViewsAtOnce)
1354 { 1356 {
1355 mActionDetails->setEnabled(false); 1357 mActionDetails->setEnabled(false);
1356 } 1358 }
1357 1359
1358 mExtensionManager->setSelectionChanged(); 1360 mExtensionManager->setSelectionChanged();
1359 1361
1360 } 1362 }
1361 1363
1362#endif// DESKTOP_VERSION 1364#endif// DESKTOP_VERSION
1363 1365
1364} 1366}
1365 1367
1366 1368
@@ -1999,96 +2001,99 @@ void KABCore::addActionsManually()
1999 mActionRemoveVoice->plug( changeMenu ); 2001 mActionRemoveVoice->plug( changeMenu );
2000 // settings menu 2002 // settings menu
2001//US special menuentry to configure the addressbook resources. On KDE 2003//US special menuentry to configure the addressbook resources. On KDE
2002// you do that through the control center !!! 2004// you do that through the control center !!!
2003 mActionConfigResources->plug( settingsMenu ); 2005 mActionConfigResources->plug( settingsMenu );
2004 settingsMenu->insertSeparator(); 2006 settingsMenu->insertSeparator();
2005 2007
2006 mActionConfigKAddressbook->plug( settingsMenu ); 2008 mActionConfigKAddressbook->plug( settingsMenu );
2007 2009
2008 if ( mIsPart ) { 2010 if ( mIsPart ) {
2009 //US not implemented yet 2011 //US not implemented yet
2010 //mActionConfigShortcuts->plug( settingsMenu ); 2012 //mActionConfigShortcuts->plug( settingsMenu );
2011 //mActionConfigureToolbars->plug( settingsMenu ); 2013 //mActionConfigureToolbars->plug( settingsMenu );
2012 2014
2013 } else { 2015 } else {
2014 //US not implemented yet 2016 //US not implemented yet
2015 //mActionKeyBindings->plug( settingsMenu ); 2017 //mActionKeyBindings->plug( settingsMenu );
2016 } 2018 }
2017 2019
2018 settingsMenu->insertSeparator(); 2020 settingsMenu->insertSeparator();
2019 2021
2020 mActionJumpBar->plug( settingsMenu ); 2022 mActionJumpBar->plug( settingsMenu );
2021 mActionDetails->plug( settingsMenu ); 2023 mActionDetails->plug( settingsMenu );
2022 if (!KABPrefs::instance()->mMultipleViewsAtOnce || KGlobal::getDesktopSize() == KGlobal::Desktop ) 2024 if (!KABPrefs::instance()->mMultipleViewsAtOnce || KGlobal::getDesktopSize() == KGlobal::Desktop )
2023 mActionDetails->plug( tb ); 2025 mActionDetails->plug( tb );
2024 settingsMenu->insertSeparator(); 2026 settingsMenu->insertSeparator();
2025 mActionBR->plug(settingsMenu ); 2027 mActionBR->plug(settingsMenu );
2026 settingsMenu->insertSeparator(); 2028 settingsMenu->insertSeparator();
2027 2029
2028 mActionWhoAmI->plug( settingsMenu ); 2030 mActionWhoAmI->plug( settingsMenu );
2029 mActionCategories->plug( settingsMenu ); 2031 mActionCategories->plug( settingsMenu );
2030 2032
2031 2033
2032 mActionWN->plug( helpMenu ); 2034 mActionWN->plug( helpMenu );
2033 mActionSyncHowto->plug( helpMenu ); 2035 mActionSyncHowto->plug( helpMenu );
2034 mActionLicence->plug( helpMenu ); 2036 mActionLicence->plug( helpMenu );
2035 mActionFaq->plug( helpMenu ); 2037 mActionFaq->plug( helpMenu );
2036 mActionAboutKAddressbook->plug( helpMenu ); 2038 mActionAboutKAddressbook->plug( helpMenu );
2037 2039
2038 if (KGlobal::getDesktopSize() > KGlobal::Small ) { 2040 if (KGlobal::getDesktopSize() > KGlobal::Small ) {
2039 2041
2040 mActionSave->plug( tb ); 2042 mActionSave->plug( tb );
2041 mViewManager->getFilterAction()->plug ( tb); 2043 mViewManager->getFilterAction()->plug ( tb);
2042 if (KGlobal::getDesktopSize() == KGlobal::Desktop ) { 2044 if (KGlobal::getDesktopSize() == KGlobal::Desktop ) {
2043 mActionUndo->plug( tb ); 2045 mActionUndo->plug( tb );
2044 mActionDelete->plug( tb ); 2046 mActionDelete->plug( tb );
2045 mActionRedo->plug( tb ); 2047 mActionRedo->plug( tb );
2046 } 2048 }
2049 } else {
2050 if (KABPrefs::instance()->mMultipleViewsAtOnce )
2051 mActionSave->plug( tb );
2047 } 2052 }
2048 //mActionQuit->plug ( tb ); 2053 //mActionQuit->plug ( tb );
2049 // tb->insertWidget(-1, 0, mIncSearchWidget, 6); 2054 // tb->insertWidget(-1, 0, mIncSearchWidget, 6);
2050 2055
2051 //US link the searchwidget first to this. 2056 //US link the searchwidget first to this.
2052 // The real linkage to the toolbar happens later. 2057 // The real linkage to the toolbar happens later.
2053//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE); 2058//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE);
2054//US tb->insertItem( mIncSearchWidget ); 2059//US tb->insertItem( mIncSearchWidget );
2055/*US 2060/*US
2056 mIncSearchWidget = new IncSearchWidget( tb ); 2061 mIncSearchWidget = new IncSearchWidget( tb );
2057 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 2062 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
2058 SLOT( incrementalSearch( const QString& ) ) ); 2063 SLOT( incrementalSearch( const QString& ) ) );
2059 2064
2060 mJumpButtonBar = new JumpButtonBar( this, this ); 2065 mJumpButtonBar = new JumpButtonBar( this, this );
2061 2066
2062//US topLayout->addWidget( mJumpButtonBar ); 2067//US topLayout->addWidget( mJumpButtonBar );
2063 this->layout()->add( mJumpButtonBar ); 2068 this->layout()->add( mJumpButtonBar );
2064*/ 2069*/
2065 2070
2066#endif //KAB_EMBEDDED 2071#endif //KAB_EMBEDDED
2067 2072
2068 mActionExport2phone->plug( ExportMenu ); 2073 mActionExport2phone->plug( ExportMenu );
2069 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) ); 2074 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) );
2070 syncManager->fillSyncMenu(); 2075 syncManager->fillSyncMenu();
2071 2076
2072} 2077}
2073void KABCore::showLicence() 2078void KABCore::showLicence()
2074{ 2079{
2075 KApplication::showLicence(); 2080 KApplication::showLicence();
2076} 2081}
2077void KABCore::removeVoice() 2082void KABCore::removeVoice()
2078{ 2083{
2079 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 ) 2084 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 )
2080 return; 2085 return;
2081 KABC::Addressee::List list = mViewManager->selectedAddressees(); 2086 KABC::Addressee::List list = mViewManager->selectedAddressees();
2082 KABC::Addressee::List::Iterator it; 2087 KABC::Addressee::List::Iterator it;
2083 for ( it = list.begin(); it != list.end(); ++it ) { 2088 for ( it = list.begin(); it != list.end(); ++it ) {
2084 2089
2085 if ( (*it).removeVoice() ) 2090 if ( (*it).removeVoice() )
2086 contactModified((*it) ); 2091 contactModified((*it) );
2087 } 2092 }
2088} 2093}
2089 2094
2090 2095
2091 2096
2092void KABCore::clipboardDataChanged() 2097void KABCore::clipboardDataChanged()
2093{ 2098{
2094 2099
@@ -2462,97 +2467,106 @@ int KABCore::takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, i
2462 localIsNew = localMod >= remoteMod; 2467 localIsNew = localMod >= remoteMod;
2463 //qDebug("conflict! ************************************** "); 2468 //qDebug("conflict! ************************************** ");
2464 { 2469 {
2465 KPIM::AddresseeChooser acd ( *local,*remote, localIsNew , this ); 2470 KPIM::AddresseeChooser acd ( *local,*remote, localIsNew , this );
2466 result = acd.executeD(localIsNew); 2471 result = acd.executeD(localIsNew);
2467 return result; 2472 return result;
2468 } 2473 }
2469 break; 2474 break;
2470 case SYNC_PREF_FORCE_LOCAL: 2475 case SYNC_PREF_FORCE_LOCAL:
2471 return 1; 2476 return 1;
2472 break; 2477 break;
2473 case SYNC_PREF_FORCE_REMOTE: 2478 case SYNC_PREF_FORCE_REMOTE:
2474 return 2; 2479 return 2;
2475 break; 2480 break;
2476 2481
2477 default: 2482 default:
2478 // SYNC_PREF_TAKE_BOTH not implemented 2483 // SYNC_PREF_TAKE_BOTH not implemented
2479 break; 2484 break;
2480 } 2485 }
2481 return 0; 2486 return 0;
2482} 2487}
2483 2488
2484 2489
2485bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode) 2490bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode)
2486{ 2491{
2487 bool syncOK = true; 2492 bool syncOK = true;
2488 int addedAddressee = 0; 2493 int addedAddressee = 0;
2489 int addedAddresseeR = 0; 2494 int addedAddresseeR = 0;
2490 int deletedAddresseeR = 0; 2495 int deletedAddresseeR = 0;
2491 int deletedAddresseeL = 0; 2496 int deletedAddresseeL = 0;
2492 int changedLocal = 0; 2497 int changedLocal = 0;
2493 int changedRemote = 0; 2498 int changedRemote = 0;
2494 2499
2495 QString mCurrentSyncName = syncManager->getCurrentSyncName(); 2500 QString mCurrentSyncName = syncManager->getCurrentSyncName();
2496 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); 2501 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice();
2497 2502
2498 //QPtrList<Addressee> el = local->rawAddressees(); 2503 //QPtrList<Addressee> el = local->rawAddressees();
2499 Addressee addresseeR; 2504 Addressee addresseeR;
2500 QString uid; 2505 QString uid;
2501 int take; 2506 int take;
2502 Addressee addresseeL; 2507 Addressee addresseeL;
2503 Addressee addresseeRSync; 2508 Addressee addresseeRSync;
2504 Addressee addresseeLSync; 2509 Addressee addresseeLSync;
2505 // KABC::Addressee::List addresseeRSyncSharp = remote->getExternLastSyncAddressees(); 2510 // KABC::Addressee::List addresseeRSyncSharp = remote->getExternLastSyncAddressees();
2506 //KABC::Addressee::List addresseeLSyncSharp = local->getExternLastSyncAddressees(); 2511 //KABC::Addressee::List addresseeLSyncSharp = local->getExternLastSyncAddressees();
2507 bool fullDateRange = false; 2512 bool fullDateRange = false;
2508 local->resetTempSyncStat(); 2513 local->resetTempSyncStat();
2509 mLastAddressbookSync = QDateTime::currentDateTime(); 2514 mLastAddressbookSync = QDateTime::currentDateTime();
2510 QDateTime modifiedCalendar = mLastAddressbookSync;; 2515 if ( syncManager->syncWithDesktop() ) {
2516 remote->removeSyncInfo( QString());//remove all info
2517 if ( KSyncManager::mRequestedSyncEvent.isValid() ) {
2518 mLastAddressbookSync = KSyncManager::mRequestedSyncEvent;
2519 qDebug("using extern time for calendar sync: %s ", mLastAddressbookSync.toString().latin1() );
2520 } else {
2521 qDebug("ERROR: KSyncManager::mRequestedSyncEvent has invalid datatime ");
2522 }
2523 }
2524 QDateTime modifiedCalendar = mLastAddressbookSync;
2511 addresseeLSync = getLastSyncAddressee(); 2525 addresseeLSync = getLastSyncAddressee();
2512 qDebug("Last Sync %s ", addresseeLSync.revision().toString().latin1()); 2526 qDebug("Last Sync %s ", addresseeLSync.revision().toString().latin1());
2513 addresseeR = remote->findByUid("last-syncAddressee-"+mCurrentSyncName ); 2527 addresseeR = remote->findByUid("last-syncAddressee-"+mCurrentSyncName );
2514 if ( !addresseeR.isEmpty() ) { 2528 if ( !addresseeR.isEmpty() ) {
2515 addresseeRSync = addresseeR; 2529 addresseeRSync = addresseeR;
2516 remote->removeAddressee(addresseeR ); 2530 remote->removeAddressee(addresseeR );
2517 2531
2518 } else { 2532 } else {
2519 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2533 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2520 addresseeRSync = addresseeLSync ; 2534 addresseeRSync = addresseeLSync ;
2521 } else { 2535 } else {
2522 qDebug("FULLDATE 1"); 2536 qDebug("FULLDATE 1");
2523 fullDateRange = true; 2537 fullDateRange = true;
2524 Addressee newAdd; 2538 Addressee newAdd;
2525 addresseeRSync = newAdd; 2539 addresseeRSync = newAdd;
2526 addresseeRSync.setFamilyName(mCurrentSyncName + i18n(" - sync addressee")); 2540 addresseeRSync.setFamilyName(mCurrentSyncName + i18n(" - sync addressee"));
2527 addresseeRSync.setUid("last-syncAddressee-"+mCurrentSyncName ); 2541 addresseeRSync.setUid("last-syncAddressee-"+mCurrentSyncName );
2528 addresseeRSync.setRevision( mLastAddressbookSync ); 2542 addresseeRSync.setRevision( mLastAddressbookSync );
2529 addresseeRSync.setCategories( i18n("SyncAddressee") ); 2543 addresseeRSync.setCategories( i18n("SyncAddressee") );
2530 } 2544 }
2531 } 2545 }
2532 if ( addresseeLSync.revision() == mLastAddressbookSync ) { 2546 if ( addresseeLSync.revision() == mLastAddressbookSync ) {
2533 qDebug("FULLDATE 2"); 2547 qDebug("FULLDATE 2");
2534 fullDateRange = true; 2548 fullDateRange = true;
2535 } 2549 }
2536 if ( ! fullDateRange ) { 2550 if ( ! fullDateRange ) {
2537 if ( addresseeLSync.revision() != addresseeRSync.revision() ) { 2551 if ( addresseeLSync.revision() != addresseeRSync.revision() ) {
2538 2552
2539 // qDebug("set fulldate to true %s %s" ,addresseeLSync->dtStart().toString().latin1(), addresseeRSync->dtStart().toString().latin1() ); 2553 // qDebug("set fulldate to true %s %s" ,addresseeLSync->dtStart().toString().latin1(), addresseeRSync->dtStart().toString().latin1() );
2540 //qDebug("%d %d %d %d ", addresseeLSync->dtStart().time().second(), addresseeLSync->dtStart().time().msec() , addresseeRSync->dtStart().time().second(), addresseeRSync->dtStart().time().msec()); 2554 //qDebug("%d %d %d %d ", addresseeLSync->dtStart().time().second(), addresseeLSync->dtStart().time().msec() , addresseeRSync->dtStart().time().second(), addresseeRSync->dtStart().time().msec());
2541 fullDateRange = true; 2555 fullDateRange = true;
2542 qDebug("FULLDATE 3 %s %s", addresseeLSync.revision().toString().latin1() , addresseeRSync.revision().toString().latin1() ); 2556 qDebug("FULLDATE 3 %s %s", addresseeLSync.revision().toString().latin1() , addresseeRSync.revision().toString().latin1() );
2543 } 2557 }
2544 } 2558 }
2545 // fullDateRange = true; // debug only! 2559 // fullDateRange = true; // debug only!
2546 if ( fullDateRange ) 2560 if ( fullDateRange )
2547 mLastAddressbookSync = QDateTime::currentDateTime().addDays( -100*365); 2561 mLastAddressbookSync = QDateTime::currentDateTime().addDays( -100*365);
2548 else 2562 else
2549 mLastAddressbookSync = addresseeLSync.revision(); 2563 mLastAddressbookSync = addresseeLSync.revision();
2550 // for resyncing if own file has changed 2564 // for resyncing if own file has changed
2551 // PENDING fixme later when implemented 2565 // PENDING fixme later when implemented
2552#if 0 2566#if 0
2553 if ( mCurrentSyncDevice == "deleteaftersync" ) { 2567 if ( mCurrentSyncDevice == "deleteaftersync" ) {
2554 mLastAddressbookSync = loadedFileVersion; 2568 mLastAddressbookSync = loadedFileVersion;
2555 qDebug("setting mLastAddressbookSync "); 2569 qDebug("setting mLastAddressbookSync ");
2556 } 2570 }
2557#endif 2571#endif
2558 2572
@@ -2560,96 +2574,98 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo
2560 // qDebug("mLastAddressbookSync %s ",mLastAddressbookSync.toString().latin1() ); 2574 // qDebug("mLastAddressbookSync %s ",mLastAddressbookSync.toString().latin1() );
2561 QStringList er = remote->uidList(); 2575 QStringList er = remote->uidList();
2562 Addressee inR ;//= er.first(); 2576 Addressee inR ;//= er.first();
2563 Addressee inL; 2577 Addressee inL;
2564 2578
2565 syncManager->showProgressBar(0, i18n("Syncing - close to abort!"), er.count()); 2579 syncManager->showProgressBar(0, i18n("Syncing - close to abort!"), er.count());
2566 2580
2567 int modulo = (er.count()/10)+1; 2581 int modulo = (er.count()/10)+1;
2568 int incCounter = 0; 2582 int incCounter = 0;
2569 while ( incCounter < er.count()) { 2583 while ( incCounter < er.count()) {
2570 if (syncManager->isProgressBarCanceled()) 2584 if (syncManager->isProgressBarCanceled())
2571 return false; 2585 return false;
2572 if ( incCounter % modulo == 0 ) 2586 if ( incCounter % modulo == 0 )
2573 syncManager->showProgressBar(incCounter); 2587 syncManager->showProgressBar(incCounter);
2574 2588
2575 uid = er[ incCounter ]; 2589 uid = er[ incCounter ];
2576 bool skipIncidence = false; 2590 bool skipIncidence = false;
2577 if ( uid.left(19) == QString("last-syncAddressee-") ) 2591 if ( uid.left(19) == QString("last-syncAddressee-") )
2578 skipIncidence = true; 2592 skipIncidence = true;
2579 QString idS,OidS; 2593 QString idS,OidS;
2580 qApp->processEvents(); 2594 qApp->processEvents();
2581 if ( !skipIncidence ) { 2595 if ( !skipIncidence ) {
2582 inL = local->findByUid( uid ); 2596 inL = local->findByUid( uid );
2583 inR = remote->findByUid( uid ); 2597 inR = remote->findByUid( uid );
2584 //inL.setResource( 0 ); 2598 //inL.setResource( 0 );
2585 //inR.setResource( 0 ); 2599 //inR.setResource( 0 );
2586 if ( !inL.isEmpty() ) { // maybe conflict - same uid in both calendars 2600 if ( !inL.isEmpty() ) { // maybe conflict - same uid in both calendars
2587 if ( !inL.resource() || inL.resource()->includeInSync() ) { 2601 if ( !inL.resource() || inL.resource()->includeInSync() ) {
2588 if ( take = takeAddressee( &inL, &inR, mode, fullDateRange ) ) { 2602 if ( take = takeAddressee( &inL, &inR, mode, fullDateRange ) ) {
2589 //qDebug("take %d %s ", take, inL.summary().latin1()); 2603 //qDebug("take %d %s ", take, inL.summary().latin1());
2590 if ( take == 3 ) 2604 if ( take == 3 )
2591 return false; 2605 return false;
2592 if ( take == 1 ) {// take local 2606 if ( take == 1 ) {// take local
2593 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2607 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2594 inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) ); 2608 inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) );
2595 inL.setID( mCurrentSyncDevice, inR.getID(mCurrentSyncDevice) ); 2609 inL.setID( mCurrentSyncDevice, inR.getID(mCurrentSyncDevice) );
2596 local->insertAddressee( inL, false ); 2610 local->insertAddressee( inL, false );
2597 idS = inR.externalUID(); 2611 idS = inR.externalUID();
2598 OidS = inR.originalExternalUID(); 2612 OidS = inR.originalExternalUID();
2599 } 2613 }
2600 else 2614 else
2601 idS = inR.IDStr(); 2615 idS = inR.IDStr();
2602 remote->removeAddressee( inR ); 2616 remote->removeAddressee( inR );
2603 inR = inL; 2617 inR = inL;
2604 inR.setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 2618 inR.setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
2605 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2619 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2606 inR.setOriginalExternalUID( OidS ); 2620 inR.setOriginalExternalUID( OidS );
2607 inR.setExternalUID( idS ); 2621 inR.setExternalUID( idS );
2622 if ( syncManager->syncWithDesktop() )
2623 inR.setIDStr( "changed" );
2608 } else { 2624 } else {
2609 inR.setIDStr( idS ); 2625 inR.setIDStr( idS );
2610 } 2626 }
2611 inR.setResource( 0 ); 2627 inR.setResource( 0 );
2612 remote->insertAddressee( inR , false); 2628 remote->insertAddressee( inR , false);
2613 ++changedRemote; 2629 ++changedRemote;
2614 } else { // take == 2 take remote 2630 } else { // take == 2 take remote
2615 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2631 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2616 if ( inR.revision().date().year() < 2004 ) 2632 if ( inR.revision().date().year() < 2004 )
2617 inR.setRevision( modifiedCalendar ); 2633 inR.setRevision( modifiedCalendar );
2618 } 2634 }
2619 idS = inL.IDStr(); 2635 idS = inL.IDStr();
2620 local->removeAddressee( inL ); 2636 local->removeAddressee( inL );
2621 inL = inR; 2637 inL = inR;
2622 inL.setIDStr( idS ); 2638 inL.setIDStr( idS );
2623 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2639 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2624 inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) ); 2640 inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) );
2625 inL.setID( mCurrentSyncDevice, inR.getID(mCurrentSyncDevice) ); 2641 inL.setID( mCurrentSyncDevice, inR.getID(mCurrentSyncDevice) );
2626 } 2642 }
2627 inL.setResource( 0 ); 2643 inL.setResource( 0 );
2628 local->insertAddressee( inL , false ); 2644 local->insertAddressee( inL , false );
2629 ++changedLocal; 2645 ++changedLocal;
2630 } 2646 }
2631 } 2647 }
2632 } 2648 }
2633 } else { // no conflict 2649 } else { // no conflict
2634 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2650 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2635 QString des = addresseeLSync.note(); 2651 QString des = addresseeLSync.note();
2636 if ( des.find( inR.getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it 2652 if ( des.find( inR.getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it
2637 inR.setTempSyncStat( SYNC_TEMPSTATE_DELETE ); 2653 inR.setTempSyncStat( SYNC_TEMPSTATE_DELETE );
2638 remote->insertAddressee( inR, false ); 2654 remote->insertAddressee( inR, false );
2639 ++deletedAddresseeR; 2655 ++deletedAddresseeR;
2640 } else { 2656 } else {
2641 inR.setRevision( modifiedCalendar ); 2657 inR.setRevision( modifiedCalendar );
2642 remote->insertAddressee( inR, false ); 2658 remote->insertAddressee( inR, false );
2643 inL = inR; 2659 inL = inR;
2644 inL.setResource( 0 ); 2660 inL.setResource( 0 );
2645 local->insertAddressee( inL , false); 2661 local->insertAddressee( inL , false);
2646 ++addedAddressee; 2662 ++addedAddressee;
2647 } 2663 }
2648 } else { 2664 } else {
2649 if ( inR.revision() > mLastAddressbookSync || mode == 5 ) { 2665 if ( inR.revision() > mLastAddressbookSync || mode == 5 ) {
2650 inR.setRevision( modifiedCalendar ); 2666 inR.setRevision( modifiedCalendar );
2651 remote->insertAddressee( inR, false ); 2667 remote->insertAddressee( inR, false );
2652 inR.setResource( 0 ); 2668 inR.setResource( 0 );
2653 local->insertAddressee( inR, false ); 2669 local->insertAddressee( inR, false );
2654 ++addedAddressee; 2670 ++addedAddressee;
2655 } else { 2671 } else {
@@ -2852,65 +2868,68 @@ void KABCore::message( QString m )
2852 topLevelWidget()->setCaption( m ); 2868 topLevelWidget()->setCaption( m );
2853 mMessageTimer->start( 15000, true ); 2869 mMessageTimer->start( 15000, true );
2854} 2870}
2855bool KABCore::syncPhone() 2871bool KABCore::syncPhone()
2856{ 2872{
2857 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); 2873 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice();
2858 QString fileName = getPhoneFile(); 2874 QString fileName = getPhoneFile();
2859 if ( !PhoneAccess::readFromPhone( fileName) ) { 2875 if ( !PhoneAccess::readFromPhone( fileName) ) {
2860 message(i18n("Phone access failed!")); 2876 message(i18n("Phone access failed!"));
2861 return false; 2877 return false;
2862 } 2878 }
2863 AddressBook abLocal( fileName,"syncContact"); 2879 AddressBook abLocal( fileName,"syncContact");
2864 bool syncOK = false; 2880 bool syncOK = false;
2865 { 2881 {
2866 abLocal.importFromFile( fileName ); 2882 abLocal.importFromFile( fileName );
2867 qDebug("AB phone loaded ,sync device %s",mCurrentSyncDevice.latin1()); 2883 qDebug("AB phone loaded ,sync device %s",mCurrentSyncDevice.latin1());
2868 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 2884 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
2869 abLocal.preparePhoneSync( mCurrentSyncDevice, true ); 2885 abLocal.preparePhoneSync( mCurrentSyncDevice, true );
2870 abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true ); 2886 abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice, true );
2871 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs ); 2887 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs );
2872 if ( syncOK ) { 2888 if ( syncOK ) {
2873 if ( syncManager->mWriteBackFile ) { 2889 if ( syncManager->mWriteBackFile ) {
2874 abLocal.removeSyncAddressees( true ); 2890 abLocal.removeSyncAddressees( true );
2875 abLocal.saveABphone( fileName ); 2891 abLocal.saveABphone( fileName );
2876 abLocal.findNewExtIds( fileName, mCurrentSyncDevice ); 2892 abLocal.findNewExtIds( fileName, mCurrentSyncDevice );
2877 //abLocal.preparePhoneSync( mCurrentSyncDevice, false ); 2893 //abLocal.preparePhoneSync( mCurrentSyncDevice, false );
2878 abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ); 2894 abLocal.postExternSync( mAddressBook,mCurrentSyncDevice );
2879 } 2895 }
2880 } 2896 }
2881 setModified(); 2897 setModified();
2882 } 2898 }
2883 if ( syncOK ) 2899 if ( syncOK )
2884 mViewManager->refreshView(); 2900 mViewManager->refreshView();
2885 return syncOK; 2901 return syncOK;
2886} 2902}
2887void KABCore::getFile( bool success ) 2903void KABCore::getFile( bool success )
2888{ 2904{
2889 if ( ! success ) { 2905 if ( ! success ) {
2890 message( i18n("Error receiving file. Nothing changed!") ); 2906 message( i18n("Error receiving file. Nothing changed!") );
2891 return; 2907 return;
2892 } 2908 }
2893 int count = mAddressBook->importFromFile( sentSyncFile() , false, true ); 2909 int count = mAddressBook->importFromFile( sentSyncFile() , false, true );
2894 if ( count ) 2910 if ( count )
2895 setModified( true ); 2911 setModified( true );
2896 message( i18n("Pi-Sync successful!") ); 2912 message( i18n("Pi-Sync successful!") );
2897 mViewManager->refreshView(); 2913 mViewManager->refreshView();
2898} 2914}
2899void KABCore::syncFileRequest() 2915void KABCore::syncFileRequest()
2900{ 2916{
2917 if ( KABPrefs::instance()->mPassiveSyncWithDesktop ) {
2918 syncManager->slotSyncMenu( 999 );
2919 }
2901 mAddressBook->export2File( sentSyncFile() ); 2920 mAddressBook->export2File( sentSyncFile() );
2902} 2921}
2903QString KABCore::sentSyncFile() 2922QString KABCore::sentSyncFile()
2904{ 2923{
2905#ifdef DESKTOP_VERSION 2924#ifdef DESKTOP_VERSION
2906 return locateLocal( "tmp", "copysyncab.vcf" ); 2925 return locateLocal( "tmp", "copysyncab.vcf" );
2907#else 2926#else
2908 return QString( "/tmp/copysyncab.vcf" ); 2927 return QString( "/tmp/copysyncab.vcf" );
2909#endif 2928#endif
2910} 2929}
2911 2930
2912void KABCore::setCaptionBack() 2931void KABCore::setCaptionBack()
2913{ 2932{
2914 mMessageTimer->stop(); 2933 mMessageTimer->stop();
2915 topLevelWidget()->setCaption( i18n("KAddressbook/Pi") ); 2934 topLevelWidget()->setCaption( i18n("KAddressbook/Pi") );
2916} 2935}
diff --git a/kaddressbook/viewmanager.cpp b/kaddressbook/viewmanager.cpp
index f4fb08b..81e0d99 100644
--- a/kaddressbook/viewmanager.cpp
+++ b/kaddressbook/viewmanager.cpp
@@ -255,96 +255,101 @@ void ViewManager::setActiveView( const QString &name )
255 // If we found or created the view, raise it and refresh it 255 // If we found or created the view, raise it and refresh it
256 if ( view ) { 256 if ( view ) {
257 mActiveView = view; 257 mActiveView = view;
258 mViewWidgetStack->raiseWidget( view ); 258 mViewWidgetStack->raiseWidget( view );
259 // Set the proper filter in the view. By setting the combo 259 // Set the proper filter in the view. By setting the combo
260 // box, the activated slot will be called, which will push 260 // box, the activated slot will be called, which will push
261 // the filter to the view and refresh it. 261 // the filter to the view and refresh it.
262 262
263 if ( view->defaultFilterType() == KAddressBookView::None ) { 263 if ( view->defaultFilterType() == KAddressBookView::None ) {
264 264
265 mActionSelectFilter->setCurrentItem( 0 ); 265 mActionSelectFilter->setCurrentItem( 0 );
266 setActiveFilter( 0 ); 266 setActiveFilter( 0 );
267 } else if ( view->defaultFilterType() == KAddressBookView::Active ) { 267 } else if ( view->defaultFilterType() == KAddressBookView::Active ) {
268 setActiveFilter( mActionSelectFilter->currentItem() ); 268 setActiveFilter( mActionSelectFilter->currentItem() );
269 } else { 269 } else {
270 uint pos = filterPosition( view->defaultFilterName() ); 270 uint pos = filterPosition( view->defaultFilterName() );
271 mActionSelectFilter->setCurrentItem( pos ); 271 mActionSelectFilter->setCurrentItem( pos );
272 setActiveFilter( pos ); 272 setActiveFilter( pos );
273 } 273 }
274//US qDebug("ViewManager::setActiveView 6" ); 274//US qDebug("ViewManager::setActiveView 6" );
275 275
276 // Update the inc search widget to show the fields in the new active 276 // Update the inc search widget to show the fields in the new active
277 // view. 277 // view.
278 mCore->setSearchFields( mActiveView->fields() ); 278 mCore->setSearchFields( mActiveView->fields() );
279 279
280//US performance optimization. setActiveFilter calls also mActiveView->refresh() 280//US performance optimization. setActiveFilter calls also mActiveView->refresh()
281//US mActiveView->refresh(); 281//US mActiveView->refresh();
282 282
283 } 283 }
284 else 284 else
285 { 285 {
286 qDebug("ViewManager::setActiveView: unable to find view" ); 286 qDebug("ViewManager::setActiveView: unable to find view" );
287 kdDebug(5720) << "ViewManager::setActiveView: unable to find view\n"; 287 kdDebug(5720) << "ViewManager::setActiveView: unable to find view\n";
288 } 288 }
289} 289}
290 290
291//US added another method with no parameter, since my moc compiler does not support default parameters. 291//US added another method with no parameter, since my moc compiler does not support default parameters.
292void ViewManager::refreshView() 292void ViewManager::refreshView()
293{ 293{
294 refreshView( QString::null ); 294 refreshView( QString::null );
295} 295}
296 296
297void ViewManager::refreshView( const QString &uid ) 297void ViewManager::refreshView( const QString &uid )
298{ 298{
299 if ( mActiveView ) 299 if ( mActiveView )
300 mActiveView->refresh( uid ); 300 mActiveView->refresh( uid );
301} 301}
302 302
303void ViewManager::setFocusAV()
304{
305 if ( mActiveView )
306 mActiveView->setFocus();
307}
303void ViewManager::editView() 308void ViewManager::editView()
304{ 309{
305 if ( !mActiveView ) 310 if ( !mActiveView )
306 return; 311 return;
307 312
308 ViewFactory *factory = mViewFactoryDict.find( mActiveView->type() ); 313 ViewFactory *factory = mViewFactoryDict.find( mActiveView->type() );
309 ViewConfigureWidget *wdg = 0; 314 ViewConfigureWidget *wdg = 0;
310 ViewConfigureDialog* dlg = 0; 315 ViewConfigureDialog* dlg = 0;
311 if ( factory ) { 316 if ( factory ) {
312 // Save the filters so the dialog has the latest set 317 // Save the filters so the dialog has the latest set
313 Filter::save( mCore->config(), "Filter", mFilterList ); 318 Filter::save( mCore->config(), "Filter", mFilterList );
314 dlg = new ViewConfigureDialog( 0, mActiveView->caption(), this, "conf_dlg" ); 319 dlg = new ViewConfigureDialog( 0, mActiveView->caption(), this, "conf_dlg" );
315 wdg = factory->configureWidget( mCore->addressBook(), dlg,"conf_wid" ); 320 wdg = factory->configureWidget( mCore->addressBook(), dlg,"conf_wid" );
316 } else { 321 } else {
317 qDebug("ViewManager::editView()::cannot find viewfactory "); 322 qDebug("ViewManager::editView()::cannot find viewfactory ");
318 return; 323 return;
319 } 324 }
320 if ( wdg ) { 325 if ( wdg ) {
321 dlg->setWidget( wdg ); 326 dlg->setWidget( wdg );
322 327
323#ifndef DESKTOP_VERSION 328#ifndef DESKTOP_VERSION
324 //dlg.setMaximumSize( 640, 480 ); 329 //dlg.setMaximumSize( 640, 480 );
325 //dlg->setGeometry( 40,40, 400, 300); 330 //dlg->setGeometry( 40,40, 400, 300);
326 dlg->showMaximized(); 331 dlg->showMaximized();
327#endif 332#endif
328 333
329 KConfigGroupSaver saver( mCore->config(), mActiveView->caption() ); 334 KConfigGroupSaver saver( mCore->config(), mActiveView->caption() );
330 335
331 dlg->restoreSettings( mCore->config() ); 336 dlg->restoreSettings( mCore->config() );
332 337
333 if ( dlg->exec() ) { 338 if ( dlg->exec() ) {
334 dlg->saveSettings( mCore->config() ); 339 dlg->saveSettings( mCore->config() );
335 mActiveView->readConfig( mCore->config() ); 340 mActiveView->readConfig( mCore->config() );
336 341
337 // Set the proper filter in the view. By setting the combo 342 // Set the proper filter in the view. By setting the combo
338 // box, the activated slot will be called, which will push 343 // box, the activated slot will be called, which will push
339 // the filter to the view and refresh it. 344 // the filter to the view and refresh it.
340 if ( mActiveView->defaultFilterType() == KAddressBookView::None ) { 345 if ( mActiveView->defaultFilterType() == KAddressBookView::None ) {
341 mActionSelectFilter->setCurrentItem( 0 ); 346 mActionSelectFilter->setCurrentItem( 0 );
342 setActiveFilter( 0 ); 347 setActiveFilter( 0 );
343 } else if ( mActiveView->defaultFilterType() == KAddressBookView::Active ) { 348 } else if ( mActiveView->defaultFilterType() == KAddressBookView::Active ) {
344 setActiveFilter( mActionSelectFilter->currentItem() ); 349 setActiveFilter( mActionSelectFilter->currentItem() );
345 } else { 350 } else {
346 uint pos = filterPosition( mActiveView->defaultFilterName() ); 351 uint pos = filterPosition( mActiveView->defaultFilterName() );
347 mActionSelectFilter->setCurrentItem( pos ); 352 mActionSelectFilter->setCurrentItem( pos );
348 setActiveFilter( pos ); 353 setActiveFilter( pos );
349 } 354 }
350 mCore->setSearchFields( mActiveView->fields() ); 355 mCore->setSearchFields( mActiveView->fields() );
diff --git a/kaddressbook/viewmanager.h b/kaddressbook/viewmanager.h
index 585f4e9..a03a83f 100644
--- a/kaddressbook/viewmanager.h
+++ b/kaddressbook/viewmanager.h
@@ -19,96 +19,97 @@
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 VIEWMANAGER_H 24#ifndef VIEWMANAGER_H
25#define VIEWMANAGER_H 25#define VIEWMANAGER_H
26 26
27#include <qwidget.h> 27#include <qwidget.h>
28#include <qstringlist.h> 28#include <qstringlist.h>
29#include <kaddressbookview.h> 29#include <kaddressbookview.h>
30#include <qdict.h> 30#include <qdict.h>
31 31
32class KAction; 32class KAction;
33class KSelectAction; 33class KSelectAction;
34 34
35class KABCore; 35class KABCore;
36class QWidgetStack; 36class QWidgetStack;
37class QDropEvent; 37class QDropEvent;
38 38
39namespace KABC { class AddressBook; } 39namespace KABC { class AddressBook; }
40 40
41/** 41/**
42 The view manager manages the views and everything related to them. The 42 The view manager manages the views and everything related to them. The
43 manager will load the views at startup and display a view when told to 43 manager will load the views at startup and display a view when told to
44 make one active. 44 make one active.
45 45
46 The view manager will also create and manage all dialogs directly related to 46 The view manager will also create and manage all dialogs directly related to
47 views (ie: AddView, ConfigureView, DeleteView, etc). 47 views (ie: AddView, ConfigureView, DeleteView, etc).
48 */ 48 */
49class ViewManager : public QWidget 49class ViewManager : public QWidget
50{ 50{
51 Q_OBJECT 51 Q_OBJECT
52 public: 52 public:
53 ViewManager( KABCore *core, QWidget *parent, const char *name = 0 ); 53 ViewManager( KABCore *core, QWidget *parent, const char *name = 0 );
54 ~ViewManager(); 54 ~ViewManager();
55 55
56 void restoreSettings(); 56 void restoreSettings();
57 void saveSettings(); 57 void saveSettings();
58 void doSearch( const QString& s ,KABC::Field *field ); 58 void doSearch( const QString& s ,KABC::Field *field );
59 59
60 void unloadViews(); 60 void unloadViews();
61 KSelectAction * getFilterAction() { return mActionSelectFilter; } 61 KSelectAction * getFilterAction() { return mActionSelectFilter; }
62 62
63 QStringList selectedUids() const; 63 QStringList selectedUids() const;
64 QStringList selectedEmails() const; 64 QStringList selectedEmails() const;
65 KABC::Addressee::List selectedAddressees() const; 65 KABC::Addressee::List selectedAddressees() const;
66 void setListSelected(QStringList); 66 void setListSelected(QStringList);
67 void setFocusAV();
67 68
68 public slots: 69 public slots:
69 void scrollUP(); 70 void scrollUP();
70 void scrollDOWN(); 71 void scrollDOWN();
71 72
72//US void setSelected( const QString &uid = QString::null, bool selected = true ); 73//US void setSelected( const QString &uid = QString::null, bool selected = true );
73 void setSelected( const QString &uid, bool); 74 void setSelected( const QString &uid, bool);
74//US added another method with no parameter, since my moc compiler does not support default parameters. 75//US added another method with no parameter, since my moc compiler does not support default parameters.
75 void setSelected(); 76 void setSelected();
76 77
77 78
78 79
79//US added another method with no parameter, since my moc compiler does not support default parameters. 80//US added another method with no parameter, since my moc compiler does not support default parameters.
80 void refreshView(); 81 void refreshView();
81 void refreshView( const QString &uid); 82 void refreshView( const QString &uid);
82 83
83 void editView(); 84 void editView();
84 void deleteView(); 85 void deleteView();
85 void addView(); 86 void addView();
86 87
87 protected slots: 88 protected slots:
88 /** 89 /**
89 Called whenever the user drops something in the active view. 90 Called whenever the user drops something in the active view.
90 This method will try to decode what was dropped, and if it was 91 This method will try to decode what was dropped, and if it was
91 a valid addressee, add it to the addressbook. 92 a valid addressee, add it to the addressbook.
92 */ 93 */
93 void dropped( QDropEvent* ); 94 void dropped( QDropEvent* );
94 95
95 /** 96 /**
96 Called whenever the user attempts to start a drag in the view. 97 Called whenever the user attempts to start a drag in the view.
97 This method will convert all the selected addressees into text (vcard) 98 This method will convert all the selected addressees into text (vcard)
98 and create a drag object. 99 and create a drag object.
99 */ 100 */
100 void startDrag(); 101 void startDrag();
101 102
102 signals: 103 signals:
103 /** 104 /**
104 Emitted whenever the user selects an entry in the view. 105 Emitted whenever the user selects an entry in the view.
105 */ 106 */
106 void selected( const QString &uid ); 107 void selected( const QString &uid );
107 void deleteRequest( ); 108 void deleteRequest( );
108 109
109 /** 110 /**
110 Emitted whenever the user activates an entry in the view. 111 Emitted whenever the user activates an entry in the view.
111 */ 112 */
112 void executed( const QString &uid ); 113 void executed( const QString &uid );
113 114
114 /** 115 /**