summaryrefslogtreecommitdiffabout
path: root/libkdepim
Unidiff
Diffstat (limited to 'libkdepim') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/ksyncmanager.cpp63
-rw-r--r--libkdepim/ksyncmanager.h4
2 files changed, 48 insertions, 19 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index 7ca3ee0..554c6e5 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -178,29 +178,44 @@ void KSyncManager::slotSyncMenu( int action )
178 } 178 }
179 179
180 if (blockSave()) 180 if (blockSave())
181 return; 181 return;
182 182
183 setBlockSave(true); 183 setBlockSave(true);
184 bool silent = false;
185 if ( action == 999 ) {
186 //special mode for silent syncing
187 action = 1000;
188 silent = true;
189 }
184 190
185 mCurrentSyncProfile = action - 1000 ; 191 mCurrentSyncProfile = action - 1000 ;
186 mCurrentSyncDevice = mSyncProfileNames[mCurrentSyncProfile] ; 192 mCurrentSyncDevice = mSyncProfileNames[mCurrentSyncProfile] ;
187 mCurrentSyncName = mLocalMachineName ; 193 mCurrentSyncName = mLocalMachineName ;
188 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 194 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
189 KSyncProfile* temp = new KSyncProfile (); 195 KSyncProfile* temp = new KSyncProfile ();
190 temp->setName(mSyncProfileNames[mCurrentSyncProfile]); 196 temp->setName(mSyncProfileNames[mCurrentSyncProfile]);
191 temp->readConfig(&config); 197 temp->readConfig(&config);
192 mAskForPreferences = temp->getAskForPreferences(); 198 if (silent) {
193 mSyncAlgoPrefs = temp->getSyncPrefs(); 199 mAskForPreferences = false;
194 mWriteBackFile = temp->getWriteBackFile(); 200 mShowSyncSummary = false;
201 mWriteBackFile = true;
202 mSyncAlgoPrefs = 2;// take newest
203 }
204 else {
205 mAskForPreferences = temp->getAskForPreferences();
206 mShowSyncSummary = temp->getShowSummaryAfterSync();
207 mWriteBackFile = temp->getWriteBackFile();
208 mSyncAlgoPrefs = temp->getSyncPrefs();
209 }
195 mWriteBackExistingOnly = temp->getWriteBackExisting(); 210 mWriteBackExistingOnly = temp->getWriteBackExisting();
196 mIsKapiFile = temp->getIsKapiFile(); 211 mIsKapiFile = temp->getIsKapiFile();
197 mWriteBackInFuture = 0; 212 mWriteBackInFuture = 0;
198 if ( temp->getWriteBackFuture() ) 213 if ( temp->getWriteBackFuture() )
199 mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 214 mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
200 mShowSyncSummary = temp->getShowSummaryAfterSync(); 215
201 if ( action == 1000 ) { 216 if ( action == 1000 ) {
202#ifdef DESKTOP_VERSION 217#ifdef DESKTOP_VERSION
203 syncKDE(); 218 syncKDE();
204#else 219#else
205 syncSharp(); 220 syncSharp();
206#endif 221#endif
@@ -299,12 +314,13 @@ void KSyncManager::enableQuick( bool ask )
299 QCheckBox syncdesktop( i18n("Automatically sync with Outlook\nwhen receiving sync request"),&dia ); 314 QCheckBox syncdesktop( i18n("Automatically sync with Outlook\nwhen receiving sync request"),&dia );
300#else 315#else
301 QCheckBox syncdesktop( i18n("Automatically sync with KDE-Desktop\nwhen receiving sync request"),&dia ); 316 QCheckBox syncdesktop( i18n("Automatically sync with KDE-Desktop\nwhen receiving sync request"),&dia );
302#endif 317#endif
303 lay.addWidget( &syncdesktop); 318 lay.addWidget( &syncdesktop);
304#else 319#else
320 mPrefs->mPassiveSyncWithDesktop = false;
305 QCheckBox syncdesktop( i18n("Automatically sync\nwith KDE-Desktop"),&dia ); 321 QCheckBox syncdesktop( i18n("Automatically sync\nwith KDE-Desktop"),&dia );
306 syncdesktop.hide(); 322 syncdesktop.hide();
307#endif 323#endif
308 syncdesktop.setChecked( mPrefs->mPassiveSyncWithDesktop ); 324 syncdesktop.setChecked( mPrefs->mPassiveSyncWithDesktop );
309 325
310 dia.setFixedSize( 230,120 ); 326 dia.setFixedSize( 230,120 );
@@ -413,13 +429,16 @@ bool KSyncManager::syncWithFile( QString fn , bool quick )
413 i18n("Sync"), i18n("Cancel"), 0, 429 i18n("Sync"), i18n("Cancel"), 0,
414 0, 1 ); 430 0, 1 );
415 if ( result ) 431 if ( result )
416 return false; 432 return false;
417 } 433 }
418 if ( mAskForPreferences ) 434 if ( mAskForPreferences )
419 edit_sync_options(); 435 if ( !edit_sync_options()) {
436 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
437 return false;
438 }
420 if ( result == 0 ) { 439 if ( result == 0 ) {
421 //qDebug("Now sycing ... "); 440 //qDebug("Now sycing ... ");
422 if ( ret = mImplementation->sync( this, fn, mSyncAlgoPrefs ) ) 441 if ( ret = mImplementation->sync( this, fn, mSyncAlgoPrefs ) )
423 mParent->topLevelWidget()->setCaption( i18n("Synchronization successful") ); 442 mParent->topLevelWidget()->setCaption( i18n("Synchronization successful") );
424 else 443 else
425 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled or failed. Nothing synced.") ); 444 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled or failed. Nothing synced.") );
@@ -452,13 +471,16 @@ void KSyncManager::multiSync( bool askforPrefs )
452 mParent->topLevelWidget()->setCaption(i18n("Aborted! Nothing synced!")); 471 mParent->topLevelWidget()->setCaption(i18n("Aborted! Nothing synced!"));
453 return; 472 return;
454 } 473 }
455 mCurrentSyncDevice = i18n("Multiple profiles") ; 474 mCurrentSyncDevice = i18n("Multiple profiles") ;
456 mSyncAlgoPrefs = mPrefs->mRingSyncAlgoPrefs; 475 mSyncAlgoPrefs = mPrefs->mRingSyncAlgoPrefs;
457 if ( askforPrefs ) { 476 if ( askforPrefs ) {
458 edit_sync_options(); 477 if ( !edit_sync_options()) {
478 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
479 return;
480 }
459 mPrefs->mRingSyncAlgoPrefs = mSyncAlgoPrefs; 481 mPrefs->mRingSyncAlgoPrefs = mSyncAlgoPrefs;
460 } 482 }
461 mParent->topLevelWidget()->setCaption(i18n("Multiple sync started.") ); 483 mParent->topLevelWidget()->setCaption(i18n("Multiple sync started.") );
462 qApp->processEvents(); 484 qApp->processEvents();
463 int num = ringSync() ; 485 int num = ringSync() ;
464 if ( num > 1 ) 486 if ( num > 1 )
@@ -684,13 +706,13 @@ void KSyncManager::syncRemote( KSyncProfile* prof, bool ask)
684 mParent->topLevelWidget()->setCaption ( i18n( "Syncronization sucessfully completed" ) ); 706 mParent->topLevelWidget()->setCaption ( i18n( "Syncronization sucessfully completed" ) );
685 } 707 }
686 } 708 }
687 } 709 }
688 return; 710 return;
689} 711}
690void KSyncManager::edit_pisync_options() 712bool KSyncManager::edit_pisync_options()
691{ 713{
692 QDialog dia( mParent, "dia", true ); 714 QDialog dia( mParent, "dia", true );
693 dia.setCaption( i18n("Pi-Sync options for device: " ) +mCurrentSyncDevice ); 715 dia.setCaption( i18n("Pi-Sync options for device: " ) +mCurrentSyncDevice );
694 QVBoxLayout lay ( &dia ); 716 QVBoxLayout lay ( &dia );
695 lay.setSpacing( 5 ); 717 lay.setSpacing( 5 );
696 lay.setMargin( 3 ); 718 lay.setMargin( 3 );
@@ -713,16 +735,17 @@ void KSyncManager::edit_pisync_options()
713 le2.setText( mActiveSyncIP ); 735 le2.setText( mActiveSyncIP );
714 le3.setText( mActiveSyncPort ); 736 le3.setText( mActiveSyncPort );
715 if ( dia.exec() ) { 737 if ( dia.exec() ) {
716 mPassWordPiSync = le1.text(); 738 mPassWordPiSync = le1.text();
717 mActiveSyncPort = le3.text(); 739 mActiveSyncPort = le3.text();
718 mActiveSyncIP = le2.text(); 740 mActiveSyncIP = le2.text();
741 return true;
719 } 742 }
720 743 return false;
721} 744}
722void KSyncManager::edit_sync_options() 745bool KSyncManager::edit_sync_options()
723{ 746{
724 747
725 QDialog dia( mParent, "dia", true ); 748 QDialog dia( mParent, "dia", true );
726 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); 749 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice );
727 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia); 750 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia);
728 QVBoxLayout lay ( &dia ); 751 QVBoxLayout lay ( &dia );
@@ -763,15 +786,15 @@ void KSyncManager::edit_sync_options()
763 break; 786 break;
764 default: 787 default:
765 break; 788 break;
766 } 789 }
767 if ( dia.exec() ) { 790 if ( dia.exec() ) {
768 mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; 791 mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ;
792 return true;
769 } 793 }
770 794 return false;
771
772} 795}
773 796
774QString KSyncManager::getPassword( ) 797QString KSyncManager::getPassword( )
775{ 798{
776 QString retfile = ""; 799 QString retfile = "";
777 QDialog dia ( mParent, "input-dialog", true ); 800 QDialog dia ( mParent, "input-dialog", true );
@@ -861,14 +884,17 @@ void KSyncManager::syncSharp()
861 884
862bool KSyncManager::syncExternalApplication(QString resource) 885bool KSyncManager::syncExternalApplication(QString resource)
863{ 886{
864 887
865 emit save(); 888 emit save();
866 889
867 if ( mAskForPreferences ) 890 if ( mAskForPreferences )
868 edit_sync_options(); 891 if ( !edit_sync_options()) {
892 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
893 return false;
894 }
869 895
870 qDebug("Sync extern %s", resource.latin1()); 896 qDebug("Sync extern %s", resource.latin1());
871 897
872 bool syncOK = mImplementation->syncExternal(this, resource); 898 bool syncOK = mImplementation->syncExternal(this, resource);
873 899
874 return syncOK; 900 return syncOK;
@@ -932,13 +958,16 @@ QString KSyncManager::syncFileName()
932 958
933void KSyncManager::syncPi() 959void KSyncManager::syncPi()
934{ 960{
935 mPisyncFinished = false; 961 mPisyncFinished = false;
936 qApp->processEvents(); 962 qApp->processEvents();
937 if ( mAskForPreferences ) 963 if ( mAskForPreferences )
938 edit_pisync_options(); 964 if ( !edit_pisync_options()) {
965 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
966 return;
967 }
939 bool ok; 968 bool ok;
940 Q_UINT16 port = mActiveSyncPort.toUInt(&ok); 969 Q_UINT16 port = mActiveSyncPort.toUInt(&ok);
941 if ( ! ok ) { 970 if ( ! ok ) {
942 mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); 971 mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") );
943 return; 972 return;
944 } 973 }
@@ -1163,17 +1192,17 @@ void KServerSocket::readBackFileFromSocket()
1163 mSyncActionDialog->setCaption( i18n("Writing file to disk...") ); 1192 mSyncActionDialog->setCaption( i18n("Writing file to disk...") );
1164 ts << piFileString; 1193 ts << piFileString;
1165 mSocket->close(); 1194 mSocket->close();
1166 if ( mSocket->state() == QSocket::Idle ) 1195 if ( mSocket->state() == QSocket::Idle )
1167 QTimer::singleShot( 10, this , SLOT ( discardClient())); 1196 QTimer::singleShot( 10, this , SLOT ( discardClient()));
1168 file.close(); 1197 file.close();
1198 piFileString = "";
1199 emit file_received( true );
1169 delete mSyncActionDialog; 1200 delete mSyncActionDialog;
1170 mSyncActionDialog = 0; 1201 mSyncActionDialog = 0;
1171 piFileString = "";
1172 blockRC = false; 1202 blockRC = false;
1173 emit file_received( true );
1174 1203
1175} 1204}
1176 1205
1177KCommandSocket::KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent, const char * name ): QObject( parent, name ) 1206KCommandSocket::KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent, const char * name ): QObject( parent, name )
1178{ 1207{
1179 mPassWord = password; 1208 mPassWord = password;
@@ -1196,13 +1225,13 @@ void KCommandSocket::readFile( QString fn )
1196 mFileName = fn; 1225 mFileName = fn;
1197 mFirst = true; 1226 mFirst = true;
1198 mSocket->connectToHost( mHost, mPort ); 1227 mSocket->connectToHost( mHost, mPort );
1199 QTextStream os( mSocket ); 1228 QTextStream os( mSocket );
1200 os.setEncoding( QTextStream::Latin1 ); 1229 os.setEncoding( QTextStream::Latin1 );
1201 os << "GET " << mPassWord << "\r\n"; 1230 os << "GET " << mPassWord << "\r\n";
1202 mTimerSocket->start( 10000 ); 1231 mTimerSocket->start( 20000 );
1203} 1232}
1204 1233
1205void KCommandSocket::writeFile( QString fileName ) 1234void KCommandSocket::writeFile( QString fileName )
1206{ 1235{
1207 if ( !mSocket ) { 1236 if ( !mSocket ) {
1208 mSocket = new QSocket( this ); 1237 mSocket = new QSocket( this );
diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h
index 7b9c499..4a610fa 100644
--- a/libkdepim/ksyncmanager.h
+++ b/libkdepim/ksyncmanager.h
@@ -171,14 +171,14 @@ class KSyncManager : public QObject
171 void syncPhone(); 171 void syncPhone();
172 void syncSharp(); 172 void syncSharp();
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 bool edit_sync_options();
178 void edit_pisync_options(); 178 bool edit_pisync_options();
179 int ringSync(); 179 int ringSync();
180 QString getPassword( ); 180 QString getPassword( );
181 bool mPisyncFinished; 181 bool mPisyncFinished;
182 bool mBlockSaveFlag; 182 bool mBlockSaveFlag;
183 QWidget* mParent; 183 QWidget* mParent;
184 KSyncInterface* mImplementation; 184 KSyncInterface* mImplementation;