summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-03-29 14:22:53 (UTC)
committer zautrix <zautrix>2005-03-29 14:22:53 (UTC)
commitc873163eca527625ce22ed461ee5d4fec61b3b18 (patch) (unidiff)
tree5d9724d4d1dd26794faae7b102c649eb8375ad36
parent7046b36fb5dd14598ece00b575554eba2956ef84 (diff)
downloadkdepimpi-c873163eca527625ce22ed461ee5d4fec61b3b18.zip
kdepimpi-c873163eca527625ce22ed461ee5d4fec61b3b18.tar.gz
kdepimpi-c873163eca527625ce22ed461ee5d4fec61b3b18.tar.bz2
fix
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 09d8523..db19dd5 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -2127,769 +2127,781 @@ void KABCore::addActionsManually()
2127 if ( KABPrefs::instance()->mFullMenuBarVisible ) { 2127 if ( KABPrefs::instance()->mFullMenuBarVisible ) {
2128#endif 2128#endif
2129 QMenuBar* mb = mMainWindow->menuBar(); 2129 QMenuBar* mb = mMainWindow->menuBar();
2130 2130
2131 //US setup menubar. 2131 //US setup menubar.
2132 //Disable the following block if you do not want to have a menubar. 2132 //Disable the following block if you do not want to have a menubar.
2133 mb->insertItem( i18n("&File"), fileMenu ); 2133 mb->insertItem( i18n("&File"), fileMenu );
2134 mb->insertItem( i18n("&Edit"), editMenu ); 2134 mb->insertItem( i18n("&Edit"), editMenu );
2135 mb->insertItem( i18n("&View"), viewMenu ); 2135 mb->insertItem( i18n("&View"), viewMenu );
2136 mb->insertItem( i18n("&Settings"), settingsMenu ); 2136 mb->insertItem( i18n("&Settings"), settingsMenu );
2137#ifdef DESKTOP_VERSION 2137#ifdef DESKTOP_VERSION
2138 mb->insertItem( i18n("Synchronize"), syncMenu ); 2138 mb->insertItem( i18n("Synchronize"), syncMenu );
2139#else 2139#else
2140 mb->insertItem( i18n("Sync"), syncMenu ); 2140 mb->insertItem( i18n("Sync"), syncMenu );
2141#endif 2141#endif
2142 //mb->insertItem( i18n("&Change"), changeMenu ); 2142 //mb->insertItem( i18n("&Change"), changeMenu );
2143 mb->insertItem( i18n("&Help"), helpMenu ); 2143 mb->insertItem( i18n("&Help"), helpMenu );
2144 mIncSearchWidget = new IncSearchWidget( tb ); 2144 mIncSearchWidget = new IncSearchWidget( tb );
2145 // tb->insertWidget(-1, 0, mIncSearchWidget); 2145 // tb->insertWidget(-1, 0, mIncSearchWidget);
2146#ifndef DESKTOP_VERSION 2146#ifndef DESKTOP_VERSION
2147 } else { 2147 } else {
2148 //US setup toolbar 2148 //US setup toolbar
2149 QPEMenuBar *menuBarTB = new QPEMenuBar( tb ); 2149 QPEMenuBar *menuBarTB = new QPEMenuBar( tb );
2150 QPopupMenu *popupBarTB = new QPopupMenu( this ); 2150 QPopupMenu *popupBarTB = new QPopupMenu( this );
2151 menuBarTB->insertItem( SmallIcon( "z_menu" ) , popupBarTB); 2151 menuBarTB->insertItem( SmallIcon( "z_menu" ) , popupBarTB);
2152 tb->insertWidget(-1, 0, menuBarTB); 2152 tb->insertWidget(-1, 0, menuBarTB);
2153 mIncSearchWidget = new IncSearchWidget( tb ); 2153 mIncSearchWidget = new IncSearchWidget( tb );
2154 tb->enableMoving(false); 2154 tb->enableMoving(false);
2155 popupBarTB->insertItem( i18n("&File"), fileMenu ); 2155 popupBarTB->insertItem( i18n("&File"), fileMenu );
2156 popupBarTB->insertItem( i18n("&Edit"), editMenu ); 2156 popupBarTB->insertItem( i18n("&Edit"), editMenu );
2157 popupBarTB->insertItem( i18n("&View"), viewMenu ); 2157 popupBarTB->insertItem( i18n("&View"), viewMenu );
2158 popupBarTB->insertItem( i18n("&Settings"), settingsMenu ); 2158 popupBarTB->insertItem( i18n("&Settings"), settingsMenu );
2159 popupBarTB->insertItem( i18n("Synchronize"), syncMenu ); 2159 popupBarTB->insertItem( i18n("Synchronize"), syncMenu );
2160 mViewManager->getFilterAction()->plug ( popupBarTB); 2160 mViewManager->getFilterAction()->plug ( popupBarTB);
2161 //popupBarTB->insertItem( i18n("&Change selected"), changeMenu ); 2161 //popupBarTB->insertItem( i18n("&Change selected"), changeMenu );
2162 popupBarTB->insertItem( i18n("&Help"), helpMenu ); 2162 popupBarTB->insertItem( i18n("&Help"), helpMenu );
2163 if (QApplication::desktop()->width() > 320 ) { 2163 if (QApplication::desktop()->width() > 320 ) {
2164 // mViewManager->getFilterAction()->plug ( tb); 2164 // mViewManager->getFilterAction()->plug ( tb);
2165 } 2165 }
2166 } 2166 }
2167#endif 2167#endif
2168 // mActionQuit->plug ( mMainWindow->toolBar()); 2168 // mActionQuit->plug ( mMainWindow->toolBar());
2169 2169
2170 2170
2171 2171
2172 //US Now connect the actions with the menue entries. 2172 //US Now connect the actions with the menue entries.
2173#ifdef DESKTOP_VERSION 2173#ifdef DESKTOP_VERSION
2174 mActionPrint->plug( fileMenu ); 2174 mActionPrint->plug( fileMenu );
2175 mActionPrintDetails->plug( fileMenu ); 2175 mActionPrintDetails->plug( fileMenu );
2176 fileMenu->insertSeparator(); 2176 fileMenu->insertSeparator();
2177#endif 2177#endif
2178 mActionMail->plug( fileMenu ); 2178 mActionMail->plug( fileMenu );
2179 fileMenu->insertSeparator(); 2179 fileMenu->insertSeparator();
2180 2180
2181 mActionNewContact->plug( fileMenu ); 2181 mActionNewContact->plug( fileMenu );
2182 mActionNewContact->plug( tb ); 2182 mActionNewContact->plug( tb );
2183 2183
2184 mActionEditAddressee->plug( fileMenu ); 2184 mActionEditAddressee->plug( fileMenu );
2185 // if ((KGlobal::getDesktopSize() > KGlobal::Small ) || 2185 // if ((KGlobal::getDesktopSize() > KGlobal::Small ) ||
2186 // (!KABPrefs::instance()->mMultipleViewsAtOnce )) 2186 // (!KABPrefs::instance()->mMultipleViewsAtOnce ))
2187 mActionEditAddressee->plug( tb ); 2187 mActionEditAddressee->plug( tb );
2188 2188
2189 fileMenu->insertSeparator(); 2189 fileMenu->insertSeparator();
2190 mActionSave->plug( fileMenu ); 2190 mActionSave->plug( fileMenu );
2191 fileMenu->insertItem( "&Import", ImportMenu ); 2191 fileMenu->insertItem( "&Import", ImportMenu );
2192 fileMenu->insertItem( "&Export", ExportMenu ); 2192 fileMenu->insertItem( "&Export", ExportMenu );
2193 fileMenu->insertItem( i18n("&Change"), changeMenu ); 2193 fileMenu->insertItem( i18n("&Change"), changeMenu );
2194#ifndef DESKTOP_VERSION 2194#ifndef DESKTOP_VERSION
2195 if ( Ir::supported() ) fileMenu->insertItem( i18n("&Beam"), beamMenu ); 2195 if ( Ir::supported() ) fileMenu->insertItem( i18n("&Beam"), beamMenu );
2196#endif 2196#endif
2197#if 0 2197#if 0
2198 // PENDING fix MailVCard 2198 // PENDING fix MailVCard
2199 fileMenu->insertSeparator(); 2199 fileMenu->insertSeparator();
2200 mActionMailVCard->plug( fileMenu ); 2200 mActionMailVCard->plug( fileMenu );
2201#endif 2201#endif
2202#ifndef DESKTOP_VERSION 2202#ifndef DESKTOP_VERSION
2203 if ( Ir::supported() ) mActionBR->plug( beamMenu ); 2203 if ( Ir::supported() ) mActionBR->plug( beamMenu );
2204 if ( Ir::supported() ) mActionBeamVCard->plug( beamMenu ); 2204 if ( Ir::supported() ) mActionBeamVCard->plug( beamMenu );
2205 if ( Ir::supported() ) mActionBeam->plug( beamMenu ); 2205 if ( Ir::supported() ) mActionBeam->plug( beamMenu );
2206#endif 2206#endif
2207 fileMenu->insertSeparator(); 2207 fileMenu->insertSeparator();
2208 mActionQuit->plug( fileMenu ); 2208 mActionQuit->plug( fileMenu );
2209#ifdef _OL_IMPORT_ 2209#ifdef _OL_IMPORT_
2210 mActionImportOL->plug( ImportMenu ); 2210 mActionImportOL->plug( ImportMenu );
2211#endif 2211#endif
2212 // edit menu 2212 // edit menu
2213 mActionUndo->plug( editMenu ); 2213 mActionUndo->plug( editMenu );
2214 mActionRedo->plug( editMenu ); 2214 mActionRedo->plug( editMenu );
2215 editMenu->insertSeparator(); 2215 editMenu->insertSeparator();
2216 mActionCut->plug( editMenu ); 2216 mActionCut->plug( editMenu );
2217 mActionCopy->plug( editMenu ); 2217 mActionCopy->plug( editMenu );
2218 mActionPaste->plug( editMenu ); 2218 mActionPaste->plug( editMenu );
2219 mActionDelete->plug( editMenu ); 2219 mActionDelete->plug( editMenu );
2220 editMenu->insertSeparator(); 2220 editMenu->insertSeparator();
2221 mActionSelectAll->plug( editMenu ); 2221 mActionSelectAll->plug( editMenu );
2222 2222
2223 mActionSetFormattedName->plug( changeMenu ); 2223 mActionSetFormattedName->plug( changeMenu );
2224 mActionRemoveVoice->plug( changeMenu ); 2224 mActionRemoveVoice->plug( changeMenu );
2225 // settingsmings menu 2225 // settingsmings menu
2226//US special menuentry to configure the addressbook resources. On KDE 2226//US special menuentry to configure the addressbook resources. On KDE
2227// you do that through the control center !!! 2227// you do that through the control center !!!
2228 // settingsMenu->insertSeparator(); 2228 // settingsMenu->insertSeparator();
2229 2229
2230 mActionConfigKAddressbook->plug( settingsMenu, 0 ); 2230 mActionConfigKAddressbook->plug( settingsMenu, 0 );
2231 mActionConfigResources->plug( settingsMenu,1 ); 2231 mActionConfigResources->plug( settingsMenu,1 );
2232 settingsMenu->insertSeparator(2); 2232 settingsMenu->insertSeparator(2);
2233 2233
2234 if ( mIsPart ) { 2234 if ( mIsPart ) {
2235 //US not implemented yet 2235 //US not implemented yet
2236 //mActionConfigShortcuts->plug( settingsMenu ); 2236 //mActionConfigShortcuts->plug( settingsMenu );
2237 //mActionConfigureToolbars->plug( settingsMenu ); 2237 //mActionConfigureToolbars->plug( settingsMenu );
2238 2238
2239 } else { 2239 } else {
2240 //US not implemented yet 2240 //US not implemented yet
2241 //mActionKeyBindings->plug( settingsMenu ); 2241 //mActionKeyBindings->plug( settingsMenu );
2242 } 2242 }
2243 2243
2244 settingsMenu->insertSeparator(); 2244 settingsMenu->insertSeparator();
2245 2245
2246 mActionJumpBar->plug( settingsMenu ); 2246 mActionJumpBar->plug( settingsMenu );
2247 mActionDetails->plug( settingsMenu ); 2247 mActionDetails->plug( settingsMenu );
2248 //if (!KABPrefs::instance()->mMultipleViewsAtOnce || KGlobal::getDesktopSize() == KGlobal::Desktop ) 2248 //if (!KABPrefs::instance()->mMultipleViewsAtOnce || KGlobal::getDesktopSize() == KGlobal::Desktop )
2249 mActionDetails->plug( tb ); 2249 mActionDetails->plug( tb );
2250 settingsMenu->insertSeparator(); 2250 settingsMenu->insertSeparator();
2251#ifndef DESKTOP_VERSION 2251#ifndef DESKTOP_VERSION
2252 if ( Ir::supported() ) mActionBR->plug(settingsMenu ); 2252 if ( Ir::supported() ) mActionBR->plug(settingsMenu );
2253 settingsMenu->insertSeparator(); 2253 settingsMenu->insertSeparator();
2254#endif 2254#endif
2255 2255
2256 mActionWhoAmI->plug( settingsMenu ); 2256 mActionWhoAmI->plug( settingsMenu );
2257 mActionEditCategories->plug( settingsMenu ); 2257 mActionEditCategories->plug( settingsMenu );
2258 mActionEditCategories->plug( changeMenu ); 2258 mActionEditCategories->plug( changeMenu );
2259 mActionCategories->plug( changeMenu ); 2259 mActionCategories->plug( changeMenu );
2260 mActionManageCategories->plug( changeMenu ); 2260 mActionManageCategories->plug( changeMenu );
2261 2261
2262 mActionCategories->plug( settingsMenu ); 2262 mActionCategories->plug( settingsMenu );
2263 mActionManageCategories->plug( settingsMenu ); 2263 mActionManageCategories->plug( settingsMenu );
2264 2264
2265 2265
2266 mActionWN->plug( helpMenu ); 2266 mActionWN->plug( helpMenu );
2267 mActionSyncHowto->plug( helpMenu ); 2267 mActionSyncHowto->plug( helpMenu );
2268 mActionKdeSyncHowto->plug( helpMenu ); 2268 mActionKdeSyncHowto->plug( helpMenu );
2269 mActionMultiSyncHowto->plug( helpMenu ); 2269 mActionMultiSyncHowto->plug( helpMenu );
2270 mActionFaq->plug( helpMenu ); 2270 mActionFaq->plug( helpMenu );
2271 mActionLicence->plug( helpMenu ); 2271 mActionLicence->plug( helpMenu );
2272 mActionAboutKAddressbook->plug( helpMenu ); 2272 mActionAboutKAddressbook->plug( helpMenu );
2273 2273
2274 if (KGlobal::getDesktopSize() > KGlobal::Small ) { 2274 if (KGlobal::getDesktopSize() > KGlobal::Small ) {
2275 2275
2276 mActionSave->plug( tb ); 2276 mActionSave->plug( tb );
2277 mViewManager->getFilterAction()->plug ( tb); 2277 mViewManager->getFilterAction()->plug ( tb);
2278 //LR hide filteraction on started in 480x640 2278 //LR hide filteraction on started in 480x640
2279 if (QApplication::desktop()->width() == 480 ) { 2279 if (QApplication::desktop()->width() == 480 ) {
2280 mViewManager->getFilterAction()->setComboWidth( 0 ); 2280 mViewManager->getFilterAction()->setComboWidth( 0 );
2281 } 2281 }
2282 mActionUndo->plug( tb ); 2282 mActionUndo->plug( tb );
2283 mActionDelete->plug( tb ); 2283 mActionDelete->plug( tb );
2284 mActionRedo->plug( tb ); 2284 mActionRedo->plug( tb );
2285 } else { 2285 } else {
2286 mActionSave->plug( tb ); 2286 mActionSave->plug( tb );
2287 tb->enableMoving(false); 2287 tb->enableMoving(false);
2288 } 2288 }
2289 //mActionQuit->plug ( tb ); 2289 //mActionQuit->plug ( tb );
2290 // tb->insertWidget(-1, 0, mIncSearchWidget, 6); 2290 // tb->insertWidget(-1, 0, mIncSearchWidget, 6);
2291 2291
2292 //US link the searchwidget first to this. 2292 //US link the searchwidget first to this.
2293 // The real linkage to the toolbar happens later. 2293 // The real linkage to the toolbar happens later.
2294//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE); 2294//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE);
2295//US tb->insertItem( mIncSearchWidget ); 2295//US tb->insertItem( mIncSearchWidget );
2296/*US 2296/*US
2297 mIncSearchWidget = new IncSearchWidget( tb ); 2297 mIncSearchWidget = new IncSearchWidget( tb );
2298 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 2298 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
2299 SLOT( incrementalSearch( const QString& ) ) ); 2299 SLOT( incrementalSearch( const QString& ) ) );
2300 2300
2301 mJumpButtonBar = new JumpButtonBar( this, this ); 2301 mJumpButtonBar = new JumpButtonBar( this, this );
2302 2302
2303//US topLayout->addWidget( mJumpButtonBar ); 2303//US topLayout->addWidget( mJumpButtonBar );
2304 this->layout()->add( mJumpButtonBar ); 2304 this->layout()->add( mJumpButtonBar );
2305*/ 2305*/
2306 2306
2307#endif //KAB_EMBEDDED 2307#endif //KAB_EMBEDDED
2308 2308
2309 mActionExport2phone->plug( ExportMenu ); 2309 mActionExport2phone->plug( ExportMenu );
2310 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) ); 2310 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) );
2311 syncManager->fillSyncMenu(); 2311 syncManager->fillSyncMenu();
2312 2312
2313} 2313}
2314void KABCore::showLicence() 2314void KABCore::showLicence()
2315{ 2315{
2316 KApplication::showLicence(); 2316 KApplication::showLicence();
2317} 2317}
2318 2318
2319void KABCore::manageCategories( ) 2319void KABCore::manageCategories( )
2320{ 2320{
2321 KABCatPrefs* cp = new KABCatPrefs(); 2321 KABCatPrefs* cp = new KABCatPrefs();
2322 cp->show(); 2322 cp->show();
2323 int w =cp->sizeHint().width() ; 2323 int w =cp->sizeHint().width() ;
2324 int h = cp->sizeHint().height() ; 2324 int h = cp->sizeHint().height() ;
2325 int dw = QApplication::desktop()->width(); 2325 int dw = QApplication::desktop()->width();
2326 int dh = QApplication::desktop()->height(); 2326 int dh = QApplication::desktop()->height();
2327 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2327 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2328 if ( !cp->exec() ) { 2328 if ( !cp->exec() ) {
2329 delete cp; 2329 delete cp;
2330 return; 2330 return;
2331 } 2331 }
2332 int count = 0; 2332 int count = 0;
2333 int cc = 0; 2333 int cc = 0;
2334 message( i18n("Please wait, processing categories...")); 2334 message( i18n("Please wait, processing categories..."));
2335 if ( cp->addCat() ) { 2335 if ( cp->addCat() ) {
2336 KABC::AddressBook::Iterator it; 2336 KABC::AddressBook::Iterator it;
2337 QStringList catList = KABPrefs::instance()->mCustomCategories; 2337 QStringList catList = KABPrefs::instance()->mCustomCategories;
2338 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2338 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2339 ++cc; 2339 ++cc;
2340 if ( cc %10 == 0) 2340 if ( cc %10 == 0)
2341 message(i18n("Processing contact #%1").arg(cc)); 2341 message(i18n("Processing contact #%1").arg(cc));
2342 QStringList catIncList = (*it).categories(); 2342 QStringList catIncList = (*it).categories();
2343 int i; 2343 int i;
2344 for( i = 0; i< catIncList.count(); ++i ) { 2344 for( i = 0; i< catIncList.count(); ++i ) {
2345 if ( !catList.contains (catIncList[i])) { 2345 if ( !catList.contains (catIncList[i])) {
2346 catList.append( catIncList[i] ); 2346 catList.append( catIncList[i] );
2347 //qDebug("add cat %s ", catIncList[i].latin1()); 2347 //qDebug("add cat %s ", catIncList[i].latin1());
2348 ++count; 2348 ++count;
2349 } 2349 }
2350 } 2350 }
2351 } 2351 }
2352 catList.sort(); 2352 catList.sort();
2353 KABPrefs::instance()->mCustomCategories = catList; 2353 KABPrefs::instance()->mCustomCategories = catList;
2354 KABPrefs::instance()->writeConfig(); 2354 KABPrefs::instance()->writeConfig();
2355 message(QString::number( count )+ i18n(" categories added to list! ")); 2355 message(QString::number( count )+ i18n(" categories added to list! "));
2356 } else { 2356 } else {
2357 QStringList catList = KABPrefs::instance()->mCustomCategories; 2357 QStringList catList = KABPrefs::instance()->mCustomCategories;
2358 QStringList catIncList; 2358 QStringList catIncList;
2359 QStringList newCatList; 2359 QStringList newCatList;
2360 KABC::AddressBook::Iterator it; 2360 KABC::AddressBook::Iterator it;
2361 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2361 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2362 ++cc; 2362 ++cc;
2363 if ( cc %10 == 0) 2363 if ( cc %10 == 0)
2364 message(i18n("Processing contact #%1").arg(cc)); 2364 message(i18n("Processing contact #%1").arg(cc));
2365 QStringList catIncList = (*it).categories(); 2365 QStringList catIncList = (*it).categories();
2366 int i; 2366 int i;
2367 if ( catIncList.count() ) { 2367 if ( catIncList.count() ) {
2368 newCatList.clear(); 2368 newCatList.clear();
2369 for( i = 0; i< catIncList.count(); ++i ) { 2369 for( i = 0; i< catIncList.count(); ++i ) {
2370 if ( catList.contains (catIncList[i])) { 2370 if ( catList.contains (catIncList[i])) {
2371 newCatList.append( catIncList[i] ); 2371 newCatList.append( catIncList[i] );
2372 } 2372 }
2373 } 2373 }
2374 newCatList.sort(); 2374 newCatList.sort();
2375 (*it).setCategories( newCatList ); 2375 (*it).setCategories( newCatList );
2376 mAddressBook->insertAddressee( (*it) ); 2376 mAddressBook->insertAddressee( (*it) );
2377 } 2377 }
2378 } 2378 }
2379 setModified( true ); 2379 setModified( true );
2380 mViewManager->refreshView(); 2380 mViewManager->refreshView();
2381 message( i18n("Removing categories done!")); 2381 message( i18n("Removing categories done!"));
2382 } 2382 }
2383 delete cp; 2383 delete cp;
2384} 2384}
2385void KABCore::removeVoice() 2385void KABCore::removeVoice()
2386{ 2386{
2387 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 ) 2387 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 )
2388 return; 2388 return;
2389 XXPortSelectDialog dlg( this, false, this ); 2389 XXPortSelectDialog dlg( this, false, this );
2390 if ( !dlg.exec() ) 2390 if ( !dlg.exec() )
2391 return; 2391 return;
2392 mAddressBook->setUntagged(); 2392 mAddressBook->setUntagged();
2393 dlg.tagSelected(); 2393 dlg.tagSelected();
2394 message(i18n("Removing voice..."), false ); 2394 message(i18n("Removing voice..."), false );
2395 KABC::AddressBook::Iterator it; 2395 KABC::AddressBook::Iterator it;
2396 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2396 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2397 if ( (*it).tagged() ) { 2397 if ( (*it).tagged() ) {
2398 (*it).removeVoice(); 2398 (*it).removeVoice();
2399 } 2399 }
2400 } 2400 }
2401 message(i18n("Refreshing view...") ); 2401 message(i18n("Refreshing view...") );
2402 qApp->processEvents(); 2402 qApp->processEvents();
2403 mViewManager->refreshView( "" ); 2403 mViewManager->refreshView( "" );
2404 Addressee add; 2404 Addressee add;
2405 mDetails->setAddressee( add ); 2405 mDetails->setAddressee( add );
2406 message(i18n("Remove voice completed!") ); 2406 message(i18n("Remove voice completed!") );
2407 2407
2408 2408
2409 2409
2410} 2410}
2411 2411
2412void KABCore::setFormattedName() 2412void KABCore::setFormattedName()
2413{ 2413{
2414 KABFormatPrefs setpref; 2414 KABFormatPrefs setpref;
2415 if ( !setpref.exec() ) { 2415 if ( !setpref.exec() ) {
2416 return; 2416 return;
2417 } 2417 }
2418 XXPortSelectDialog dlg( this, false, this ); 2418 XXPortSelectDialog dlg( this, false, this );
2419 if ( !dlg.exec() ) 2419 if ( !dlg.exec() )
2420 return; 2420 return;
2421 mAddressBook->setUntagged(); 2421 mAddressBook->setUntagged();
2422 dlg.tagSelected(); 2422 dlg.tagSelected();
2423 int count = 0; 2423 int count = 0;
2424 KABC::AddressBook::Iterator it; 2424 KABC::AddressBook::Iterator it;
2425 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2425 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2426 if ( (*it).tagged() ) { 2426 if ( (*it).tagged() ) {
2427 ++count; 2427 ++count;
2428 if ( count %10 == 0 ) 2428 if ( count %10 == 0 )
2429 message(i18n("Changing contact #%1").arg( count ) ); 2429 message(i18n("Changing contact #%1").arg( count ) );
2430 qApp->processEvents(); 2430 qApp->processEvents();
2431 QString fName; 2431 QString fName;
2432 if ( setpref.simple->isChecked() ) 2432 if ( setpref.simple->isChecked() )
2433 fName = NameEditDialog::formattedName( (*it), NameEditDialog::SimpleName ); 2433 fName = NameEditDialog::formattedName( (*it), NameEditDialog::SimpleName );
2434 else if ( setpref.full->isChecked() ) 2434 else if ( setpref.full->isChecked() )
2435 fName = NameEditDialog::formattedName( (*it), NameEditDialog::FullName ); 2435 fName = NameEditDialog::formattedName( (*it), NameEditDialog::FullName );
2436 else if ( setpref.reverse->isChecked() ) 2436 else if ( setpref.reverse->isChecked() )
2437 fName = NameEditDialog::formattedName( (*it), NameEditDialog::ReverseName ); 2437 fName = NameEditDialog::formattedName( (*it), NameEditDialog::ReverseName );
2438 else 2438 else
2439 fName = (*it).organization(); 2439 fName = (*it).organization();
2440 if ( setpref.setCompany->isChecked() ) 2440 if ( setpref.setCompany->isChecked() )
2441 if ( fName.isEmpty() || fName =="," ) 2441 if ( fName.isEmpty() || fName =="," )
2442 fName = (*it).organization(); 2442 fName = (*it).organization();
2443 (*it).setFormattedName( fName ); 2443 (*it).setFormattedName( fName );
2444 } 2444 }
2445 } 2445 }
2446 message(i18n("Refreshing view...") ); 2446 message(i18n("Refreshing view...") );
2447 qApp->processEvents(); 2447 qApp->processEvents();
2448 mViewManager->refreshView( "" ); 2448 mViewManager->refreshView( "" );
2449 Addressee add; 2449 Addressee add;
2450 mDetails->setAddressee( add ); 2450 mDetails->setAddressee( add );
2451 message(i18n("Setting formatted name completed!") ); 2451 message(i18n("Setting formatted name completed!") );
2452} 2452}
2453 2453
2454void KABCore::clipboardDataChanged() 2454void KABCore::clipboardDataChanged()
2455{ 2455{
2456 2456
2457 if ( mReadWrite ) 2457 if ( mReadWrite )
2458 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); 2458 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() );
2459 2459
2460} 2460}
2461 2461
2462void KABCore::updateActionMenu() 2462void KABCore::updateActionMenu()
2463{ 2463{
2464 UndoStack *undo = UndoStack::instance(); 2464 UndoStack *undo = UndoStack::instance();
2465 RedoStack *redo = RedoStack::instance(); 2465 RedoStack *redo = RedoStack::instance();
2466 2466
2467 if ( undo->isEmpty() ) 2467 if ( undo->isEmpty() )
2468 mActionUndo->setText( i18n( "Undo" ) ); 2468 mActionUndo->setText( i18n( "Undo" ) );
2469 else 2469 else
2470 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) ); 2470 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) );
2471 2471
2472 mActionUndo->setEnabled( !undo->isEmpty() ); 2472 mActionUndo->setEnabled( !undo->isEmpty() );
2473 2473
2474 if ( !redo->top() ) 2474 if ( !redo->top() )
2475 mActionRedo->setText( i18n( "Redo" ) ); 2475 mActionRedo->setText( i18n( "Redo" ) );
2476 else 2476 else
2477 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) ); 2477 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) );
2478 2478
2479 mActionRedo->setEnabled( !redo->isEmpty() ); 2479 mActionRedo->setEnabled( !redo->isEmpty() );
2480} 2480}
2481 2481
2482void KABCore::configureKeyBindings() 2482void KABCore::configureKeyBindings()
2483{ 2483{
2484#ifndef KAB_EMBEDDED 2484#ifndef KAB_EMBEDDED
2485 KKeyDialog::configure( actionCollection(), true ); 2485 KKeyDialog::configure( actionCollection(), true );
2486#else //KAB_EMBEDDED 2486#else //KAB_EMBEDDED
2487 qDebug("KABCore::configureKeyBindings() not implemented"); 2487 qDebug("KABCore::configureKeyBindings() not implemented");
2488#endif //KAB_EMBEDDED 2488#endif //KAB_EMBEDDED
2489} 2489}
2490 2490
2491#ifdef KAB_EMBEDDED 2491#ifdef KAB_EMBEDDED
2492void KABCore::configureResources() 2492void KABCore::configureResources()
2493{ 2493{
2494 KRES::KCMKResources dlg( this, "" , 0 ); 2494 KRES::KCMKResources dlg( this, "" , 0 );
2495 2495
2496 if ( !dlg.exec() ) 2496 if ( !dlg.exec() )
2497 return; 2497 return;
2498 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); 2498 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") );
2499} 2499}
2500#endif //KAB_EMBEDDED 2500#endif //KAB_EMBEDDED
2501 2501
2502 2502
2503/* this method will be called through the QCop interface from Ko/Pi to select addresses 2503/* this method will be called through the QCop interface from Ko/Pi to select addresses
2504 * for the attendees list of an event. 2504 * for the attendees list of an event.
2505 */ 2505 */
2506void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid) 2506void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid)
2507{ 2507{
2508 QStringList nameList; 2508 QStringList nameList;
2509 QStringList emailList; 2509 QStringList emailList;
2510 QStringList uidList; 2510 QStringList uidList;
2511 bool ok = false;
2512 int wid = uid.toInt( &ok );
2513 if ( ok ) {
2514 if ( wid != QApplication::desktop()->width() ) {
2515 qDebug("KA/Pi: Request from different desktop geometry. Resizing ...");
2516 raise();
2517 qApp->processEvents();
2518 }
2511 2519
2520 } else {
2521 qDebug("KABCore::requestForNameEmailUidList:: Got invalid uid ");
2522 }
2523
2512 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); 2524 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this);
2513 uint i=0; 2525 uint i=0;
2514 for (i=0; i < list.count(); i++) 2526 for (i=0; i < list.count(); i++)
2515 { 2527 {
2516 nameList.append(list[i].realName()); 2528 nameList.append(list[i].realName());
2517 emailList.append(list[i].preferredEmail()); 2529 emailList.append(list[i].preferredEmail());
2518 uidList.append(list[i].uid()); 2530 uidList.append(list[i].uid());
2519 } 2531 }
2520 //qDebug("%s %s ", sourceChannel.latin1(), uid.latin1()); 2532 //qDebug("%s %s ", sourceChannel.latin1(), uid.latin1());
2521 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList); 2533 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList);
2522 2534
2523} 2535}
2524 2536
2525/* this method will be called through the QCop interface from Ko/Pi to select birthdays 2537/* this method will be called through the QCop interface from Ko/Pi to select birthdays
2526 * to put them into the calendar. 2538 * to put them into the calendar.
2527 */ 2539 */
2528void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid) 2540void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid)
2529{ 2541{
2530 // qDebug("KABCore::requestForBirthdayList"); 2542 // qDebug("KABCore::requestForBirthdayList");
2531 QStringList birthdayList; 2543 QStringList birthdayList;
2532 QStringList anniversaryList; 2544 QStringList anniversaryList;
2533 QStringList realNameList; 2545 QStringList realNameList;
2534 QStringList preferredEmailList; 2546 QStringList preferredEmailList;
2535 QStringList assembledNameList; 2547 QStringList assembledNameList;
2536 QStringList uidList; 2548 QStringList uidList;
2537 2549
2538 KABC::AddressBook::Iterator it; 2550 KABC::AddressBook::Iterator it;
2539 2551
2540 int count = 0; 2552 int count = 0;
2541 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2553 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2542 ++count; 2554 ++count;
2543 } 2555 }
2544 QProgressBar bar(count,0 ); 2556 QProgressBar bar(count,0 );
2545 int w = 300; 2557 int w = 300;
2546 if ( QApplication::desktop()->width() < 320 ) 2558 if ( QApplication::desktop()->width() < 320 )
2547 w = 220; 2559 w = 220;
2548 int h = bar.sizeHint().height() ; 2560 int h = bar.sizeHint().height() ;
2549 int dw = QApplication::desktop()->width(); 2561 int dw = QApplication::desktop()->width();
2550 int dh = QApplication::desktop()->height(); 2562 int dh = QApplication::desktop()->height();
2551 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2563 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2552 bar.show(); 2564 bar.show();
2553 bar.setCaption (i18n("Collecting birthdays - close to abort!") ); 2565 bar.setCaption (i18n("Collecting birthdays - close to abort!") );
2554 qApp->processEvents(); 2566 qApp->processEvents();
2555 2567
2556 QDate bday; 2568 QDate bday;
2557 QString anni; 2569 QString anni;
2558 QString formattedbday; 2570 QString formattedbday;
2559 2571
2560 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) 2572 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it )
2561 { 2573 {
2562 if ( ! bar.isVisible() ) 2574 if ( ! bar.isVisible() )
2563 return; 2575 return;
2564 bar.setProgress( count++ ); 2576 bar.setProgress( count++ );
2565 qApp->processEvents(); 2577 qApp->processEvents();
2566 bday = (*it).birthday().date(); 2578 bday = (*it).birthday().date();
2567 anni = (*it).custom("KADDRESSBOOK", "X-Anniversary" ); 2579 anni = (*it).custom("KADDRESSBOOK", "X-Anniversary" );
2568 2580
2569 if ( bday.isValid() || !anni.isEmpty()) 2581 if ( bday.isValid() || !anni.isEmpty())
2570 { 2582 {
2571 if (bday.isValid()) 2583 if (bday.isValid())
2572 formattedbday = KGlobal::locale()->formatDate(bday, true, KLocale::ISODate); 2584 formattedbday = KGlobal::locale()->formatDate(bday, true, KLocale::ISODate);
2573 else 2585 else
2574 formattedbday = "NOTVALID"; 2586 formattedbday = "NOTVALID";
2575 if (anni.isEmpty()) 2587 if (anni.isEmpty())
2576 anni = "INVALID"; 2588 anni = "INVALID";
2577 2589
2578 birthdayList.append(formattedbday); 2590 birthdayList.append(formattedbday);
2579 anniversaryList.append(anni); //should be ISODate 2591 anniversaryList.append(anni); //should be ISODate
2580 realNameList.append((*it).realName()); 2592 realNameList.append((*it).realName());
2581 preferredEmailList.append((*it).preferredEmail()); 2593 preferredEmailList.append((*it).preferredEmail());
2582 assembledNameList.append((*it).assembledName()); 2594 assembledNameList.append((*it).assembledName());
2583 uidList.append((*it).uid()); 2595 uidList.append((*it).uid());
2584 2596
2585 //qDebug("found birthday in KA/Pi: %s,%s,%s,%s: %s, %s", (*it).realName().latin1(), (*it).preferredEmail().latin1(), (*it).assembledName().latin1(), (*it).uid().latin1(), formattedbday.latin1(), anni.latin1() ); 2597 //qDebug("found birthday in KA/Pi: %s,%s,%s,%s: %s, %s", (*it).realName().latin1(), (*it).preferredEmail().latin1(), (*it).assembledName().latin1(), (*it).uid().latin1(), formattedbday.latin1(), anni.latin1() );
2586 } 2598 }
2587 } 2599 }
2588 2600
2589 bool res = ExternalAppHandler::instance()->returnBirthdayListFromKAPI(sourceChannel, uid, birthdayList, anniversaryList, realNameList, preferredEmailList, assembledNameList, uidList); 2601 bool res = ExternalAppHandler::instance()->returnBirthdayListFromKAPI(sourceChannel, uid, birthdayList, anniversaryList, realNameList, preferredEmailList, assembledNameList, uidList);
2590 2602
2591} 2603}
2592 2604
2593/* this method will be called through the QCop interface from other apps to show details of a contact. 2605/* this method will be called through the QCop interface from other apps to show details of a contact.
2594 */ 2606 */
2595void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid) 2607void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid)
2596{ 2608{
2597 //qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1()); 2609 //qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1());
2598 2610
2599 QString foundUid = QString::null; 2611 QString foundUid = QString::null;
2600 if ( ! uid.isEmpty() ) { 2612 if ( ! uid.isEmpty() ) {
2601 Addressee adrr = mAddressBook->findByUid( uid ); 2613 Addressee adrr = mAddressBook->findByUid( uid );
2602 if ( !adrr.isEmpty() ) { 2614 if ( !adrr.isEmpty() ) {
2603 foundUid = uid; 2615 foundUid = uid;
2604 } 2616 }
2605 if ( email == "sendbacklist" ) { 2617 if ( email == "sendbacklist" ) {
2606 //qDebug("ssssssssssssssssssssssend "); 2618 //qDebug("ssssssssssssssssssssssend ");
2607 QStringList nameList; 2619 QStringList nameList;
2608 QStringList emailList; 2620 QStringList emailList;
2609 QStringList uidList; 2621 QStringList uidList;
2610 nameList.append(adrr.realName()); 2622 nameList.append(adrr.realName());
2611 emailList = adrr.emails(); 2623 emailList = adrr.emails();
2612 uidList.append( adrr.preferredEmail()); 2624 uidList.append( adrr.preferredEmail());
2613 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList); 2625 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList);
2614 return; 2626 return;
2615 } 2627 }
2616 2628
2617 } 2629 }
2618 2630
2619 if ( email == "sendbacklist" ) 2631 if ( email == "sendbacklist" )
2620 return; 2632 return;
2621 if (foundUid.isEmpty()) 2633 if (foundUid.isEmpty())
2622 { 2634 {
2623 //find the uid of the person first 2635 //find the uid of the person first
2624 Addressee::List namelist; 2636 Addressee::List namelist;
2625 Addressee::List emaillist; 2637 Addressee::List emaillist;
2626 2638
2627 if (!name.isEmpty()) 2639 if (!name.isEmpty())
2628 namelist = mAddressBook->findByName( name ); 2640 namelist = mAddressBook->findByName( name );
2629 2641
2630 if (!email.isEmpty()) 2642 if (!email.isEmpty())
2631 emaillist = mAddressBook->findByEmail( email ); 2643 emaillist = mAddressBook->findByEmail( email );
2632 //qDebug("count %d %d ", namelist.count(),emaillist.count() ); 2644 //qDebug("count %d %d ", namelist.count(),emaillist.count() );
2633 //check if we have a match in Namelist and Emaillist 2645 //check if we have a match in Namelist and Emaillist
2634 if ((namelist.count() == 0) && (emaillist.count() > 0)) { 2646 if ((namelist.count() == 0) && (emaillist.count() > 0)) {
2635 foundUid = emaillist[0].uid(); 2647 foundUid = emaillist[0].uid();
2636 } 2648 }
2637 else if ((namelist.count() > 0) && (emaillist.count() == 0)) 2649 else if ((namelist.count() > 0) && (emaillist.count() == 0))
2638 foundUid = namelist[0].uid(); 2650 foundUid = namelist[0].uid();
2639 else 2651 else
2640 { 2652 {
2641 for (int i = 0; i < namelist.count(); i++) 2653 for (int i = 0; i < namelist.count(); i++)
2642 { 2654 {
2643 for (int j = 0; j < emaillist.count(); j++) 2655 for (int j = 0; j < emaillist.count(); j++)
2644 { 2656 {
2645 if (namelist[i] == emaillist[j]) 2657 if (namelist[i] == emaillist[j])
2646 { 2658 {
2647 foundUid = namelist[i].uid(); 2659 foundUid = namelist[i].uid();
2648 } 2660 }
2649 } 2661 }
2650 } 2662 }
2651 } 2663 }
2652 } 2664 }
2653 else 2665 else
2654 { 2666 {
2655 foundUid = uid; 2667 foundUid = uid;
2656 } 2668 }
2657 2669
2658 if (!foundUid.isEmpty()) 2670 if (!foundUid.isEmpty())
2659 { 2671 {
2660 2672
2661 // raise Ka/Pi if it is in the background 2673 // raise Ka/Pi if it is in the background
2662#ifndef DESKTOP_VERSION 2674#ifndef DESKTOP_VERSION
2663#ifndef KORG_NODCOP 2675#ifndef KORG_NODCOP
2664 //QCopEnvelope e("QPE/Application/kapi", "raise()"); 2676 //QCopEnvelope e("QPE/Application/kapi", "raise()");
2665#endif 2677#endif
2666#endif 2678#endif
2667 2679
2668 mMainWindow->showMaximized(); 2680 mMainWindow->showMaximized();
2669 mMainWindow-> raise(); 2681 mMainWindow-> raise();
2670 2682
2671 mViewManager->setSelected( "", false); 2683 mViewManager->setSelected( "", false);
2672 mViewManager->refreshView( "" ); 2684 mViewManager->refreshView( "" );
2673 mViewManager->setSelected( foundUid, true ); 2685 mViewManager->setSelected( foundUid, true );
2674 mViewManager->refreshView( foundUid ); 2686 mViewManager->refreshView( foundUid );
2675 2687
2676 if ( !mMultipleViewsAtOnce ) 2688 if ( !mMultipleViewsAtOnce )
2677 { 2689 {
2678 setDetailsVisible( true ); 2690 setDetailsVisible( true );
2679 mActionDetails->setChecked(true); 2691 mActionDetails->setChecked(true);
2680 } 2692 }
2681 } 2693 }
2682} 2694}
2683 2695
2684void KABCore::whatsnew() 2696void KABCore::whatsnew()
2685{ 2697{
2686 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" ); 2698 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" );
2687} 2699}
2688void KABCore::synchowto() 2700void KABCore::synchowto()
2689{ 2701{
2690 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" ); 2702 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" );
2691} 2703}
2692void KABCore::kdesynchowto() 2704void KABCore::kdesynchowto()
2693{ 2705{
2694 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" ); 2706 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" );
2695} 2707}
2696void KABCore::multisynchowto() 2708void KABCore::multisynchowto()
2697{ 2709{
2698 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" ); 2710 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" );
2699} 2711}
2700void KABCore::faq() 2712void KABCore::faq()
2701{ 2713{
2702 KApplication::showFile( "KA/Pi FAQ", "kdepim/kaddressbook/kapiFAQ.txt" ); 2714 KApplication::showFile( "KA/Pi FAQ", "kdepim/kaddressbook/kapiFAQ.txt" );
2703} 2715}
2704 2716
2705#include <libkcal/syncdefines.h> 2717#include <libkcal/syncdefines.h>
2706 2718
2707KABC::Addressee KABCore::getLastSyncAddressee() 2719KABC::Addressee KABCore::getLastSyncAddressee()
2708{ 2720{
2709 Addressee lse; 2721 Addressee lse;
2710 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); 2722 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice();
2711 2723
2712 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); 2724 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() );
2713 lse = mAddressBook->findByUid( "last-syncAddressee-"+mCurrentSyncDevice ); 2725 lse = mAddressBook->findByUid( "last-syncAddressee-"+mCurrentSyncDevice );
2714 if (lse.isEmpty()) { 2726 if (lse.isEmpty()) {
2715 qDebug("KA: Creating new last-syncAddressee "); 2727 qDebug("KA: Creating new last-syncAddressee ");
2716 lse.setUid( "last-syncAddressee-"+mCurrentSyncDevice ); 2728 lse.setUid( "last-syncAddressee-"+mCurrentSyncDevice );
2717 QString sum = ""; 2729 QString sum = "";
2718 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) 2730 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL )
2719 sum = "E: "; 2731 sum = "E: ";
2720 lse.setFamilyName("!"+sum+mCurrentSyncDevice + i18n(" - sync event")); 2732 lse.setFamilyName("!"+sum+mCurrentSyncDevice + i18n(" - sync event"));
2721 lse.setRevision( mLastAddressbookSync ); 2733 lse.setRevision( mLastAddressbookSync );
2722 lse.setCategories( i18n("SyncEvent") ); 2734 lse.setCategories( i18n("SyncEvent") );
2723 mAddressBook->insertAddressee( lse ); 2735 mAddressBook->insertAddressee( lse );
2724 } 2736 }
2725 return lse; 2737 return lse;
2726} 2738}
2727int KABCore::takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full ) 2739int KABCore::takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full )
2728{ 2740{
2729 2741
2730 //void setZaurusId(int id); 2742 //void setZaurusId(int id);
2731 // int zaurusId() const; 2743 // int zaurusId() const;
2732 // void setZaurusUid(int id); 2744 // void setZaurusUid(int id);
2733 // int zaurusUid() const; 2745 // int zaurusUid() const;
2734 // void setZaurusStat(int id); 2746 // void setZaurusStat(int id);
2735 // int zaurusStat() const; 2747 // int zaurusStat() const;
2736 // 0 equal 2748 // 0 equal
2737 // 1 take local 2749 // 1 take local
2738 // 2 take remote 2750 // 2 take remote
2739 // 3 cancel 2751 // 3 cancel
2740 QDateTime lastSync = mLastAddressbookSync; 2752 QDateTime lastSync = mLastAddressbookSync;
2741 QDateTime localMod = local->revision(); 2753 QDateTime localMod = local->revision();
2742 QDateTime remoteMod = remote->revision(); 2754 QDateTime remoteMod = remote->revision();
2743 2755
2744 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); 2756 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice();
2745 2757
2746 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2758 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2747 bool remCh, locCh; 2759 bool remCh, locCh;
2748 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) ); 2760 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) );
2749 //if ( remCh ) 2761 //if ( remCh )
2750 // qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() ); 2762 // qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() );
2751 locCh = ( localMod > mLastAddressbookSync ); 2763 locCh = ( localMod > mLastAddressbookSync );
2752 //qDebug("cahnged rem %d loc %d",remCh, locCh ); 2764 //qDebug("cahnged rem %d loc %d",remCh, locCh );
2753 if ( !remCh && ! locCh ) { 2765 if ( !remCh && ! locCh ) {
2754 //qDebug("both not changed "); 2766 //qDebug("both not changed ");
2755 lastSync = localMod.addDays(1); 2767 lastSync = localMod.addDays(1);
2756 if ( mode <= SYNC_PREF_ASK ) 2768 if ( mode <= SYNC_PREF_ASK )
2757 return 0; 2769 return 0;
2758 } else { 2770 } else {
2759 if ( locCh ) { 2771 if ( locCh ) {
2760 //qDebug("loc changed %s %s", localMod.toString().latin1(), mLastAddressbookSync.toString().latin1()); 2772 //qDebug("loc changed %s %s", localMod.toString().latin1(), mLastAddressbookSync.toString().latin1());
2761 lastSync = localMod.addDays( -1 ); 2773 lastSync = localMod.addDays( -1 );
2762 if ( !remCh ) 2774 if ( !remCh )
2763 remoteMod =( lastSync.addDays( -1 ) ); 2775 remoteMod =( lastSync.addDays( -1 ) );
2764 } else { 2776 } else {
2765 //qDebug(" not loc changed "); 2777 //qDebug(" not loc changed ");
2766 lastSync = localMod.addDays( 1 ); 2778 lastSync = localMod.addDays( 1 );
2767 if ( remCh ) { 2779 if ( remCh ) {
2768 //qDebug("rem changed "); 2780 //qDebug("rem changed ");
2769 remoteMod =( lastSync.addDays( 1 ) ); 2781 remoteMod =( lastSync.addDays( 1 ) );
2770 } 2782 }
2771 2783
2772 } 2784 }
2773 } 2785 }
2774 full = true; 2786 full = true;
2775 if ( mode < SYNC_PREF_ASK ) 2787 if ( mode < SYNC_PREF_ASK )
2776 mode = SYNC_PREF_ASK; 2788 mode = SYNC_PREF_ASK;
2777 } else { 2789 } else {
2778 if ( localMod == remoteMod ) 2790 if ( localMod == remoteMod )
2779 return 0; 2791 return 0;
2780 2792
2781 } 2793 }
2782 //qDebug("%s %s --- %d %d", localMod.toString().latin1() , remoteMod.toString().latin1(), localMod.time().msec(), remoteMod.time().msec()); 2794 //qDebug("%s %s --- %d %d", localMod.toString().latin1() , remoteMod.toString().latin1(), localMod.time().msec(), remoteMod.time().msec());
2783 //qDebug("lastsync %s ", lastSync.toString().latin1() ); 2795 //qDebug("lastsync %s ", lastSync.toString().latin1() );
2784 //full = true; //debug only 2796 //full = true; //debug only
2785 if ( full ) { 2797 if ( full ) {
2786 bool equ = ( (*local) == (*remote) ); 2798 bool equ = ( (*local) == (*remote) );
2787 if ( equ ) { 2799 if ( equ ) {
2788 //qDebug("equal "); 2800 //qDebug("equal ");
2789 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2801 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2790 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) ); 2802 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) );
2791 } 2803 }
2792 if ( mode < SYNC_PREF_FORCE_LOCAL ) 2804 if ( mode < SYNC_PREF_FORCE_LOCAL )
2793 return 0; 2805 return 0;
2794 2806
2795 }//else //debug only 2807 }//else //debug only
2796 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1()); 2808 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1());
2797 } 2809 }
2798 int result; 2810 int result;
2799 bool localIsNew; 2811 bool localIsNew;
2800 //qDebug("%s -- %s mLastCalendarSync %s lastsync %s --- local %s remote %s ",local->summary().latin1(), remote->summary().latin1(),mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , local->lastModified().toString().latin1() , remote->lastModified().toString().latin1() ); 2812 //qDebug("%s -- %s mLastCalendarSync %s lastsync %s --- local %s remote %s ",local->summary().latin1(), remote->summary().latin1(),mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , local->lastModified().toString().latin1() , remote->lastModified().toString().latin1() );
2801 2813
2802 if ( full && mode < SYNC_PREF_NEWEST ) 2814 if ( full && mode < SYNC_PREF_NEWEST )
2803 mode = SYNC_PREF_ASK; 2815 mode = SYNC_PREF_ASK;
2804 2816
2805 switch( mode ) { 2817 switch( mode ) {
2806 case SYNC_PREF_LOCAL: 2818 case SYNC_PREF_LOCAL:
2807 if ( lastSync > remoteMod ) 2819 if ( lastSync > remoteMod )
2808 return 1; 2820 return 1;
2809 if ( lastSync > localMod ) 2821 if ( lastSync > localMod )
2810 return 2; 2822 return 2;
2811 return 1; 2823 return 1;
2812 break; 2824 break;
2813 case SYNC_PREF_REMOTE: 2825 case SYNC_PREF_REMOTE:
2814 if ( lastSync > remoteMod ) 2826 if ( lastSync > remoteMod )
2815 return 1; 2827 return 1;
2816 if ( lastSync > localMod ) 2828 if ( lastSync > localMod )
2817 return 2; 2829 return 2;
2818 return 2; 2830 return 2;
2819 break; 2831 break;
2820 case SYNC_PREF_NEWEST: 2832 case SYNC_PREF_NEWEST:
2821 if ( localMod > remoteMod ) 2833 if ( localMod > remoteMod )
2822 return 1; 2834 return 1;
2823 else 2835 else
2824 return 2; 2836 return 2;
2825 break; 2837 break;
2826 case SYNC_PREF_ASK: 2838 case SYNC_PREF_ASK:
2827 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); 2839 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() );
2828 if ( lastSync > remoteMod ) 2840 if ( lastSync > remoteMod )
2829 return 1; 2841 return 1;
2830 if ( lastSync > localMod ) { 2842 if ( lastSync > localMod ) {
2831 return 2; 2843 return 2;
2832 } 2844 }
2833 localIsNew = localMod >= remoteMod; 2845 localIsNew = localMod >= remoteMod;
2834 //qDebug("conflict! ************************************** "); 2846 //qDebug("conflict! ************************************** ");
2835 { 2847 {
2836 KABC::AddresseeChooser acd ( *local,*remote, localIsNew , this ); 2848 KABC::AddresseeChooser acd ( *local,*remote, localIsNew , this );
2837 result = acd.executeD(localIsNew); 2849 result = acd.executeD(localIsNew);
2838 return result; 2850 return result;
2839 } 2851 }
2840 break; 2852 break;
2841 case SYNC_PREF_FORCE_LOCAL: 2853 case SYNC_PREF_FORCE_LOCAL:
2842 return 1; 2854 return 1;
2843 break; 2855 break;
2844 case SYNC_PREF_FORCE_REMOTE: 2856 case SYNC_PREF_FORCE_REMOTE:
2845 return 2; 2857 return 2;
2846 break; 2858 break;
2847 2859
2848 default: 2860 default:
2849 // SYNC_PREF_TAKE_BOTH not implemented 2861 // SYNC_PREF_TAKE_BOTH not implemented
2850 break; 2862 break;
2851 } 2863 }
2852 return 0; 2864 return 0;
2853} 2865}
2854 2866
2855 2867
2856bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode) 2868bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode)
2857{ 2869{
2858 bool syncOK = true; 2870 bool syncOK = true;
2859 int addedAddressee = 0; 2871 int addedAddressee = 0;
2860 int addedAddresseeR = 0; 2872 int addedAddresseeR = 0;
2861 int deletedAddresseeR = 0; 2873 int deletedAddresseeR = 0;
2862 int deletedAddresseeL = 0; 2874 int deletedAddresseeL = 0;
2863 int changedLocal = 0; 2875 int changedLocal = 0;
2864 int changedRemote = 0; 2876 int changedRemote = 0;
2865 int filteredIN = 0; 2877 int filteredIN = 0;
2866 int filteredOUT = 0; 2878 int filteredOUT = 0;
2867 2879
2868 QString mCurrentSyncName = syncManager->getCurrentSyncName(); 2880 QString mCurrentSyncName = syncManager->getCurrentSyncName();
2869 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); 2881 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice();
2870 2882
2871 //QPtrList<Addressee> el = local->rawAddressees(); 2883 //QPtrList<Addressee> el = local->rawAddressees();
2872 Addressee addresseeR; 2884 Addressee addresseeR;
2873 QString uid; 2885 QString uid;
2874 int take; 2886 int take;
2875 Addressee addresseeL; 2887 Addressee addresseeL;
2876 Addressee addresseeRSync; 2888 Addressee addresseeRSync;
2877 Addressee addresseeLSync; 2889 Addressee addresseeLSync;
2878 // KABC::Addressee::List addresseeRSyncSharp = remote->getExternLastSyncAddressees(); 2890 // KABC::Addressee::List addresseeRSyncSharp = remote->getExternLastSyncAddressees();
2879 //KABC::Addressee::List addresseeLSyncSharp = local->getExternLastSyncAddressees(); 2891 //KABC::Addressee::List addresseeLSyncSharp = local->getExternLastSyncAddressees();
2880 bool fullDateRange = false; 2892 bool fullDateRange = false;
2881 local->resetTempSyncStat(); 2893 local->resetTempSyncStat();
2882 mLastAddressbookSync = QDateTime::currentDateTime(); 2894 mLastAddressbookSync = QDateTime::currentDateTime();
2883 if ( syncManager->syncWithDesktop() ) { 2895 if ( syncManager->syncWithDesktop() ) {
2884 // remote->removeSyncInfo( QString());//remove all info 2896 // remote->removeSyncInfo( QString());//remove all info
2885 if ( KSyncManager::mRequestedSyncEvent.isValid() ) { 2897 if ( KSyncManager::mRequestedSyncEvent.isValid() ) {
2886 mLastAddressbookSync = KSyncManager::mRequestedSyncEvent; 2898 mLastAddressbookSync = KSyncManager::mRequestedSyncEvent;
2887 qDebug("KA: using extern time for calendar sync: %s ", mLastAddressbookSync.toString().latin1() ); 2899 qDebug("KA: using extern time for calendar sync: %s ", mLastAddressbookSync.toString().latin1() );
2888 } else { 2900 } else {
2889 qDebug("KA: KSyncManager::mRequestedSyncEvent has invalid datatime "); 2901 qDebug("KA: KSyncManager::mRequestedSyncEvent has invalid datatime ");
2890 } 2902 }
2891 } 2903 }
2892 QDateTime modifiedCalendar = mLastAddressbookSync; 2904 QDateTime modifiedCalendar = mLastAddressbookSync;
2893 addresseeLSync = getLastSyncAddressee(); 2905 addresseeLSync = getLastSyncAddressee();
2894 qDebug("KA: Last Sync %s ", addresseeLSync.revision().toString().latin1()); 2906 qDebug("KA: Last Sync %s ", addresseeLSync.revision().toString().latin1());
2895 addresseeR = remote->findByUid("last-syncAddressee-"+mCurrentSyncName ); 2907 addresseeR = remote->findByUid("last-syncAddressee-"+mCurrentSyncName );