-rw-r--r-- | libkdepim/ksyncmanager.cpp | 24 | ||||
-rw-r--r-- | libkdepim/ksyncmanager.h | 9 |
2 files changed, 28 insertions, 5 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp index 7ee56e4..c6e06f8 100644 --- a/libkdepim/ksyncmanager.cpp +++ b/libkdepim/ksyncmanager.cpp | |||
@@ -141,17 +141,17 @@ void KSyncManager::fillSyncMenu() | |||
141 | mSyncMenu->removeItem( 1000 ); | 141 | mSyncMenu->removeItem( 1000 ); |
142 | } | 142 | } |
143 | #endif | 143 | #endif |
144 | mSyncMenu->removeItem( 1002 ); | 144 | mSyncMenu->removeItem( 1002 ); |
145 | } | 145 | } |
146 | 146 | ||
147 | void KSyncManager::slotSyncMenu( int action ) | 147 | void KSyncManager::slotSyncMenu( int action ) |
148 | { | 148 | { |
149 | //qDebug("syncaction %d ", action); | 149 | qDebug("syncaction %d ", action); |
150 | if ( action == 0 ) { | 150 | if ( action == 0 ) { |
151 | 151 | ||
152 | // seems to be a Qt2 event handling bug | 152 | // seems to be a Qt2 event handling bug |
153 | // syncmenu.clear causes a segfault at first time | 153 | // syncmenu.clear causes a segfault at first time |
154 | // when we call it after the main event loop, it is ok | 154 | // when we call it after the main event loop, it is ok |
155 | // same behaviour when calling OM/Pi via QCOP for the first time | 155 | // same behaviour when calling OM/Pi via QCOP for the first time |
156 | QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); | 156 | QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); |
157 | //confSync(); | 157 | //confSync(); |
@@ -249,16 +249,20 @@ void KSyncManager::slotSyncMenu( int action ) | |||
249 | mActiveSyncPort = temp->getRemotePort(); | 249 | mActiveSyncPort = temp->getRemotePort(); |
250 | mActiveSyncIP = temp->getRemoteIP(); | 250 | mActiveSyncIP = temp->getRemoteIP(); |
251 | } else { | 251 | } else { |
252 | mPassWordPiSync = temp->getRemotePwPWM(); | 252 | mPassWordPiSync = temp->getRemotePwPWM(); |
253 | mActiveSyncPort = temp->getRemotePortPWM(); | 253 | mActiveSyncPort = temp->getRemotePortPWM(); |
254 | mActiveSyncIP = temp->getRemoteIPPWM(); | 254 | mActiveSyncIP = temp->getRemoteIPPWM(); |
255 | } | 255 | } |
256 | syncPi(); | 256 | syncPi(); |
257 | while ( !mPisyncFinished ) { | ||
258 | //qDebug("waiting "); | ||
259 | qApp->processEvents(); | ||
260 | } | ||
257 | } else | 261 | } else |
258 | syncRemote( temp ); | 262 | syncRemote( temp ); |
259 | 263 | ||
260 | } | 264 | } |
261 | } | 265 | } |
262 | delete temp; | 266 | delete temp; |
263 | setBlockSave(false); | 267 | setBlockSave(false); |
264 | } | 268 | } |
@@ -467,17 +471,21 @@ int KSyncManager::ringSync() | |||
467 | mWriteBackExistingOnly = temp->getWriteBackExisting(); | 471 | mWriteBackExistingOnly = temp->getWriteBackExisting(); |
468 | mWriteBackInFuture = 0; | 472 | mWriteBackInFuture = 0; |
469 | if ( temp->getWriteBackFuture() ) | 473 | if ( temp->getWriteBackFuture() ) |
470 | mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); | 474 | mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); |
471 | mShowSyncSummary = false; | 475 | mShowSyncSummary = false; |
472 | mCurrentSyncDevice = syncProfileNames[i] ; | 476 | mCurrentSyncDevice = syncProfileNames[i] ; |
473 | mCurrentSyncName = mLocalMachineName; | 477 | mCurrentSyncName = mLocalMachineName; |
474 | if ( i == 0 ) { | 478 | if ( i == 0 ) { |
479 | #ifdef DESKTOP_VERSION | ||
480 | syncKDE(); | ||
481 | #else | ||
475 | syncSharp(); | 482 | syncSharp(); |
483 | #endif | ||
476 | } else { | 484 | } else { |
477 | if ( temp->getIsLocalFileSync() ) { | 485 | if ( temp->getIsLocalFileSync() ) { |
478 | switch(mTargetApp) | 486 | switch(mTargetApp) |
479 | { | 487 | { |
480 | case (KAPI): | 488 | case (KAPI): |
481 | if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) | 489 | if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) |
482 | mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); | 490 | mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); |
483 | break; | 491 | break; |
@@ -509,16 +517,24 @@ int KSyncManager::ringSync() | |||
509 | mActiveSyncPort = temp->getRemotePort(); | 517 | mActiveSyncPort = temp->getRemotePort(); |
510 | mActiveSyncIP = temp->getRemoteIP(); | 518 | mActiveSyncIP = temp->getRemoteIP(); |
511 | } else { | 519 | } else { |
512 | mPassWordPiSync = temp->getRemotePwPWM(); | 520 | mPassWordPiSync = temp->getRemotePwPWM(); |
513 | mActiveSyncPort = temp->getRemotePortPWM(); | 521 | mActiveSyncPort = temp->getRemotePortPWM(); |
514 | mActiveSyncIP = temp->getRemoteIPPWM(); | 522 | mActiveSyncIP = temp->getRemoteIPPWM(); |
515 | } | 523 | } |
516 | syncPi(); | 524 | syncPi(); |
525 | while ( !mPisyncFinished ) { | ||
526 | //qDebug("waiting "); | ||
527 | qApp->processEvents(); | ||
528 | } | ||
529 | timer.start(); | ||
530 | while ( timer.elapsed () < 2000 ) { | ||
531 | qApp->processEvents(); | ||
532 | } | ||
517 | } else | 533 | } else |
518 | syncRemote( temp, false ); | 534 | syncRemote( temp, false ); |
519 | 535 | ||
520 | } | 536 | } |
521 | } | 537 | } |
522 | timer.start(); | 538 | timer.start(); |
523 | mParent->topLevelWidget()->setCaption(i18n("Multiple sync in progress ... please wait!") ); | 539 | mParent->topLevelWidget()->setCaption(i18n("Multiple sync in progress ... please wait!") ); |
524 | while ( timer.elapsed () < 2000 ) { | 540 | while ( timer.elapsed () < 2000 ) { |
@@ -861,16 +877,17 @@ QString KSyncManager::syncFileName() | |||
861 | return locateLocal( "tmp", fn ); | 877 | return locateLocal( "tmp", fn ); |
862 | #else | 878 | #else |
863 | return (QString( "/tmp/" )+ fn ); | 879 | return (QString( "/tmp/" )+ fn ); |
864 | #endif | 880 | #endif |
865 | } | 881 | } |
866 | 882 | ||
867 | void KSyncManager::syncPi() | 883 | void KSyncManager::syncPi() |
868 | { | 884 | { |
885 | mPisyncFinished = false; | ||
869 | qApp->processEvents(); | 886 | qApp->processEvents(); |
870 | if ( mAskForPreferences ) | 887 | if ( mAskForPreferences ) |
871 | edit_pisync_options(); | 888 | edit_pisync_options(); |
872 | bool ok; | 889 | bool ok; |
873 | Q_UINT16 port = mActiveSyncPort.toUInt(&ok); | 890 | Q_UINT16 port = mActiveSyncPort.toUInt(&ok); |
874 | if ( ! ok ) { | 891 | if ( ! ok ) { |
875 | mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); | 892 | mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); |
876 | return; | 893 | return; |
@@ -887,46 +904,51 @@ void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state) | |||
887 | if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) { | 904 | if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) { |
888 | mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); | 905 | mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); |
889 | delete s; | 906 | delete s; |
890 | if ( state == KCommandSocket::errorR ) { | 907 | if ( state == KCommandSocket::errorR ) { |
891 | KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this ); | 908 | KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this ); |
892 | connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); | 909 | connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); |
893 | commandSocket->sendStop(); | 910 | commandSocket->sendStop(); |
894 | } | 911 | } |
912 | mPisyncFinished = true; | ||
895 | return; | 913 | return; |
896 | 914 | ||
897 | } else if ( state == KCommandSocket::errorW ) { | 915 | } else if ( state == KCommandSocket::errorW ) { |
898 | mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") ); | 916 | mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") ); |
917 | mPisyncFinished = true; | ||
899 | 918 | ||
900 | } else if ( state == KCommandSocket::successR ) { | 919 | } else if ( state == KCommandSocket::successR ) { |
901 | QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); | 920 | QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); |
902 | 921 | ||
903 | } else if ( state == KCommandSocket::successW ) { | 922 | } else if ( state == KCommandSocket::successW ) { |
904 | mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); | 923 | mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); |
924 | mPisyncFinished = true; | ||
905 | } | 925 | } |
906 | 926 | ||
907 | delete s; | 927 | delete s; |
908 | } | 928 | } |
909 | 929 | ||
910 | void KSyncManager::readFileFromSocket() | 930 | void KSyncManager::readFileFromSocket() |
911 | { | 931 | { |
912 | QString fileName = syncFileName(); | 932 | QString fileName = syncFileName(); |
913 | mParent->topLevelWidget()->setCaption( i18n("Remote file saved to temp file.") ); | 933 | mParent->topLevelWidget()->setCaption( i18n("Remote file saved to temp file.") ); |
914 | if ( ! syncWithFile( fileName , true ) ) { | 934 | if ( ! syncWithFile( fileName , true ) ) { |
915 | mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") ); | 935 | mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") ); |
936 | mPisyncFinished = true; | ||
916 | return; | 937 | return; |
917 | } | 938 | } |
918 | KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this ); | 939 | KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this ); |
919 | connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); | 940 | connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); |
920 | if ( mWriteBackFile ) | 941 | if ( mWriteBackFile ) |
921 | commandSocket->writeFile( fileName ); | 942 | commandSocket->writeFile( fileName ); |
922 | else { | 943 | else { |
923 | commandSocket->sendStop(); | 944 | commandSocket->sendStop(); |
924 | mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); | 945 | mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); |
946 | mPisyncFinished = true; | ||
925 | } | 947 | } |
926 | } | 948 | } |
927 | 949 | ||
928 | KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ) | 950 | KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ) |
929 | { | 951 | { |
930 | mPassWord = pw; | 952 | mPassWord = pw; |
931 | mSocket = 0; | 953 | mSocket = 0; |
932 | mSyncActionDialog = 0; | 954 | mSyncActionDialog = 0; |
diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h index 7d5b05e..ffb1ea4 100644 --- a/libkdepim/ksyncmanager.h +++ b/libkdepim/ksyncmanager.h | |||
@@ -173,27 +173,28 @@ class KSyncManager : public QObject | |||
173 | void syncKDE(); | 173 | void syncKDE(); |
174 | bool syncExternalApplication(QString); | 174 | bool syncExternalApplication(QString); |
175 | int mCurrentSyncProfile ; | 175 | int mCurrentSyncProfile ; |
176 | void syncRemote( KSyncProfile* prof, bool ask = true); | 176 | void syncRemote( KSyncProfile* prof, bool ask = true); |
177 | void edit_sync_options(); | 177 | void edit_sync_options(); |
178 | void edit_pisync_options(); | 178 | void edit_pisync_options(); |
179 | int ringSync(); | 179 | int ringSync(); |
180 | QString getPassword( ); | 180 | QString getPassword( ); |
181 | 181 | bool mPisyncFinished; | |
182 | private slots: | ||
183 | void confSync(); | ||
184 | private: | ||
185 | bool mBlockSaveFlag; | 182 | bool mBlockSaveFlag; |
186 | QWidget* mParent; | 183 | QWidget* mParent; |
187 | KSyncInterface* mImplementation; | 184 | KSyncInterface* mImplementation; |
188 | TargetApp mTargetApp; | 185 | TargetApp mTargetApp; |
189 | QPopupMenu* mSyncMenu; | 186 | QPopupMenu* mSyncMenu; |
190 | QProgressBar* bar; | 187 | QProgressBar* bar; |
191 | 188 | ||
189 | private slots: | ||
190 | void confSync(); | ||
191 | |||
192 | |||
192 | }; | 193 | }; |
193 | 194 | ||
194 | 195 | ||
195 | class KSyncInterface | 196 | class KSyncInterface |
196 | { | 197 | { |
197 | public : | 198 | public : |
198 | virtual bool sync(KSyncManager* manager, QString filename, int mode) = 0; | 199 | virtual bool sync(KSyncManager* manager, QString filename, int mode) = 0; |
199 | virtual bool syncExternal(KSyncManager* manager, QString resource) | 200 | virtual bool syncExternal(KSyncManager* manager, QString resource) |