summaryrefslogtreecommitdiffabout
path: root/libkdepim/ksyncmanager.cpp
Side-by-side diff
Diffstat (limited to 'libkdepim/ksyncmanager.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/ksyncmanager.cpp274
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();
+
+}