-rw-r--r-- | libkdepim/ksyncmanager.cpp | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp index 719d80b..61a9899 100644 --- a/libkdepim/ksyncmanager.cpp +++ b/libkdepim/ksyncmanager.cpp | |||
@@ -294,65 +294,65 @@ void KSyncManager::slotSyncMenu( int action ) | |||
294 | { | 294 | { |
295 | case (KAPI): | 295 | case (KAPI): |
296 | if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) | 296 | if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) |
297 | mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); | 297 | mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); |
298 | break; | 298 | break; |
299 | case (KOPI): | 299 | case (KOPI): |
300 | if ( syncWithFile( temp->getRemoteFileName( ), false ) ) | 300 | if ( syncWithFile( temp->getRemoteFileName( ), false ) ) |
301 | mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName(); | 301 | mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName(); |
302 | break; | 302 | break; |
303 | case (PWMPI): | 303 | case (PWMPI): |
304 | if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) ) | 304 | if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) ) |
305 | mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM(); | 305 | mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM(); |
306 | break; | 306 | break; |
307 | default: | 307 | default: |
308 | qDebug("KSM::slotSyncMenu: invalid apptype selected"); | 308 | qDebug("KSM::slotSyncMenu: invalid apptype selected"); |
309 | break; | 309 | break; |
310 | 310 | ||
311 | } | 311 | } |
312 | } else { | 312 | } else { |
313 | if ( temp->getIsPhoneSync() ) { | 313 | if ( temp->getIsPhoneSync() ) { |
314 | mPhoneDevice = temp->getPhoneDevice( ) ; | 314 | mPhoneDevice = temp->getPhoneDevice( ) ; |
315 | mPhoneConnection = temp->getPhoneConnection( ); | 315 | mPhoneConnection = temp->getPhoneConnection( ); |
316 | mPhoneModel = temp->getPhoneModel( ); | 316 | mPhoneModel = temp->getPhoneModel( ); |
317 | syncPhone(); | 317 | syncPhone(); |
318 | } else if ( temp->getIsPiSync()|| temp->getIsPiSyncSpec()) { | 318 | } else if ( temp->getIsPiSync()|| temp->getIsPiSyncSpec()) { |
319 | mSpecificResources.clear(); | 319 | mSpecificResources.clear(); |
320 | if ( mTargetApp == KAPI ) { | 320 | if ( mTargetApp == KAPI ) { |
321 | mPassWordPiSync = temp->getRemotePwAB(); | 321 | mPassWordPiSync = temp->getRemotePwAB(); |
322 | mActiveSyncPort = temp->getRemotePortAB(); | 322 | mActiveSyncPort = temp->getRemotePortAB(); |
323 | mActiveSyncIP = temp->getRemoteIPAB(); | 323 | mActiveSyncIP = temp->getRemoteIPAB(); |
324 | } else if ( mTargetApp == KOPI ) { | 324 | } else if ( mTargetApp == KOPI ) { |
325 | if ( temp->getIsPiSyncSpec() ) | 325 | if ( temp->getIsPiSyncSpec() ) |
326 | mSpecificResources = QStringList::split( ":", temp->getResSpecKopi() ); | 326 | mSpecificResources = QStringList::split( ":", temp->getResSpecKopi(),true ); |
327 | mPassWordPiSync = temp->getRemotePw(); | 327 | mPassWordPiSync = temp->getRemotePw(); |
328 | mActiveSyncPort = temp->getRemotePort(); | 328 | mActiveSyncPort = temp->getRemotePort(); |
329 | mActiveSyncIP = temp->getRemoteIP(); | 329 | mActiveSyncIP = temp->getRemoteIP(); |
330 | } else { | 330 | } else { |
331 | mPassWordPiSync = temp->getRemotePwPWM(); | 331 | mPassWordPiSync = temp->getRemotePwPWM(); |
332 | mActiveSyncPort = temp->getRemotePortPWM(); | 332 | mActiveSyncPort = temp->getRemotePortPWM(); |
333 | mActiveSyncIP = temp->getRemoteIPPWM(); | 333 | mActiveSyncIP = temp->getRemoteIPPWM(); |
334 | } | 334 | } |
335 | syncPi(); | 335 | syncPi(); |
336 | while ( !mPisyncFinished ) { | 336 | while ( !mPisyncFinished ) { |
337 | //qDebug("waiting "); | 337 | //qDebug("waiting "); |
338 | qApp->processEvents(); | 338 | qApp->processEvents(); |
339 | } | 339 | } |
340 | } else | 340 | } else |
341 | syncRemote( temp ); | 341 | syncRemote( temp ); |
342 | 342 | ||
343 | } | 343 | } |
344 | } | 344 | } |
345 | delete temp; | 345 | delete temp; |
346 | setBlockSave(false); | 346 | setBlockSave(false); |
347 | } | 347 | } |
348 | 348 | ||
349 | void KSyncManager::enableQuick( bool ask ) | 349 | void KSyncManager::enableQuick( bool ask ) |
350 | { | 350 | { |
351 | bool autoStart; | 351 | bool autoStart; |
352 | bool changed = false; | 352 | bool changed = false; |
353 | if ( ask ) { | 353 | if ( ask ) { |
354 | QDialog dia ( 0, "input-dialog", true ); | 354 | QDialog dia ( 0, "input-dialog", true ); |
355 | QLineEdit lab ( &dia ); | 355 | QLineEdit lab ( &dia ); |
356 | QVBoxLayout lay( &dia ); | 356 | QVBoxLayout lay( &dia ); |
357 | lab.setText( mPrefs->mPassiveSyncPort ); | 357 | lab.setText( mPrefs->mPassiveSyncPort ); |
358 | lay.setMargin(7); | 358 | lay.setMargin(7); |
@@ -636,65 +636,65 @@ int KSyncManager::ringSync() | |||
636 | if ( temp->getIsLocalFileSync() ) { | 636 | if ( temp->getIsLocalFileSync() ) { |
637 | switch(mTargetApp) | 637 | switch(mTargetApp) |
638 | { | 638 | { |
639 | case (KAPI): | 639 | case (KAPI): |
640 | if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) | 640 | if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) |
641 | mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); | 641 | mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); |
642 | break; | 642 | break; |
643 | case (KOPI): | 643 | case (KOPI): |
644 | if ( syncWithFile( temp->getRemoteFileName( ), false ) ) | 644 | if ( syncWithFile( temp->getRemoteFileName( ), false ) ) |
645 | mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName(); | 645 | mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName(); |
646 | break; | 646 | break; |
647 | case (PWMPI): | 647 | case (PWMPI): |
648 | if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) ) | 648 | if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) ) |
649 | mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM(); | 649 | mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM(); |
650 | break; | 650 | break; |
651 | default: | 651 | default: |
652 | qDebug("KSM: invalid apptype selected"); | 652 | qDebug("KSM: invalid apptype selected"); |
653 | break; | 653 | break; |
654 | } | 654 | } |
655 | } else { | 655 | } else { |
656 | if ( temp->getIsPhoneSync() ) { | 656 | if ( temp->getIsPhoneSync() ) { |
657 | mPhoneDevice = temp->getPhoneDevice( ) ; | 657 | mPhoneDevice = temp->getPhoneDevice( ) ; |
658 | mPhoneConnection = temp->getPhoneConnection( ); | 658 | mPhoneConnection = temp->getPhoneConnection( ); |
659 | mPhoneModel = temp->getPhoneModel( ); | 659 | mPhoneModel = temp->getPhoneModel( ); |
660 | syncPhone(); | 660 | syncPhone(); |
661 | } else if ( temp->getIsPiSync() || temp->getIsPiSyncSpec()) { | 661 | } else if ( temp->getIsPiSync() || temp->getIsPiSyncSpec()) { |
662 | mSpecificResources.clear(); | 662 | mSpecificResources.clear(); |
663 | if ( mTargetApp == KAPI ) { | 663 | if ( mTargetApp == KAPI ) { |
664 | mPassWordPiSync = temp->getRemotePwAB(); | 664 | mPassWordPiSync = temp->getRemotePwAB(); |
665 | mActiveSyncPort = temp->getRemotePortAB(); | 665 | mActiveSyncPort = temp->getRemotePortAB(); |
666 | mActiveSyncIP = temp->getRemoteIPAB(); | 666 | mActiveSyncIP = temp->getRemoteIPAB(); |
667 | } else if ( mTargetApp == KOPI ) { | 667 | } else if ( mTargetApp == KOPI ) { |
668 | mSpecificResources = QStringList::split( ":", temp->getResSpecKopi() ); | 668 | mSpecificResources = QStringList::split( ":", temp->getResSpecKopi(),true ); |
669 | mPassWordPiSync = temp->getRemotePw(); | 669 | mPassWordPiSync = temp->getRemotePw(); |
670 | mActiveSyncPort = temp->getRemotePort(); | 670 | mActiveSyncPort = temp->getRemotePort(); |
671 | mActiveSyncIP = temp->getRemoteIP(); | 671 | mActiveSyncIP = temp->getRemoteIP(); |
672 | } else { | 672 | } else { |
673 | mPassWordPiSync = temp->getRemotePwPWM(); | 673 | mPassWordPiSync = temp->getRemotePwPWM(); |
674 | mActiveSyncPort = temp->getRemotePortPWM(); | 674 | mActiveSyncPort = temp->getRemotePortPWM(); |
675 | mActiveSyncIP = temp->getRemoteIPPWM(); | 675 | mActiveSyncIP = temp->getRemoteIPPWM(); |
676 | } | 676 | } |
677 | syncPi(); | 677 | syncPi(); |
678 | while ( !mPisyncFinished ) { | 678 | while ( !mPisyncFinished ) { |
679 | //qDebug("waiting "); | 679 | //qDebug("waiting "); |
680 | qApp->processEvents(); | 680 | qApp->processEvents(); |
681 | } | 681 | } |
682 | timer.start(); | 682 | timer.start(); |
683 | while ( timer.elapsed () < 2000 ) { | 683 | while ( timer.elapsed () < 2000 ) { |
684 | qApp->processEvents(); | 684 | qApp->processEvents(); |
685 | } | 685 | } |
686 | } else | 686 | } else |
687 | syncRemote( temp, false ); | 687 | syncRemote( temp, false ); |
688 | 688 | ||
689 | } | 689 | } |
690 | } | 690 | } |
691 | timer.start(); | 691 | timer.start(); |
692 | mParent->topLevelWidget()->setCaption(i18n("Multiple sync in progress ... please wait!") ); | 692 | mParent->topLevelWidget()->setCaption(i18n("Multiple sync in progress ... please wait!") ); |
693 | while ( timer.elapsed () < 2000 ) { | 693 | while ( timer.elapsed () < 2000 ) { |
694 | qApp->processEvents(); | 694 | qApp->processEvents(); |
695 | #ifndef _WIN32_ | 695 | #ifndef _WIN32_ |
696 | sleep (1); | 696 | sleep (1); |
697 | #endif | 697 | #endif |
698 | } | 698 | } |
699 | 699 | ||
700 | } | 700 | } |
@@ -1112,79 +1112,88 @@ QString KSyncManager::syncFileName() | |||
1112 | break; | 1112 | break; |
1113 | default: | 1113 | default: |
1114 | break; | 1114 | break; |
1115 | } | 1115 | } |
1116 | #ifdef DESKTOP_VERSION | 1116 | #ifdef DESKTOP_VERSION |
1117 | return locateLocal( "tmp", fn ); | 1117 | return locateLocal( "tmp", fn ); |
1118 | #else | 1118 | #else |
1119 | return (QString( "/tmp/" )+ fn ); | 1119 | return (QString( "/tmp/" )+ fn ); |
1120 | #endif | 1120 | #endif |
1121 | } | 1121 | } |
1122 | 1122 | ||
1123 | void KSyncManager::syncPi() | 1123 | void KSyncManager::syncPi() |
1124 | { | 1124 | { |
1125 | mIsKapiFile = true; | 1125 | mIsKapiFile = true; |
1126 | mPisyncFinished = false; | 1126 | mPisyncFinished = false; |
1127 | qApp->processEvents(); | 1127 | qApp->processEvents(); |
1128 | if ( mAskForPreferences ) | 1128 | if ( mAskForPreferences ) |
1129 | if ( !edit_pisync_options()) { | 1129 | if ( !edit_pisync_options()) { |
1130 | mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); | 1130 | mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); |
1131 | mPisyncFinished = true; | 1131 | mPisyncFinished = true; |
1132 | return; | 1132 | return; |
1133 | } | 1133 | } |
1134 | bool ok; | 1134 | bool ok; |
1135 | Q_UINT16 port = mActiveSyncPort.toUInt(&ok); | 1135 | Q_UINT16 port = mActiveSyncPort.toUInt(&ok); |
1136 | if ( ! ok ) { | 1136 | if ( ! ok ) { |
1137 | mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); | 1137 | mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); |
1138 | mPisyncFinished = true; | 1138 | mPisyncFinished = true; |
1139 | return; | 1139 | return; |
1140 | } | 1140 | } |
1141 | mCurrentResourceLocal = ""; | 1141 | mCurrentResourceLocal = ""; |
1142 | mCurrentResourceRemote = ""; | 1142 | mCurrentResourceRemote = ""; |
1143 | if ( mSpecificResources.count() ) { | 1143 | if ( mSpecificResources.count() ) { |
1144 | int lastSyncRes = mSpecificResources.count()/2; | ||
1145 | int ccc = mSpecificResources.count()-1; | ||
1146 | while ( lastSyncRes > 0 && ccc > 0 && mSpecificResources[ ccc ].isEmpty() ) { | ||
1147 | --ccc; | ||
1148 | --lastSyncRes; | ||
1149 | } | ||
1144 | int startLocal = 0; | 1150 | int startLocal = 0; |
1145 | int startRemote = mSpecificResources.count()/2; | 1151 | int startRemote = mSpecificResources.count()/2; |
1146 | emit multiResourceSyncStart( true ); | 1152 | emit multiResourceSyncStart( true ); |
1147 | while ( startLocal < mSpecificResources.count()/2 ) { | 1153 | while ( startLocal < mSpecificResources.count()/2 ) { |
1148 | if ( startLocal+1 >= mSpecificResources.count()/2 ) | 1154 | if ( startLocal+1 >= lastSyncRes ) |
1149 | emit multiResourceSyncStart( false ); | 1155 | emit multiResourceSyncStart( false ); |
1150 | mPisyncFinished = false; | 1156 | mPisyncFinished = false; |
1151 | mCurrentResourceLocal = mSpecificResources[ startLocal ]; | 1157 | mCurrentResourceLocal = mSpecificResources[ startLocal ]; |
1152 | mCurrentResourceRemote = mSpecificResources[ startRemote ]; | 1158 | mCurrentResourceRemote = mSpecificResources[ startRemote ]; |
1153 | KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote, mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); | 1159 | if ( !mCurrentResourceRemote.isEmpty() ) { |
1154 | connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); | 1160 | qDebug ( "KSM: Syncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() ); |
1155 | commandSocket->readFile( syncFileName() ); | 1161 | KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote, mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); |
1156 | while ( !mPisyncFinished ) { | 1162 | connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); |
1157 | //qDebug("waiting "); | 1163 | commandSocket->readFile( syncFileName() ); |
1158 | qApp->processEvents(); | 1164 | while ( !mPisyncFinished ) { |
1165 | //qDebug("waiting "); | ||
1166 | qApp->processEvents(); | ||
1167 | } | ||
1159 | } | 1168 | } |
1160 | ++startLocal; | 1169 | ++startLocal; |
1161 | } | 1170 | } |
1162 | } else { | 1171 | } else { |
1163 | KCommandSocket* commandSocket = new KCommandSocket( "", mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); | 1172 | KCommandSocket* commandSocket = new KCommandSocket( "", mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); |
1164 | connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); | 1173 | connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); |
1165 | commandSocket->readFile( syncFileName() ); | 1174 | commandSocket->readFile( syncFileName() ); |
1166 | } | 1175 | } |
1167 | } | 1176 | } |
1168 | 1177 | ||
1169 | void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state) | 1178 | void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state) |
1170 | { | 1179 | { |
1171 | //enum { success, errorW, errorR, quiet }; | 1180 | //enum { success, errorW, errorR, quiet }; |
1172 | 1181 | ||
1173 | 1182 | ||
1174 | 1183 | ||
1175 | if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW || | 1184 | if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW || |
1176 | state == KCommandSocket::errorCA ||state == KCommandSocket::errorFI ||state == KCommandSocket::errorUN||state == KCommandSocket::errorED ) { | 1185 | state == KCommandSocket::errorCA ||state == KCommandSocket::errorFI ||state == KCommandSocket::errorUN||state == KCommandSocket::errorED ) { |
1177 | if ( state == KCommandSocket::errorPW ) | 1186 | if ( state == KCommandSocket::errorPW ) |
1178 | mParent->topLevelWidget()->setCaption( i18n("Wrong password: Receiving remote file failed.") ); | 1187 | mParent->topLevelWidget()->setCaption( i18n("Wrong password: Receiving remote file failed.") ); |
1179 | else if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) | 1188 | else if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) |
1180 | mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); | 1189 | mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); |
1181 | else if ( state == KCommandSocket::errorCA ) | 1190 | else if ( state == KCommandSocket::errorCA ) |
1182 | mParent->topLevelWidget()->setCaption( i18n("Sync cancelled from remote.") ); | 1191 | mParent->topLevelWidget()->setCaption( i18n("Sync cancelled from remote.") ); |
1183 | else if ( state == KCommandSocket::errorFI ) | 1192 | else if ( state == KCommandSocket::errorFI ) |
1184 | mParent->topLevelWidget()->setCaption( i18n("File error on remote.") ); | 1193 | mParent->topLevelWidget()->setCaption( i18n("File error on remote.") ); |
1185 | else if ( state == KCommandSocket::errorED ) | 1194 | else if ( state == KCommandSocket::errorED ) |
1186 | mParent->topLevelWidget()->setCaption( i18n("Please close error dialog on remote.") ); | 1195 | mParent->topLevelWidget()->setCaption( i18n("Please close error dialog on remote.") ); |
1187 | else if ( state == KCommandSocket::errorUN ) | 1196 | else if ( state == KCommandSocket::errorUN ) |
1188 | mParent->topLevelWidget()->setCaption( i18n("Unknown error on remote.") ); | 1197 | mParent->topLevelWidget()->setCaption( i18n("Unknown error on remote.") ); |
1189 | delete s; | 1198 | delete s; |
1190 | if ( state == KCommandSocket::errorR ) { | 1199 | if ( state == KCommandSocket::errorR ) { |