-rw-r--r-- | libkdepim/ksyncmanager.cpp | 274 |
1 files changed, 174 insertions, 100 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp index 52e3bd9..87f200a 100644 --- a/libkdepim/ksyncmanager.cpp +++ b/libkdepim/ksyncmanager.cpp @@ -24,5 +24,32 @@ +#include <stdlib.h> -KSyncManager::KSyncManager(TargetApp ta, QPopupMenu* syncmenu) - : mSyncMenu(syncmenu), mTargetApp(ta) +#ifndef _WIN32_ +#include <unistd.h> +#endif + + +#include "ksyncprofile.h" +#include "ksyncprefsdialog.h" +#include "kpimprefs.h" + +#include <qdir.h> +#include <qpopupmenu.h> +#include <qpushbutton.h> +#include <qradiobutton.h> +#include <qbuttongroup.h> +#include <qtimer.h> +#include <qmessagebox.h> +#include <qapplication.h> +#include <qlineedit.h> +#include <qdialog.h> +#include <qlayout.h> + +#include <klocale.h> +#include <kglobal.h> +#include <kconfig.h> +#include <kfiledialog.h> + +KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu) + : QObject(), mParent(parent), mImplementation(implementation), mTargetApp(ta), mPrefs(prefs), mSyncMenu(syncmenu) { @@ -37,6 +64,6 @@ KSyncManager::~KSyncManager() -void KABCore::fillSyncMenu() +void KSyncManager::fillSyncMenu() { if ( mSyncMenu->count() ) - msyncMenu->clear(); + mSyncMenu->clear(); @@ -50,3 +77,3 @@ void KABCore::fillSyncMenu() QStringList prof = config.readListEntry("SyncProfileNames"); - //US KABPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); + mPrefs->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); if ( prof.count() < 3 ) { @@ -69,7 +96,5 @@ void KABCore::fillSyncMenu() } - /*US - KABPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); - KABPrefs::instance()->mSyncProfileNames = prof; - */ - int i; + mPrefs->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); + mPrefs->mSyncProfileNames = prof; + unsigned int i; for ( i = 0; i < prof.count(); ++i ) { @@ -87,3 +112,4 @@ void KABCore::fillSyncMenu() } -void KABCore::slotSyncMenu( int action ) + +void KSyncManager::slotSyncMenu( int action ) { @@ -106,22 +132,22 @@ void KABCore::slotSyncMenu( int action ) - if (mBlockSaveFlag) + if (blockSave()) return; - mBlockSaveFlag = true; + + setBlockSave(true); + mCurrentSyncProfile = action - 1000 ; - //US mCurrentSyncDevice = KABPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ; - //US mCurrentSyncName = KABPrefs::instance()->mLocalMachineName ; + mCurrentSyncDevice = mPrefs->mSyncProfileNames[mCurrentSyncProfile] ; + mCurrentSyncName = mPrefs->mLocalMachineName ; KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); KSyncProfile* temp = new KSyncProfile (); - //US temp->setName(KABPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); + temp->setName(mPrefs->mSyncProfileNames[mCurrentSyncProfile]); temp->readConfig(&config); - /*US - KABPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); - KABPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); - KABPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); - KABPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); - KABPrefs::instance()->mWriteBackInFuture = 0; + mPrefs->mAskForPreferences = temp->getAskForPreferences(); + mPrefs->mSyncAlgoPrefs = temp->getSyncPrefs(); + mPrefs->mWriteBackFile = temp->getWriteBackFile(); + mPrefs->mWriteBackExistingOnly = temp->getWriteBackExisting(); + mPrefs->mWriteBackInFuture = 0; if ( temp->getWriteBackFuture() ) - KABPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); - KABPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); - */ + mPrefs->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); + mPrefs->mShowSyncSummary = temp->getShowSummaryAfterSync(); if ( action == 1000 ) { @@ -137,12 +163,10 @@ void KABCore::slotSyncMenu( int action ) if ( temp->getIsLocalFileSync() ) { - /*US if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) - KABPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); - */ + if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) + mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); + } else { if ( temp->getIsPhoneSync() ) { - /* - KABPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; - KABPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); - KABPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); - */ + mPrefs->mPhoneDevice = temp->getPhoneDevice( ) ; + mPrefs->mPhoneConnection = temp->getPhoneConnection( ); + mPrefs->mPhoneModel = temp->getPhoneModel( ); syncPhone(); @@ -154,11 +178,11 @@ void KABCore::slotSyncMenu( int action ) delete temp; - mBlockSaveFlag = false; + setBlockSave(false); } -void KABCore::syncLocalFile() +void KSyncManager::syncLocalFile() { - QString fn =KABPrefs::instance()->mLastSyncedLocalFile; + QString fn =mPrefs->mLastSyncedLocalFile; - fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); + fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), mParent ); if ( fn == "" ) @@ -170,3 +194,3 @@ void KABCore::syncLocalFile() } -bool KABCore::syncWithFile( QString fn , bool quick ) +bool KSyncManager::syncWithFile( QString fn , bool quick ) { @@ -179,3 +203,3 @@ bool KABCore::syncWithFile( QString fn , bool quick ) mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); - int result = QMessageBox::warning( this, i18n("Warning!"), + int result = QMessageBox::warning( mParent, i18n("Warning!"), mess ); @@ -186,3 +210,3 @@ bool KABCore::syncWithFile( QString fn , bool quick ) mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); - result = QMessageBox::warning( this, i18n("Warning!"), + result = QMessageBox::warning( mParent, i18n("Warning!"), mess, @@ -193,3 +217,3 @@ bool KABCore::syncWithFile( QString fn , bool quick ) } - if ( KABPrefs::instance()->mAskForPreferences ) + if ( mPrefs->mAskForPreferences ) edit_sync_options(); @@ -197,9 +221,9 @@ bool KABCore::syncWithFile( QString fn , bool quick ) //qDebug("Now sycing ... "); - if ( ret = syncAB( fn, KABPrefs::instance()->mSyncAlgoPrefs ) ) - setCaption( i18n("Synchronization successful") ); + if ( ret = mImplementation->sync( this, fn, mPrefs->mSyncAlgoPrefs ) ) + mParent->setCaption( i18n("Synchronization successful") ); else - setCaption( i18n("Sync cancelled or failed. Nothing synced.") ); + mParent->setCaption( i18n("Sync cancelled or failed. Nothing synced.") ); if ( ! quick ) - KABPrefs::instance()->mLastSyncedLocalFile = fn; - setModified(); + mPrefs->mLastSyncedLocalFile = fn; + mImplementation->sync_setModified(); } @@ -207,6 +231,6 @@ bool KABCore::syncWithFile( QString fn , bool quick ) } -void KABCore::quickSyncLocalFile() +void KSyncManager::quickSyncLocalFile() { - if ( syncWithFile( KABPrefs::instance()->mLastSyncedLocalFile, false ) ) { + if ( syncWithFile( mPrefs->mLastSyncedLocalFile, false ) ) { qDebug("quick syncLocalFile() successful "); @@ -215,9 +239,9 @@ void KABCore::quickSyncLocalFile() } -void KABCore::multiSync( bool askforPrefs ) +void KSyncManager::multiSync( bool askforPrefs ) { - if (mBlockSaveFlag) + if (blockSave()) return; - mBlockSaveFlag = true; + setBlockSave(true); QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); - if ( QMessageBox::information( this, i18n("KO/Pi Sync"), + if ( QMessageBox::information( mParent, i18n("Sync"), question, @@ -225,4 +249,4 @@ void KABCore::multiSync( bool askforPrefs ) 0, 0 ) != 0 ) { - mBlockSaveFlag = false; - setCaption(i18n("Aborted! Nothing synced!")); + setBlockSave(false); + mParent->setCaption(i18n("Aborted! Nothing synced!")); return; @@ -230,8 +254,8 @@ void KABCore::multiSync( bool askforPrefs ) mCurrentSyncDevice = i18n("Multiple profiles") ; - KABPrefs::instance()->mSyncAlgoPrefs = KABPrefs::instance()->mRingSyncAlgoPrefs; + mPrefs->mSyncAlgoPrefs = mPrefs->mRingSyncAlgoPrefs; if ( askforPrefs ) { edit_sync_options(); - KABPrefs::instance()->mRingSyncAlgoPrefs = KABPrefs::instance()->mSyncAlgoPrefs; + mPrefs->mRingSyncAlgoPrefs = mPrefs->mSyncAlgoPrefs; } - setCaption(i18n("Multiple sync started.") ); + mParent->setCaption(i18n("Multiple sync started.") ); qApp->processEvents(); @@ -240,20 +264,20 @@ void KABCore::multiSync( bool askforPrefs ) ringSync(); - mBlockSaveFlag = false; + setBlockSave(false); if ( num ) - save(); + mImplementation->sync_save(); if ( num ) - setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); + mParent->setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); else - setCaption(i18n("Nothing synced! No profiles defined for multisync!")); + mParent->setCaption(i18n("Nothing synced! No profiles defined for multisync!")); return; } -int KABCore::ringSync() +int KSyncManager::ringSync() { int syncedProfiles = 0; - int i; + unsigned int i; QTime timer; KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); - QStringList syncProfileNames = KABPrefs::instance()->mSyncProfileNames; + QStringList syncProfileNames = mPrefs->mSyncProfileNames; KSyncProfile* temp = new KSyncProfile (); - KABPrefs::instance()->mAskForPreferences = false; + mPrefs->mAskForPreferences = false; for ( i = 0; i < syncProfileNames.count(); ++i ) { @@ -263,13 +287,13 @@ int KABCore::ringSync() if ( temp->getIncludeInRingSyncAB() && ( i < 1 || i > 2 )) { - setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); + mParent->setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); ++syncedProfiles; - // KABPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); - KABPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); - KABPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); - KABPrefs::instance()->mWriteBackInFuture = 0; + // mPrefs->mAskForPreferences = temp->getAskForPreferences(); + mPrefs->mWriteBackFile = temp->getWriteBackFile(); + mPrefs->mWriteBackExistingOnly = temp->getWriteBackExisting(); + mPrefs->mWriteBackInFuture = 0; if ( temp->getWriteBackFuture() ) - KABPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); - KABPrefs::instance()->mShowSyncSummary = false; + mPrefs->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); + mPrefs->mShowSyncSummary = false; mCurrentSyncDevice = syncProfileNames[i] ; - mCurrentSyncName = KABPrefs::instance()->mLocalMachineName; + mCurrentSyncName = mPrefs->mLocalMachineName; if ( i == 0 ) { @@ -279,8 +303,8 @@ int KABCore::ringSync() if ( syncWithFile( temp->getRemoteFileNameAB( ), true ) ) - KABPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); + mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); } else { if ( temp->getIsPhoneSync() ) { - KABPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; - KABPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); - KABPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); + mPrefs->mPhoneDevice = temp->getPhoneDevice( ) ; + mPrefs->mPhoneConnection = temp->getPhoneConnection( ); + mPrefs->mPhoneModel = temp->getPhoneModel( ); syncPhone(); @@ -292,3 +316,3 @@ int KABCore::ringSync() timer.start(); - setCaption(i18n("Multiple sync in progress ... please wait!") ); + mParent->setCaption(i18n("Multiple sync in progress ... please wait!") ); while ( timer.elapsed () < 2000 ) { @@ -307,3 +331,3 @@ int KABCore::ringSync() -void KABCore::syncRemote( KSyncProfile* prof, bool ask) +void KSyncManager::syncRemote( KSyncProfile* prof, bool ask) { @@ -312,3 +336,3 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask) question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; - if ( QMessageBox::information( this, i18n("KO/Pi Sync"), + if ( QMessageBox::information( mParent, i18n("Sync"), question, @@ -328,3 +352,3 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask) maxlen += 25; - setCaption ( i18n( "Copy remote file to local machine..." ) ); + mParent->setCaption ( i18n( "Copy remote file to local machine..." ) ); int fileSize = 0; @@ -336,3 +360,3 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask) if ( result != 0 ) { - int len = maxlen; + unsigned int len = maxlen; while ( len < command.length() ) { @@ -342,9 +366,9 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask) question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; - QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), + QMessageBox::information( mParent, i18n("Sync - ERROR"), question, i18n("Okay!")) ; - setCaption ("KO/Pi"); + mParent->setCaption (""); return; } - setCaption ( i18n( "Copying succeed." ) ); + mParent->setCaption ( i18n( "Copying succeed." ) ); //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); @@ -355,3 +379,3 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask) // e->setReadOnly( true ); - if ( KABPrefs::instance()->mWriteBackFile ) { + if ( mPrefs->mWriteBackFile ) { command = prof->getPostSyncCommandAB(); @@ -363,10 +387,10 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask) } - setCaption ( i18n( "Writing back file ..." ) ); + mParent->setCaption ( i18n( "Writing back file ..." ) ); result = system ( command ); - qDebug("KO: Writing back file result: %d ", result); + qDebug("Writing back file result: %d ", result); if ( result != 0 ) { - setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); + mParent->setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); return; } else { - setCaption ( i18n( "Syncronization sucessfully completed" ) ); + mParent->setCaption ( i18n( "Syncronization sucessfully completed" ) ); } @@ -376,10 +400,8 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask) } -#include <qpushbutton.h> -#include <qradiobutton.h> -#include <qbuttongroup.h> -void KABCore::edit_sync_options() + +void KSyncManager::edit_sync_options() { //mDialogManager->showSyncOptions(); - //KABPrefs::instance()->mSyncAlgoPrefs - QDialog dia( this, "dia", true ); + //mPrefs->mSyncAlgoPrefs + QDialog dia( mParent, "dia", true ); dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); @@ -400,3 +422,3 @@ void KABCore::edit_sync_options() connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); - switch ( KABPrefs::instance()->mSyncAlgoPrefs ) { + switch ( mPrefs->mSyncAlgoPrefs ) { case 0: @@ -426,3 +448,3 @@ void KABCore::edit_sync_options() if ( dia.exec() ) { - KABPrefs::instance()->mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; + mPrefs->mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; } @@ -431,6 +453,6 @@ void KABCore::edit_sync_options() } -QString KABCore::getPassword( ) +QString KSyncManager::getPassword( ) { QString retfile = ""; - QDialog dia ( this, "input-dialog", true ); + QDialog dia ( mParent, "input-dialog", true ); QLineEdit lab ( &dia ); @@ -455 +477,53 @@ QString KABCore::getPassword( ) } + + +void KSyncManager::confSync() +{ + static KSyncPrefsDialog* sp = 0; + if ( ! sp ) { + sp = new KSyncPrefsDialog( mParent, "syncprefs", true ); + } + sp->usrReadConfig(); +#ifndef DESKTOP_VERSION + sp->showMaximized(); +#else + sp->show(); +#endif + sp->exec(); + mPrefs->mSyncProfileNames = sp->getSyncProfileNames(); + mPrefs->mLocalMachineName = sp->getLocalMachineName (); + fillSyncMenu(); +} + +void KSyncManager::syncSharp() +{ + if ( ! syncExternalApplication("sharp") ) + qDebug("ERROR sync sharp ");; +} + +bool KSyncManager::syncExternalApplication(QString resource) +{ + if ( mImplementation->sync_isModified() ) + mImplementation->sync_save(); + + if ( mPrefs->mAskForPreferences ) + edit_sync_options(); + + qDebug("sync %s", resource.latin1()); + + bool syncOK = mImplementation->syncExternal(this, resource); + + return syncOK; + +} + +void KSyncManager::syncPhone() +{ + if ( mImplementation->sync_isModified() ) + mImplementation->sync_save(); + + qDebug("pending syncPhone(); "); + //mView->syncPhone(); + mImplementation->sync_setModified(); + +} |