summaryrefslogtreecommitdiffabout
path: root/kaddressbook
authorzautrix <zautrix>2004-09-18 08:25:05 (UTC)
committer zautrix <zautrix>2004-09-18 08:25:05 (UTC)
commit983b010853dfadfec3638e2afd90e522985f67fb (patch) (unidiff)
treeb691b7664b9f6f23d0d92a0e05bf3e8cbcf2df67 /kaddressbook
parentdf03bd8c7ff6a738dd386001679542ae4b493a07 (diff)
downloadkdepimpi-983b010853dfadfec3638e2afd90e522985f67fb.zip
kdepimpi-983b010853dfadfec3638e2afd90e522985f67fb.tar.gz
kdepimpi-983b010853dfadfec3638e2afd90e522985f67fb.tar.bz2
more AB syncing
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp95
-rw-r--r--kaddressbook/kabcore.h5
2 files changed, 86 insertions, 14 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 49c3b19..e912941 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -145,12 +145,13 @@ $Id$
145#include "kaimportoldialog.h" 145#include "kaimportoldialog.h"
146#else 146#else
147#include <unistd.h> 147#include <unistd.h>
148#endif 148#endif
149// sync includes 149// sync includes
150#include <libkdepim/ksyncprofile.h> 150#include <libkdepim/ksyncprofile.h>
151#include <libkdepim/ksyncprefsdialog.h>
151 152
152 153
153bool pasteWithNewUid = true; 154bool pasteWithNewUid = true;
154 155
155#ifdef KAB_EMBEDDED 156#ifdef KAB_EMBEDDED
156KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) 157KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name )
@@ -176,12 +177,14 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const
176 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); 177 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler );
177#endif //KAB_EMBEDDED 178#endif //KAB_EMBEDDED
178 179
179 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), 180 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ),
180 SLOT( addressBookChanged() ) ); 181 SLOT( addressBookChanged() ) );
181 182
183#if 0
184 // LP moved to addressbook init method
182 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, 185 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization,
183 "X-Department", "KADDRESSBOOK" ); 186 "X-Department", "KADDRESSBOOK" );
184 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, 187 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization,
185 "X-Profession", "KADDRESSBOOK" ); 188 "X-Profession", "KADDRESSBOOK" );
186 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, 189 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization,
187 "X-AssistantsName", "KADDRESSBOOK" ); 190 "X-AssistantsName", "KADDRESSBOOK" );
@@ -201,13 +204,13 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const
201 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, 204 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal,
202 "X-Gender", "KADDRESSBOOK" ); 205 "X-Gender", "KADDRESSBOOK" );
203 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, 206 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal,
204 "X-Children", "KADDRESSBOOK" ); 207 "X-Children", "KADDRESSBOOK" );
205 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, 208 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal,
206 "X-FreeBusyUrl", "KADDRESSBOOK" ); 209 "X-FreeBusyUrl", "KADDRESSBOOK" );
207 210#endif
208 initGUI(); 211 initGUI();
209 212
210 mIncSearchWidget->setFocus(); 213 mIncSearchWidget->setFocus();
211 214
212 215
213 connect( mViewManager, SIGNAL( selected( const QString& ) ), 216 connect( mViewManager, SIGNAL( selected( const QString& ) ),
@@ -2192,14 +2195,14 @@ void KABCore::slotSyncMenu( int action )
2192 2195
2193 } else if ( action == 1002 ) { 2196 } else if ( action == 1002 ) {
2194 quickSyncLocalFile(); 2197 quickSyncLocalFile();
2195 2198
2196 } else if ( action >= 1003 ) { 2199 } else if ( action >= 1003 ) {
2197 if ( temp->getIsLocalFileSync() ) { 2200 if ( temp->getIsLocalFileSync() ) {
2198 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 2201 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) )
2199 KABPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); 2202 KABPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileNameAB();
2200 } else { 2203 } else {
2201 if ( temp->getIsPhoneSync() ) { 2204 if ( temp->getIsPhoneSync() ) {
2202 KABPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; 2205 KABPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ;
2203 KABPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); 2206 KABPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( );
2204 KABPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); 2207 KABPrefs::instance()->mPhoneModel = temp->getPhoneModel( );
2205 syncPhone(); 2208 syncPhone();
@@ -2314,13 +2317,13 @@ int KABCore::ringSync()
2314 KSyncProfile* temp = new KSyncProfile (); 2317 KSyncProfile* temp = new KSyncProfile ();
2315 KABPrefs::instance()->mAskForPreferences = false; 2318 KABPrefs::instance()->mAskForPreferences = false;
2316 for ( i = 0; i < syncProfileNames.count(); ++i ) { 2319 for ( i = 0; i < syncProfileNames.count(); ++i ) {
2317 mCurrentSyncProfile = i; 2320 mCurrentSyncProfile = i;
2318 temp->setName(syncProfileNames[mCurrentSyncProfile]); 2321 temp->setName(syncProfileNames[mCurrentSyncProfile]);
2319 temp->readConfig(&config); 2322 temp->readConfig(&config);
2320 if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { 2323 if ( temp->getIncludeInRingSyncAB() && ( i < 1 || i > 2 )) {
2321 setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); 2324 setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... "));
2322 ++syncedProfiles; 2325 ++syncedProfiles;
2323 // KABPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 2326 // KABPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
2324 KABPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 2327 KABPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
2325 KABPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 2328 KABPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
2326 KABPrefs::instance()->mWriteBackInFuture = 0; 2329 KABPrefs::instance()->mWriteBackInFuture = 0;
@@ -2330,14 +2333,14 @@ int KABCore::ringSync()
2330 mCurrentSyncDevice = syncProfileNames[i] ; 2333 mCurrentSyncDevice = syncProfileNames[i] ;
2331 mCurrentSyncName = KABPrefs::instance()->mLocalMachineName; 2334 mCurrentSyncName = KABPrefs::instance()->mLocalMachineName;
2332 if ( i == 0 ) { 2335 if ( i == 0 ) {
2333 syncSharp(); 2336 syncSharp();
2334 } else { 2337 } else {
2335 if ( temp->getIsLocalFileSync() ) { 2338 if ( temp->getIsLocalFileSync() ) {
2336 if ( syncWithFile( temp->getRemoteFileName( ), true ) ) 2339 if ( syncWithFile( temp->getRemoteFileNameAB( ), true ) )
2337 KABPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); 2340 KABPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileNameAB();
2338 } else { 2341 } else {
2339 if ( temp->getIsPhoneSync() ) { 2342 if ( temp->getIsPhoneSync() ) {
2340 KABPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; 2343 KABPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ;
2341 KABPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); 2344 KABPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( );
2342 KABPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); 2345 KABPrefs::instance()->mPhoneModel = temp->getPhoneModel( );
2343 syncPhone(); 2346 syncPhone();
@@ -2370,13 +2373,13 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask)
2370 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 2373 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
2371 question, 2374 question,
2372 i18n("Yes"), i18n("No"), 2375 i18n("Yes"), i18n("No"),
2373 0, 0 ) != 0 ) 2376 0, 0 ) != 0 )
2374 return; 2377 return;
2375 } 2378 }
2376 QString command = prof->getPreSyncCommand(); 2379 QString command = prof->getPreSyncCommandAB();
2377 int fi; 2380 int fi;
2378 if ( (fi = command.find("$PWD$")) > 0 ) { 2381 if ( (fi = command.find("$PWD$")) > 0 ) {
2379 QString pwd = getPassword(); 2382 QString pwd = getPassword();
2380 command = command.left( fi )+ pwd + command.mid( fi+5 ); 2383 command = command.left( fi )+ pwd + command.mid( fi+5 );
2381 2384
2382 } 2385 }
@@ -2402,19 +2405,19 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask)
2402 i18n("Okay!")) ; 2405 i18n("Okay!")) ;
2403 setCaption ("KO/Pi"); 2406 setCaption ("KO/Pi");
2404 return; 2407 return;
2405 } 2408 }
2406 setCaption ( i18n( "Copying succeed." ) ); 2409 setCaption ( i18n( "Copying succeed." ) );
2407 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); 2410 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() );
2408 if ( syncWithFile( prof->getLocalTempFile(), true ) ) { 2411 if ( syncWithFile( prof->getLocalTempFileAB(), true ) ) {
2409// Event* e = mView->getLastSyncEvent(); 2412// Event* e = mView->getLastSyncEvent();
2410// e->setReadOnly( false ); 2413// e->setReadOnly( false );
2411// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 2414// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
2412// e->setReadOnly( true ); 2415// e->setReadOnly( true );
2413 if ( KABPrefs::instance()->mWriteBackFile ) { 2416 if ( KABPrefs::instance()->mWriteBackFile ) {
2414 command = prof->getPostSyncCommand(); 2417 command = prof->getPostSyncCommandAB();
2415 int fi; 2418 int fi;
2416 if ( (fi = command.find("$PWD$")) > 0 ) { 2419 if ( (fi = command.find("$PWD$")) > 0 ) {
2417 QString pwd = getPassword(); 2420 QString pwd = getPassword();
2418 command = command.left( fi )+ pwd + command.mid( fi+5 ); 2421 command = command.left( fi )+ pwd + command.mid( fi+5 );
2419 2422
2420 } 2423 }
@@ -2507,32 +2510,98 @@ QString KABCore::getPassword( )
2507 retfile = lab.text(); 2510 retfile = lab.text();
2508 dia.hide(); 2511 dia.hide();
2509 qApp->processEvents(); 2512 qApp->processEvents();
2510 return retfile; 2513 return retfile;
2511 2514
2512} 2515}
2516bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode)
2517{
2513 2518
2519}
2514bool KABCore::syncAB(QString filename, int mode) 2520bool KABCore::syncAB(QString filename, int mode)
2515{ 2521{
2516 2522
2523
2524
2525 mGlobalSyncMode = SYNC_MODE_NORMAL;
2526 AddressBook abLocal(filename,"syncContact");
2527 bool syncOK = false;
2528 if ( abLocal.load() ) {
2529 qDebug("AB loaded %s mode %d",filename.latin1(), mode );
2530 AddressBook::Iterator it;
2531 QStringList vcards;
2532 for ( it = abLocal.begin(); it != abLocal.end(); ++it ) {
2533 qDebug("Name %s ", (*it).familyName().latin1());
2534 }
2535 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode );
2536 if ( syncOK ) {
2537 if ( KABPrefs::instance()->mWriteBackFile )
2538 {
2539 abLocal.saveAB();
2540 }
2541 }
2542 setModified();
2543
2544 }
2545 if ( syncOK )
2546 ;//updateView();
2547 return syncOK;
2548#if 0
2549 mGlobalSyncMode = SYNC_MODE_NORMAL;
2550 CalendarLocal* calendar = new CalendarLocal();
2551 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
2552 FileStorage* storage = new FileStorage( calendar );
2553 bool syncOK = false;
2554 storage->setFileName( filename );
2555 // qDebug("loading ... ");
2556 if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) {
2557 getEventViewerDialog()->setSyncMode( true );
2558 syncOK = synchronizeCalendar( mCalendar, calendar, mode );
2559 getEventViewerDialog()->setSyncMode( false );
2560 if ( syncOK ) {
2561 if ( KOPrefs::instance()->mWriteBackFile )
2562 {
2563 storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) );
2564 storage->save();
2565 }
2566 }
2567 setModified();
2568 }
2569 delete storage;
2570 delete calendar;
2571 if ( syncOK )
2572 updateView();
2573 return syncOK;
2574#endif
2517} 2575}
2518 2576
2519 2577
2520void KABCore::confSync() 2578void KABCore::confSync()
2521{ 2579{
2522 //mView->confSync(); 2580 static KSyncPrefsDialog* sp = 0;
2523 qDebug("pending KABCore::confSync() "); 2581 if ( ! sp ) {
2582 sp = new KSyncPrefsDialog( this, "syncprefs", true );
2583 }
2584 sp->usrReadConfig();
2585#ifndef DESKTOP_VERSION
2586 sp->showMaximized();
2587#else
2588 sp->show();
2589#endif
2590 sp->exec();
2591 KABPrefs::instance()->mSyncProfileNames = sp->getSyncProfileNames();
2592 KABPrefs::instance()->mLocalMachineName = sp->getLocalMachineName ();
2524 fillSyncMenu(); 2593 fillSyncMenu();
2525} 2594}
2526void KABCore::syncSharp() 2595void KABCore::syncSharp()
2527{ 2596{
2528 if ( mModified ) 2597 if ( mModified )
2529 save(); 2598 save();
2530 qDebug("pending syncSharp() "); 2599 qDebug("pending syncSharp() ");
2531 //mView->syncSharp(); 2600 //mView->syncSharp();
2532 mModified = true ; 2601 setModified();
2533 2602
2534} 2603}
2535void KABCore::syncPhone() 2604void KABCore::syncPhone()
2536{ 2605{
2537 if ( mModified ) 2606 if ( mModified )
2538 save(); 2607 save();
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
index 10ce8f4..4487a8a 100644
--- a/kaddressbook/kabcore.h
+++ b/kaddressbook/kabcore.h
@@ -453,13 +453,12 @@ class KABCore : public QWidget
453 KAddressBookMain *mMainWindow; // should be the same like mGUIClient 453 KAddressBookMain *mMainWindow; // should be the same like mGUIClient
454#endif //KAB_EMBEDDED 454#endif //KAB_EMBEDDED
455 // LR ******************************* 455 // LR *******************************
456 // sync stuff! 456 // sync stuff!
457 QPopupMenu *syncMenu; 457 QPopupMenu *syncMenu;
458 void fillSyncMenu(); 458 void fillSyncMenu();
459 void confSync();
460 QString mCurrentSyncDevice; 459 QString mCurrentSyncDevice;
461 QString mCurrentSyncName; 460 QString mCurrentSyncName;
462 void quickSyncLocalFile(); 461 void quickSyncLocalFile();
463 bool syncWithFile( QString fn , bool quick ); 462 bool syncWithFile( QString fn , bool quick );
464 void KABCore::syncLocalFile(); 463 void KABCore::syncLocalFile();
465 void KABCore::syncPhone(); 464 void KABCore::syncPhone();
@@ -468,11 +467,15 @@ class KABCore : public QWidget
468 int mCurrentSyncProfile ; 467 int mCurrentSyncProfile ;
469 void syncRemote( KSyncProfile* prof, bool ask = true); 468 void syncRemote( KSyncProfile* prof, bool ask = true);
470 void edit_sync_options(); 469 void edit_sync_options();
471 bool syncAB(QString filename, int mode); 470 bool syncAB(QString filename, int mode);
472 int ringSync(); 471 int ringSync();
473 QString getPassword( ); 472 QString getPassword( );
473 int mGlobalSyncMode;
474 bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode);
475 public slots:
476 void confSync();
474 // ********************* 477 // *********************
475 478
476}; 479};
477 480
478#endif 481#endif