summaryrefslogtreecommitdiffabout
path: root/libkdepim
authorzautrix <zautrix>2004-10-20 16:27:05 (UTC)
committer zautrix <zautrix>2004-10-20 16:27:05 (UTC)
commit46ea2933c9f67e77fb5c6cd93237efc755f28b62 (patch) (unidiff)
tree8025e9caceb2f62cd5b1d4b78b359545d38b39c5 /libkdepim
parent5cf3c1bce58a6487af166e637e54571e98156fd0 (diff)
downloadkdepimpi-46ea2933c9f67e77fb5c6cd93237efc755f28b62.zip
kdepimpi-46ea2933c9f67e77fb5c6cd93237efc755f28b62.tar.gz
kdepimpi-46ea2933c9f67e77fb5c6cd93237efc755f28b62.tar.bz2
made KDE sync perfect
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
@@ -176,33 +176,48 @@ void KSyncManager::slotSyncMenu( int action )
176 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 176 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
177 return; 177 return;
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
207 222
208 } else if ( action == 1001 ) { 223 } else if ( action == 1001 ) {
@@ -297,16 +312,17 @@ void KSyncManager::enableQuick( bool ask )
297#ifdef DESKTOP_VERSION 312#ifdef DESKTOP_VERSION
298#ifdef _WIN32_ 313#ifdef _WIN32_
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 );
311 dia.setCaption( i18n("Enter port for Pi-Sync") ); 327 dia.setCaption( i18n("Enter port for Pi-Sync") );
312 QPushButton pb ( "OK", &dia); 328 QPushButton pb ( "OK", &dia);
@@ -411,17 +427,20 @@ bool KSyncManager::syncWithFile( QString fn , bool quick )
411 result = QMessageBox::warning( mParent, i18n("Warning!"), 427 result = QMessageBox::warning( mParent, i18n("Warning!"),
412 mess, 428 mess,
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.") );
426 if ( ! quick ) 445 if ( ! quick )
427 mPrefs->mLastSyncedLocalFile = fn; 446 mPrefs->mLastSyncedLocalFile = fn;
@@ -450,17 +469,20 @@ void KSyncManager::multiSync( bool askforPrefs )
450 0, 0 ) != 0 ) { 469 0, 0 ) != 0 ) {
451 setBlockSave(false); 470 setBlockSave(false);
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 )
465 ringSync(); 487 ringSync();
466 setBlockSave(false); 488 setBlockSave(false);
@@ -682,17 +704,17 @@ void KSyncManager::syncRemote( KSyncProfile* prof, bool ask)
682 return; 704 return;
683 } else { 705 } else {
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 );
697 QLabel lab1 ( i18n("Password for remote access:"), &dia); 719 QLabel lab1 ( i18n("Password for remote access:"), &dia);
698 lay.addWidget( &lab1 ); 720 lay.addWidget( &lab1 );
@@ -711,20 +733,21 @@ void KSyncManager::edit_pisync_options()
711 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 733 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
712 le1.setText( mPassWordPiSync ); 734 le1.setText( mPassWordPiSync );
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 );
729 lay.setSpacing( 2 ); 752 lay.setSpacing( 2 );
730 lay.setMargin( 3 ); 753 lay.setMargin( 3 );
@@ -761,19 +784,19 @@ void KSyncManager::edit_sync_options()
761 case 6: 784 case 6:
762 // both.setChecked( true); 785 // both.setChecked( true);
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 );
778 QLineEdit lab ( &dia ); 801 QLineEdit lab ( &dia );
779 lab.setEchoMode( QLineEdit::Password ); 802 lab.setEchoMode( QLineEdit::Password );
@@ -859,18 +882,21 @@ void KSyncManager::syncSharp()
859 qDebug("ERROR sync sharp "); 882 qDebug("ERROR sync sharp ");
860} 883}
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;
875 901
876} 902}
@@ -930,17 +956,20 @@ QString KSyncManager::syncFileName()
930#endif 956#endif
931} 957}
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 }
945 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, mActiveSyncIP, this ); 974 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, mActiveSyncIP, this );
946 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 975 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
@@ -1161,21 +1190,21 @@ void KServerSocket::readBackFileFromSocket()
1161 QTextStream ts ( &file ); 1190 QTextStream ts ( &file );
1162 ts.setEncoding( QTextStream::Latin1 ); 1191 ts.setEncoding( QTextStream::Latin1 );
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;
1180 mSocket = 0; 1209 mSocket = 0;
1181 mPort = port; 1210 mPort = port;
@@ -1194,17 +1223,17 @@ void KCommandSocket::readFile( QString fn )
1194 } 1223 }
1195 mFileString = ""; 1224 mFileString = "";
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 );
1209 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 1238 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
1210 connect( mSocket, SIGNAL(connected ()), this, SLOT(writeFileToSocket()) ); 1239 connect( mSocket, SIGNAL(connected ()), this, SLOT(writeFileToSocket()) );
diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h
index 7b9c499..4a610fa 100644
--- a/libkdepim/ksyncmanager.h
+++ b/libkdepim/ksyncmanager.h
@@ -169,18 +169,18 @@ class KSyncManager : public QObject
169 bool syncWithFile( QString fn , bool quick ); 169 bool syncWithFile( QString fn , bool quick );
170 void syncLocalFile(); 170 void syncLocalFile();
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;
185 TargetApp mTargetApp; 185 TargetApp mTargetApp;
186 QPopupMenu* mSyncMenu; 186 QPopupMenu* mSyncMenu;