summaryrefslogtreecommitdiffabout
path: root/libkdepim
Side-by-side diff
Diffstat (limited to 'libkdepim') (more/less context) (show whitespace changes)
-rw-r--r--libkdepim/ksyncmanager.cpp174
-rw-r--r--libkdepim/ksyncmanager.h14
2 files changed, 167 insertions, 21 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index 87f200a..07e6761 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -36,2 +36,3 @@
#include <qdir.h>
+#include <qprogressbar.h>
#include <qpopupmenu.h>
@@ -55,2 +56,12 @@ KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, Targ
{
+ bar = new QProgressBar ( 1, 0 );
+ bar->setCaption ("");
+
+ int w = 300;
+ if ( QApplication::desktop()->width() < 320 )
+ w = 220;
+ int h = bar->sizeHint().height() ;
+ int dw = QApplication::desktop()->width();
+ int dh = QApplication::desktop()->height();
+ bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
@@ -60,3 +71,3 @@ KSyncManager::~KSyncManager()
{
-
+ delete bar;
}
@@ -100,3 +111,2 @@ void KSyncManager::fillSyncMenu()
for ( i = 0; i < prof.count(); ++i ) {
-
mSyncMenu->insertItem( prof[i], 1000+i );
@@ -106,4 +116,8 @@ void KSyncManager::fillSyncMenu()
QDir app_dir;
- if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
- mSyncMenu->setItemEnabled( false , 1000 );
+ //US do not display SharpDTM if app is pwmpi, or no sharpfiles available
+ if ( mTargetApp == PWMPI) {
+ mSyncMenu->removeItem( 1000 );
+ }
+ else if (!app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
+ mSyncMenu->setItemEnabled( 1000, false );
}
@@ -163,5 +177,21 @@ void KSyncManager::slotSyncMenu( int action )
if ( temp->getIsLocalFileSync() ) {
+ switch(mTargetApp)
+ {
+ case (KAPI):
if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) )
mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB();
+ break;
+ case (KOPI):
+ if ( syncWithFile( temp->getRemoteFileName( ), false ) )
+ mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName();
+ break;
+ case (PWMPI):
+ if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) )
+ mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM();
+ break;
+ default:
+ qDebug("KSyncManager::slotSyncMenu: invalid apptype selected");
+ break;
+ }
} else {
@@ -185,4 +215,22 @@ void KSyncManager::syncLocalFile()
QString fn =mPrefs->mLastSyncedLocalFile;
+ QString ext;
- fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), mParent );
+ switch(mTargetApp)
+ {
+ case (KAPI):
+ ext = "(*.vcf)";
+ break;
+ case (KOPI):
+ ext = "(*.ics/*.vcs)";
+ break;
+ case (PWMPI):
+ ext = "(*.pwm)";
+ break;
+ default:
+ qDebug("KSyncManager::syncLocalFile: invalid apptype selected");
+ break;
+
+ }
+
+ fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename"+ext), mParent );
if ( fn == "" )
@@ -286,3 +334,23 @@ int KSyncManager::ringSync()
temp->readConfig(&config);
- if ( temp->getIncludeInRingSyncAB() && ( i < 1 || i > 2 )) {
+
+ QString includeInRingSync;
+ switch(mTargetApp)
+ {
+ case (KAPI):
+ includeInRingSync = temp->getIncludeInRingSyncAB();
+ break;
+ case (KOPI):
+ includeInRingSync = temp->getIncludeInRingSync();
+ break;
+ case (PWMPI):
+ includeInRingSync = temp->getIncludeInRingSyncPWM();
+ break;
+ default:
+ qDebug("KSyncManager::ringSync: invalid apptype selected");
+ break;
+
+ }
+
+
+ if ( includeInRingSync && ( i < 1 || i > 2 )) {
mParent->setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... "));
@@ -302,4 +370,20 @@ int KSyncManager::ringSync()
if ( temp->getIsLocalFileSync() ) {
- if ( syncWithFile( temp->getRemoteFileNameAB( ), true ) )
+ switch(mTargetApp)
+ {
+ case (KAPI):
+ if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) )
mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB();
+ break;
+ case (KOPI):
+ if ( syncWithFile( temp->getRemoteFileName( ), false ) )
+ mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName();
+ break;
+ case (PWMPI):
+ if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) )
+ mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM();
+ break;
+ default:
+ qDebug("KSyncManager::slotSyncMenu: invalid apptype selected");
+ break;
+ }
} else {
@@ -342,7 +426,34 @@ void KSyncManager::syncRemote( KSyncProfile* prof, bool ask)
}
- QString command = prof->getPreSyncCommandAB();
+
+ QString preCommand;
+ QString localTempFile;
+ QString postCommand;
+
+ switch(mTargetApp)
+ {
+ case (KAPI):
+ preCommand = prof->getPreSyncCommandAB();
+ postCommand = prof->getPostSyncCommandAB();
+ localTempFile = prof->getLocalTempFileAB();
+ break;
+ case (KOPI):
+ preCommand = prof->getPreSyncCommand();
+ postCommand = prof->getPostSyncCommand();
+ localTempFile = prof->getLocalTempFile();
+ break;
+ case (PWMPI):
+ preCommand = prof->getPreSyncCommandPWM();
+ postCommand = prof->getPostSyncCommandPWM();
+ localTempFile = prof->getLocalTempFilePWM();
+ break;
+ default:
+ qDebug("KSyncManager::syncRemote: invalid apptype selected");
+ break;
+ }
+
+
int fi;
- if ( (fi = command.find("$PWD$")) > 0 ) {
+ if ( (fi = preCommand.find("$PWD$")) > 0 ) {
QString pwd = getPassword();
- command = command.left( fi )+ pwd + command.mid( fi+5 );
+ preCommand = preCommand.left( fi )+ pwd + preCommand.mid( fi+5 );
@@ -354,3 +465,3 @@ void KSyncManager::syncRemote( KSyncProfile* prof, bool ask)
int fileSize = 0;
- int result = system ( command );
+ int result = system ( preCommand );
// 0 : okay
@@ -361,7 +472,7 @@ void KSyncManager::syncRemote( KSyncProfile* prof, bool ask)
unsigned int len = maxlen;
- while ( len < command.length() ) {
- command.insert( len , "\n" );
+ while ( len < preCommand.length() ) {
+ preCommand.insert( len , "\n" );
len += maxlen +2;
}
- 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) ;
+ 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 (preCommand) ;
QMessageBox::information( mParent, i18n("Sync - ERROR"),
@@ -374,3 +485,6 @@ void KSyncManager::syncRemote( KSyncProfile* prof, bool ask)
//qDebug(" file **%s** ",prof->getLocalTempFile().latin1() );
- if ( syncWithFile( prof->getLocalTempFileAB(), true ) ) {
+
+
+
+ if ( syncWithFile( localTempFile, true ) ) {
// Event* e = mView->getLastSyncEvent();
@@ -380,7 +494,6 @@ void KSyncManager::syncRemote( KSyncProfile* prof, bool ask)
if ( mPrefs->mWriteBackFile ) {
- command = prof->getPostSyncCommandAB();
int fi;
- if ( (fi = command.find("$PWD$")) > 0 ) {
+ if ( (fi = postCommand.find("$PWD$")) > 0 ) {
QString pwd = getPassword();
- command = command.left( fi )+ pwd + command.mid( fi+5 );
+ postCommand = postCommand.left( fi )+ pwd + postCommand.mid( fi+5 );
@@ -388,3 +501,3 @@ void KSyncManager::syncRemote( KSyncProfile* prof, bool ask)
mParent->setCaption ( i18n( "Writing back file ..." ) );
- result = system ( command );
+ result = system ( postCommand );
qDebug("Writing back file result: %d ", result);
@@ -529 +642,24 @@ void KSyncManager::syncPhone()
}
+
+void KSyncManager::showProgressBar(int percentage, QString caption, int total)
+{
+ if (!bar->isVisible())
+ {
+ bar->setCaption (caption);
+ bar->setTotalSteps ( total ) ;
+
+ bar->show();
+ }
+
+ bar->setProgress( percentage );
+}
+
+void KSyncManager::hideProgressBar()
+{
+ bar->hide();
+}
+
+bool KSyncManager::isProgressBarCanceled()
+{
+ return !bar->isVisible();
+}
diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h
index 389a005..9761107 100644
--- a/libkdepim/ksyncmanager.h
+++ b/libkdepim/ksyncmanager.h
@@ -33,2 +33,3 @@ class KSyncManager;
class KSyncInterface;
+class QProgressBar;
@@ -56,2 +57,7 @@ class KSyncManager : public QObject
+ void showProgressBar(int percentage, QString caption = QString::null, int total=100);
+ void hideProgressBar();
+ bool isProgressBarCanceled();
+
+
public slots:
@@ -91,3 +97,3 @@ class KSyncManager : public QObject
-
+ QProgressBar* bar;
@@ -104,4 +110,8 @@ class KSyncInterface
virtual bool sync(KSyncManager* manager, QString filename, int mode) = 0;
- virtual bool syncExternal(KSyncManager* manager, QString resource) = 0;
+ virtual bool syncExternal(KSyncManager* manager, QString resource)
+ {
+ // empty implementation, because some syncable applications do not have an external(sharpdtm) syncmode, like pwmanager.
+ return false;
+ }