summaryrefslogtreecommitdiffabout
path: root/libkdepim
authorulf69 <ulf69>2004-10-01 05:22:45 (UTC)
committer ulf69 <ulf69>2004-10-01 05:22:45 (UTC)
commitae6aaaf2ec81317d275ebaabba2de188279b58cd (patch) (unidiff)
treef773df13a4e4f9fa5c6c54d01786e2de561ae661 /libkdepim
parent11c2acda0533e579512cf416de870328a79e66e8 (diff)
downloadkdepimpi-ae6aaaf2ec81317d275ebaabba2de188279b58cd.zip
kdepimpi-ae6aaaf2ec81317d275ebaabba2de188279b58cd.tar.gz
kdepimpi-ae6aaaf2ec81317d275ebaabba2de188279b58cd.tar.bz2
moved the global sync stuff from kabcore into a new class ksyncmanaager which
can be used from all types of applications, like kapi, kopi and pwmpi
Diffstat (limited to 'libkdepim') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/kpimprefs.h21
-rw-r--r--libkdepim/ksyncmanager.cpp274
-rw-r--r--libkdepim/ksyncmanager.h79
-rw-r--r--libkdepim/libkdepimE.pro2
4 files changed, 262 insertions, 114 deletions
diff --git a/libkdepim/kpimprefs.h b/libkdepim/kpimprefs.h
index 860665b..01c57a3 100644
--- a/libkdepim/kpimprefs.h
+++ b/libkdepim/kpimprefs.h
@@ -58,2 +58,20 @@ class KPimPrefs : public KPrefs
58 58
59 // sync stuff
60 QString mLocalMachineName;
61 QStringList mExternSyncProfiles;
62 QStringList mSyncProfileNames;
63 bool mAskForPreferences;
64 bool mShowSyncSummary;
65 bool mShowSyncEvents;
66 bool mShowTodoInAgenda;
67 bool mWriteBackExistingOnly;
68 int mSyncAlgoPrefs;
69 int mRingSyncAlgoPrefs;
70 bool mWriteBackFile;
71 int mWriteBackInFuture;
72 QString mPhoneDevice;
73 QString mPhoneConnection;
74 QString mPhoneModel;
75 QString mLastSyncedLocalFile; // save!
76
59 77
@@ -61,2 +79,5 @@ class KPimPrefs : public KPrefs
61 virtual void setCategoryDefaults(); 79 virtual void setCategoryDefaults();
80
81
82
62}; 83};
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index 52e3bd9..87f200a 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -24,5 +24,32 @@
24 24
25#include <stdlib.h>
25 26
26KSyncManager::KSyncManager(TargetApp ta, QPopupMenu* syncmenu) 27#ifndef _WIN32_
27 : mSyncMenu(syncmenu), mTargetApp(ta) 28#include <unistd.h>
29#endif
30
31
32#include "ksyncprofile.h"
33#include "ksyncprefsdialog.h"
34#include "kpimprefs.h"
35
36#include <qdir.h>
37#include <qpopupmenu.h>
38#include <qpushbutton.h>
39#include <qradiobutton.h>
40#include <qbuttongroup.h>
41#include <qtimer.h>
42#include <qmessagebox.h>
43#include <qapplication.h>
44#include <qlineedit.h>
45#include <qdialog.h>
46#include <qlayout.h>
47
48#include <klocale.h>
49#include <kglobal.h>
50#include <kconfig.h>
51#include <kfiledialog.h>
52
53KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu)
54 : QObject(), mParent(parent), mImplementation(implementation), mTargetApp(ta), mPrefs(prefs), mSyncMenu(syncmenu)
28{ 55{
@@ -37,6 +64,6 @@ KSyncManager::~KSyncManager()
37 64
38void KABCore::fillSyncMenu() 65void KSyncManager::fillSyncMenu()
39{ 66{
40 if ( mSyncMenu->count() ) 67 if ( mSyncMenu->count() )
41 msyncMenu->clear(); 68 mSyncMenu->clear();
42 69
@@ -50,3 +77,3 @@ void KABCore::fillSyncMenu()
50 QStringList prof = config.readListEntry("SyncProfileNames"); 77 QStringList prof = config.readListEntry("SyncProfileNames");
51 //US KABPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); 78 mPrefs->mLocalMachineName = config.readEntry("LocalMachineName","undefined");
52 if ( prof.count() < 3 ) { 79 if ( prof.count() < 3 ) {
@@ -69,7 +96,5 @@ void KABCore::fillSyncMenu()
69 } 96 }
70 /*US 97 mPrefs->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles");
71 KABPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); 98 mPrefs->mSyncProfileNames = prof;
72 KABPrefs::instance()->mSyncProfileNames = prof; 99 unsigned int i;
73 */
74 int i;
75 for ( i = 0; i < prof.count(); ++i ) { 100 for ( i = 0; i < prof.count(); ++i ) {
@@ -87,3 +112,4 @@ void KABCore::fillSyncMenu()
87} 112}
88void KABCore::slotSyncMenu( int action ) 113
114void KSyncManager::slotSyncMenu( int action )
89{ 115{
@@ -106,22 +132,22 @@ void KABCore::slotSyncMenu( int action )
106 132
107 if (mBlockSaveFlag) 133 if (blockSave())
108 return; 134 return;
109 mBlockSaveFlag = true; 135
136 setBlockSave(true);
137
110 mCurrentSyncProfile = action - 1000 ; 138 mCurrentSyncProfile = action - 1000 ;
111 //US mCurrentSyncDevice = KABPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ; 139 mCurrentSyncDevice = mPrefs->mSyncProfileNames[mCurrentSyncProfile] ;
112 //US mCurrentSyncName = KABPrefs::instance()->mLocalMachineName ; 140 mCurrentSyncName = mPrefs->mLocalMachineName ;
113 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 141 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
114 KSyncProfile* temp = new KSyncProfile (); 142 KSyncProfile* temp = new KSyncProfile ();
115 //US temp->setName(KABPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 143 temp->setName(mPrefs->mSyncProfileNames[mCurrentSyncProfile]);
116 temp->readConfig(&config); 144 temp->readConfig(&config);
117 /*US 145 mPrefs->mAskForPreferences = temp->getAskForPreferences();
118 KABPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 146 mPrefs->mSyncAlgoPrefs = temp->getSyncPrefs();
119 KABPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); 147 mPrefs->mWriteBackFile = temp->getWriteBackFile();
120 KABPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 148 mPrefs->mWriteBackExistingOnly = temp->getWriteBackExisting();
121 KABPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 149 mPrefs->mWriteBackInFuture = 0;
122 KABPrefs::instance()->mWriteBackInFuture = 0;
123 if ( temp->getWriteBackFuture() ) 150 if ( temp->getWriteBackFuture() )
124 KABPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 151 mPrefs->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
125 KABPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); 152 mPrefs->mShowSyncSummary = temp->getShowSummaryAfterSync();
126 */
127 if ( action == 1000 ) { 153 if ( action == 1000 ) {
@@ -137,12 +163,10 @@ void KABCore::slotSyncMenu( int action )
137 if ( temp->getIsLocalFileSync() ) { 163 if ( temp->getIsLocalFileSync() ) {
138 /*US if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) 164 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) )
139 KABPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); 165 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB();
140 */ 166
141 } else { 167 } else {
142 if ( temp->getIsPhoneSync() ) { 168 if ( temp->getIsPhoneSync() ) {
143 /* 169 mPrefs->mPhoneDevice = temp->getPhoneDevice( ) ;
144 KABPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; 170 mPrefs->mPhoneConnection = temp->getPhoneConnection( );
145 KABPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); 171 mPrefs->mPhoneModel = temp->getPhoneModel( );
146 KABPrefs::instance()->mPhoneModel = temp->getPhoneModel( );
147 */
148 syncPhone(); 172 syncPhone();
@@ -154,11 +178,11 @@ void KABCore::slotSyncMenu( int action )
154 delete temp; 178 delete temp;
155 mBlockSaveFlag = false; 179 setBlockSave(false);
156} 180}
157 181
158void KABCore::syncLocalFile() 182void KSyncManager::syncLocalFile()
159{ 183{
160 184
161 QString fn =KABPrefs::instance()->mLastSyncedLocalFile; 185 QString fn =mPrefs->mLastSyncedLocalFile;
162 186
163 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); 187 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), mParent );
164 if ( fn == "" ) 188 if ( fn == "" )
@@ -170,3 +194,3 @@ void KABCore::syncLocalFile()
170} 194}
171bool KABCore::syncWithFile( QString fn , bool quick ) 195bool KSyncManager::syncWithFile( QString fn , bool quick )
172{ 196{
@@ -179,3 +203,3 @@ bool KABCore::syncWithFile( QString fn , bool quick )
179 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); 203 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) );
180 int result = QMessageBox::warning( this, i18n("Warning!"), 204 int result = QMessageBox::warning( mParent, i18n("Warning!"),
181 mess ); 205 mess );
@@ -186,3 +210,3 @@ bool KABCore::syncWithFile( QString fn , bool quick )
186 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 210 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
187 result = QMessageBox::warning( this, i18n("Warning!"), 211 result = QMessageBox::warning( mParent, i18n("Warning!"),
188 mess, 212 mess,
@@ -193,3 +217,3 @@ bool KABCore::syncWithFile( QString fn , bool quick )
193 } 217 }
194 if ( KABPrefs::instance()->mAskForPreferences ) 218 if ( mPrefs->mAskForPreferences )
195 edit_sync_options(); 219 edit_sync_options();
@@ -197,9 +221,9 @@ bool KABCore::syncWithFile( QString fn , bool quick )
197 //qDebug("Now sycing ... "); 221 //qDebug("Now sycing ... ");
198 if ( ret = syncAB( fn, KABPrefs::instance()->mSyncAlgoPrefs ) ) 222 if ( ret = mImplementation->sync( this, fn, mPrefs->mSyncAlgoPrefs ) )
199 setCaption( i18n("Synchronization successful") ); 223 mParent->setCaption( i18n("Synchronization successful") );
200 else 224 else
201 setCaption( i18n("Sync cancelled or failed. Nothing synced.") ); 225 mParent->setCaption( i18n("Sync cancelled or failed. Nothing synced.") );
202 if ( ! quick ) 226 if ( ! quick )
203 KABPrefs::instance()->mLastSyncedLocalFile = fn; 227 mPrefs->mLastSyncedLocalFile = fn;
204 setModified(); 228 mImplementation->sync_setModified();
205 } 229 }
@@ -207,6 +231,6 @@ bool KABCore::syncWithFile( QString fn , bool quick )
207} 231}
208void KABCore::quickSyncLocalFile() 232void KSyncManager::quickSyncLocalFile()
209{ 233{
210 234
211 if ( syncWithFile( KABPrefs::instance()->mLastSyncedLocalFile, false ) ) { 235 if ( syncWithFile( mPrefs->mLastSyncedLocalFile, false ) ) {
212 qDebug("quick syncLocalFile() successful "); 236 qDebug("quick syncLocalFile() successful ");
@@ -215,9 +239,9 @@ void KABCore::quickSyncLocalFile()
215} 239}
216void KABCore::multiSync( bool askforPrefs ) 240void KSyncManager::multiSync( bool askforPrefs )
217{ 241{
218 if (mBlockSaveFlag) 242 if (blockSave())
219 return; 243 return;
220 mBlockSaveFlag = true; 244 setBlockSave(true);
221 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); 245 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!");
222 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 246 if ( QMessageBox::information( mParent, i18n("Sync"),
223 question, 247 question,
@@ -225,4 +249,4 @@ void KABCore::multiSync( bool askforPrefs )
225 0, 0 ) != 0 ) { 249 0, 0 ) != 0 ) {
226 mBlockSaveFlag = false; 250 setBlockSave(false);
227 setCaption(i18n("Aborted! Nothing synced!")); 251 mParent->setCaption(i18n("Aborted! Nothing synced!"));
228 return; 252 return;
@@ -230,8 +254,8 @@ void KABCore::multiSync( bool askforPrefs )
230 mCurrentSyncDevice = i18n("Multiple profiles") ; 254 mCurrentSyncDevice = i18n("Multiple profiles") ;
231 KABPrefs::instance()->mSyncAlgoPrefs = KABPrefs::instance()->mRingSyncAlgoPrefs; 255 mPrefs->mSyncAlgoPrefs = mPrefs->mRingSyncAlgoPrefs;
232 if ( askforPrefs ) { 256 if ( askforPrefs ) {
233 edit_sync_options(); 257 edit_sync_options();
234 KABPrefs::instance()->mRingSyncAlgoPrefs = KABPrefs::instance()->mSyncAlgoPrefs; 258 mPrefs->mRingSyncAlgoPrefs = mPrefs->mSyncAlgoPrefs;
235 } 259 }
236 setCaption(i18n("Multiple sync started.") ); 260 mParent->setCaption(i18n("Multiple sync started.") );
237 qApp->processEvents(); 261 qApp->processEvents();
@@ -240,20 +264,20 @@ void KABCore::multiSync( bool askforPrefs )
240 ringSync(); 264 ringSync();
241 mBlockSaveFlag = false; 265 setBlockSave(false);
242 if ( num ) 266 if ( num )
243 save(); 267 mImplementation->sync_save();
244 if ( num ) 268 if ( num )
245 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); 269 mParent->setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) );
246 else 270 else
247 setCaption(i18n("Nothing synced! No profiles defined for multisync!")); 271 mParent->setCaption(i18n("Nothing synced! No profiles defined for multisync!"));
248 return; 272 return;
249} 273}
250int KABCore::ringSync() 274int KSyncManager::ringSync()
251{ 275{
252 int syncedProfiles = 0; 276 int syncedProfiles = 0;
253 int i; 277 unsigned int i;
254 QTime timer; 278 QTime timer;
255 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 279 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
256 QStringList syncProfileNames = KABPrefs::instance()->mSyncProfileNames; 280 QStringList syncProfileNames = mPrefs->mSyncProfileNames;
257 KSyncProfile* temp = new KSyncProfile (); 281 KSyncProfile* temp = new KSyncProfile ();
258 KABPrefs::instance()->mAskForPreferences = false; 282 mPrefs->mAskForPreferences = false;
259 for ( i = 0; i < syncProfileNames.count(); ++i ) { 283 for ( i = 0; i < syncProfileNames.count(); ++i ) {
@@ -263,13 +287,13 @@ int KABCore::ringSync()
263 if ( temp->getIncludeInRingSyncAB() && ( i < 1 || i > 2 )) { 287 if ( temp->getIncludeInRingSyncAB() && ( i < 1 || i > 2 )) {
264 setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); 288 mParent->setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... "));
265 ++syncedProfiles; 289 ++syncedProfiles;
266 // KABPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 290 // mPrefs->mAskForPreferences = temp->getAskForPreferences();
267 KABPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 291 mPrefs->mWriteBackFile = temp->getWriteBackFile();
268 KABPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 292 mPrefs->mWriteBackExistingOnly = temp->getWriteBackExisting();
269 KABPrefs::instance()->mWriteBackInFuture = 0; 293 mPrefs->mWriteBackInFuture = 0;
270 if ( temp->getWriteBackFuture() ) 294 if ( temp->getWriteBackFuture() )
271 KABPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 295 mPrefs->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
272 KABPrefs::instance()->mShowSyncSummary = false; 296 mPrefs->mShowSyncSummary = false;
273 mCurrentSyncDevice = syncProfileNames[i] ; 297 mCurrentSyncDevice = syncProfileNames[i] ;
274 mCurrentSyncName = KABPrefs::instance()->mLocalMachineName; 298 mCurrentSyncName = mPrefs->mLocalMachineName;
275 if ( i == 0 ) { 299 if ( i == 0 ) {
@@ -279,8 +303,8 @@ int KABCore::ringSync()
279 if ( syncWithFile( temp->getRemoteFileNameAB( ), true ) ) 303 if ( syncWithFile( temp->getRemoteFileNameAB( ), true ) )
280 KABPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); 304 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB();
281 } else { 305 } else {
282 if ( temp->getIsPhoneSync() ) { 306 if ( temp->getIsPhoneSync() ) {
283 KABPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; 307 mPrefs->mPhoneDevice = temp->getPhoneDevice( ) ;
284 KABPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); 308 mPrefs->mPhoneConnection = temp->getPhoneConnection( );
285 KABPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); 309 mPrefs->mPhoneModel = temp->getPhoneModel( );
286 syncPhone(); 310 syncPhone();
@@ -292,3 +316,3 @@ int KABCore::ringSync()
292 timer.start(); 316 timer.start();
293 setCaption(i18n("Multiple sync in progress ... please wait!") ); 317 mParent->setCaption(i18n("Multiple sync in progress ... please wait!") );
294 while ( timer.elapsed () < 2000 ) { 318 while ( timer.elapsed () < 2000 ) {
@@ -307,3 +331,3 @@ int KABCore::ringSync()
307 331
308void KABCore::syncRemote( KSyncProfile* prof, bool ask) 332void KSyncManager::syncRemote( KSyncProfile* prof, bool ask)
309{ 333{
@@ -312,3 +336,3 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask)
312 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; 336 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n";
313 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 337 if ( QMessageBox::information( mParent, i18n("Sync"),
314 question, 338 question,
@@ -328,3 +352,3 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask)
328 maxlen += 25; 352 maxlen += 25;
329 setCaption ( i18n( "Copy remote file to local machine..." ) ); 353 mParent->setCaption ( i18n( "Copy remote file to local machine..." ) );
330 int fileSize = 0; 354 int fileSize = 0;
@@ -336,3 +360,3 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask)
336 if ( result != 0 ) { 360 if ( result != 0 ) {
337 int len = maxlen; 361 unsigned int len = maxlen;
338 while ( len < command.length() ) { 362 while ( len < command.length() ) {
@@ -342,9 +366,9 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask)
342 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) ; 366 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) ;
343 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), 367 QMessageBox::information( mParent, i18n("Sync - ERROR"),
344 question, 368 question,
345 i18n("Okay!")) ; 369 i18n("Okay!")) ;
346 setCaption ("KO/Pi"); 370 mParent->setCaption ("");
347 return; 371 return;
348 } 372 }
349 setCaption ( i18n( "Copying succeed." ) ); 373 mParent->setCaption ( i18n( "Copying succeed." ) );
350 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); 374 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() );
@@ -355,3 +379,3 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask)
355// e->setReadOnly( true ); 379// e->setReadOnly( true );
356 if ( KABPrefs::instance()->mWriteBackFile ) { 380 if ( mPrefs->mWriteBackFile ) {
357 command = prof->getPostSyncCommandAB(); 381 command = prof->getPostSyncCommandAB();
@@ -363,10 +387,10 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask)
363 } 387 }
364 setCaption ( i18n( "Writing back file ..." ) ); 388 mParent->setCaption ( i18n( "Writing back file ..." ) );
365 result = system ( command ); 389 result = system ( command );
366 qDebug("KO: Writing back file result: %d ", result); 390 qDebug("Writing back file result: %d ", result);
367 if ( result != 0 ) { 391 if ( result != 0 ) {
368 setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); 392 mParent->setCaption ( i18n( "Writing back file result: " )+QString::number( result ) );
369 return; 393 return;
370 } else { 394 } else {
371 setCaption ( i18n( "Syncronization sucessfully completed" ) ); 395 mParent->setCaption ( i18n( "Syncronization sucessfully completed" ) );
372 } 396 }
@@ -376,10 +400,8 @@ void KABCore::syncRemote( KSyncProfile* prof, bool ask)
376} 400}
377#include <qpushbutton.h> 401
378#include <qradiobutton.h> 402void KSyncManager::edit_sync_options()
379#include <qbuttongroup.h>
380void KABCore::edit_sync_options()
381{ 403{
382 //mDialogManager->showSyncOptions(); 404 //mDialogManager->showSyncOptions();
383 //KABPrefs::instance()->mSyncAlgoPrefs 405 //mPrefs->mSyncAlgoPrefs
384 QDialog dia( this, "dia", true ); 406 QDialog dia( mParent, "dia", true );
385 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); 407 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice );
@@ -400,3 +422,3 @@ void KABCore::edit_sync_options()
400 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 422 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
401 switch ( KABPrefs::instance()->mSyncAlgoPrefs ) { 423 switch ( mPrefs->mSyncAlgoPrefs ) {
402 case 0: 424 case 0:
@@ -426,3 +448,3 @@ void KABCore::edit_sync_options()
426 if ( dia.exec() ) { 448 if ( dia.exec() ) {
427 KABPrefs::instance()->mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; 449 mPrefs->mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ;
428 } 450 }
@@ -431,6 +453,6 @@ void KABCore::edit_sync_options()
431} 453}
432QString KABCore::getPassword( ) 454QString KSyncManager::getPassword( )
433{ 455{
434 QString retfile = ""; 456 QString retfile = "";
435 QDialog dia ( this, "input-dialog", true ); 457 QDialog dia ( mParent, "input-dialog", true );
436 QLineEdit lab ( &dia ); 458 QLineEdit lab ( &dia );
@@ -455 +477,53 @@ QString KABCore::getPassword( )
455} 477}
478
479
480void KSyncManager::confSync()
481{
482 static KSyncPrefsDialog* sp = 0;
483 if ( ! sp ) {
484 sp = new KSyncPrefsDialog( mParent, "syncprefs", true );
485 }
486 sp->usrReadConfig();
487#ifndef DESKTOP_VERSION
488 sp->showMaximized();
489#else
490 sp->show();
491#endif
492 sp->exec();
493 mPrefs->mSyncProfileNames = sp->getSyncProfileNames();
494 mPrefs->mLocalMachineName = sp->getLocalMachineName ();
495 fillSyncMenu();
496}
497
498void KSyncManager::syncSharp()
499{
500 if ( ! syncExternalApplication("sharp") )
501 qDebug("ERROR sync sharp ");;
502}
503
504bool KSyncManager::syncExternalApplication(QString resource)
505{
506 if ( mImplementation->sync_isModified() )
507 mImplementation->sync_save();
508
509 if ( mPrefs->mAskForPreferences )
510 edit_sync_options();
511
512 qDebug("sync %s", resource.latin1());
513
514 bool syncOK = mImplementation->syncExternal(this, resource);
515
516 return syncOK;
517
518}
519
520void KSyncManager::syncPhone()
521{
522 if ( mImplementation->sync_isModified() )
523 mImplementation->sync_save();
524
525 qDebug("pending syncPhone(); ");
526 //mView->syncPhone();
527 mImplementation->sync_setModified();
528
529}
diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h
index d7c2a02..389a005 100644
--- a/libkdepim/ksyncmanager.h
+++ b/libkdepim/ksyncmanager.h
@@ -24,2 +24,3 @@ $Id$
24 24
25#include <qobject.h>
25#include <qstring.h> 26#include <qstring.h>
@@ -28,12 +29,12 @@ class QPopupMenu;
28class KSyncProfile; 29class KSyncProfile;
30class KPimPrefs;
31class QWidget;
32class KSyncManager;
33class KSyncInterface;
29 34
30 35class KSyncManager : public QObject
31
32class KSyncManager
33{ 36{
34 37 Q_OBJECT
35 public:
36 KSyncManager(TargetApp ta, QPopupMenu* syncmenu);
37 ~KSyncManager() ;
38 38
39 public:
39 enum TargetApp { 40 enum TargetApp {
@@ -43,16 +44,49 @@ class KSyncManager
43 44
44 private: 45
46 KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu);
47 ~KSyncManager() ;
48
49 bool blockSave() { return mBlockSaveFlag; }
50 void setBlockSave(bool sa) { mBlockSaveFlag = sa; }
51
45 void fillSyncMenu(); 52 void fillSyncMenu();
46 void syncLocalFile(); 53
47 bool syncWithFile( QString fn , bool quick ); 54 QString getCurrentSyncDevice() { return mCurrentSyncDevice; }
55 QString getCurrentSyncName() { return mCurrentSyncName; }
56
57 public slots:
58 void slotSyncMenu( int );
59
60 private:
61 // LR *******************************
62 // sync stuff!
63 QString mCurrentSyncDevice;
64 QString mCurrentSyncName;
48 void quickSyncLocalFile(); 65 void quickSyncLocalFile();
66 bool syncWithFile( QString fn , bool quick );
67 void syncLocalFile();
68 void syncPhone();
69 void syncSharp();
70 bool syncExternalApplication(QString);
49 void multiSync( bool askforPrefs ); 71 void multiSync( bool askforPrefs );
50 int ringSync(); 72 int mCurrentSyncProfile ;
51 void syncRemote( KSyncProfile* prof, bool ask); 73 void syncRemote( KSyncProfile* prof, bool ask = true);
52 void edit_sync_options(); 74 void edit_sync_options();
53 QString getPassword(); 75 int ringSync();
76 QString getPassword( );
77
78 private slots:
79 void confSync();
80 // *********************
54 81
55 private: 82 private:
56 QPopupMenu* mSyncMenu; 83 bool mBlockSaveFlag;
84
85
86 QWidget* mParent;
87 KSyncInterface* mImplementation;
57 TargetApp mTargetApp; 88 TargetApp mTargetApp;
89 KPimPrefs* mPrefs;
90 QPopupMenu* mSyncMenu;
91
58 92
@@ -63,6 +97,23 @@ class KSyncManager
63 97
98};
99
100
101class KSyncInterface
102{
103 public:
104 virtual bool sync(KSyncManager* manager, QString filename, int mode) = 0;
105 virtual bool syncExternal(KSyncManager* manager, QString resource) = 0;
64 106
65 107
108 //called by the syncmanager to indicate that the work has to be marked as dirty.
109 virtual void sync_setModified() = 0;
110
111 //called by the syncmanager to ask if the dirty flag is set.
112 virtual bool sync_isModified() = 0;
113
114 //called by the syncmanager to indicate that the work has to be saved.
115 virtual void sync_save() = 0;
66}; 116};
67 117
118
68#endif 119#endif
diff --git a/libkdepim/libkdepimE.pro b/libkdepim/libkdepimE.pro
index 2a30ee8..156e247 100644
--- a/libkdepim/libkdepimE.pro
+++ b/libkdepim/libkdepimE.pro
@@ -27,2 +27,3 @@ HEADERS = \
27 kprefswidget.h \ 27 kprefswidget.h \
28 ksyncmanager.h \
28 ksyncprofile.h \ 29 ksyncprofile.h \
@@ -47,2 +48,3 @@ SOURCES = \
47 kprefswidget.cpp \ 48 kprefswidget.cpp \
49 ksyncmanager.cpp \
48 ksyncprofile.cpp \ 50 ksyncprofile.cpp \