if ( f->isBusy() && terminate ) {
f->slotTerminateSync();
}
- f->setSyncPaused(!currentlyPaused); // toggle the pause setting
- folderMan->slotSetFolderPaused( f, !currentlyPaused );
+ f->setSyncPaused(!currentlyPaused);
// keep state for the icon setting.
if( currentlyPaused ) _wasDisabledBefore = true;
void Folder::setSyncPaused( bool paused )
{
- if (paused != _definition.paused) {
- _definition.paused = paused;
- saveToSettings();
+ if (paused == _definition.paused) {
+ return;
}
+ _definition.paused = paused;
+ saveToSettings();
+
if( !paused ) {
- // qDebug() << "Syncing enabled on folder " << name();
setSyncState(SyncResult::NotYetStarted);
} else {
- // do not stop or start the watcher here, that is done internally by
- // folder class. Even if the watcher fires, the folder does not
- // schedule itself because it checks the var. _enabled before.
setSyncState(SyncResult::Paused);
}
+ emit syncPausedChanged(this, paused);
emit syncStateChange();
}
/**
* switch sync on or off
- * If the sync is switched off, the startSync method is not going to
- * be called.
*/
void setSyncPaused( bool );
void scheduleToSync(Folder*);
void progressInfo(const ProgressInfo& progress);
void newBigFolderDiscovered(const QString &); // A new folder bigger than the threshold was discovered
+ void syncPausedChanged(Folder*, bool paused);
public slots:
this, SLOT(slotFolderSyncFinished(SyncResult)));
disconnect(f, SIGNAL(syncStateChange()),
this, SLOT(slotForwardFolderSyncStateChange()));
+ disconnect(f, SIGNAL(syncPausedChanged(Folder*,bool)),
+ this, SLOT(slotFolderSyncPaused(Folder*,bool)));
}
int FolderMan::unloadAndDeleteAllFolders()
return folder;
}
-void FolderMan::slotSetFolderPaused( Folder *f, bool paused )
+void FolderMan::slotFolderSyncPaused( Folder *f, bool paused )
{
if( !f ) {
- qWarning() << "!! slotSetFolderPaused called with empty folder";
+ qWarning() << "!! slotFolderSyncPaused called with empty folder";
return;
}
- f->setSyncPaused(paused);
if (!paused) {
_disabledFolders.remove(f);
slotScheduleSync(f);
} else {
_disabledFolders.insert(f);
}
- emit folderSyncStateChange(f);
}
// this really terminates the current sync process
connect(folder, SIGNAL(syncStarted()), SLOT(slotFolderSyncStarted()));
connect(folder, SIGNAL(syncFinished(SyncResult)), SLOT(slotFolderSyncFinished(SyncResult)));
connect(folder, SIGNAL(syncStateChange()), SLOT(slotForwardFolderSyncStateChange()));
+ connect(folder, SIGNAL(syncPausedChanged(Folder*,bool)), SLOT(slotFolderSyncPaused(Folder*,bool)));
registerFolderMonitor(folder);
return folder;
public slots:
void slotRemoveFolder( Folder* );
- void slotSetFolderPaused(Folder *, bool paused);
+ void slotFolderSyncPaused(Folder *, bool paused);
void slotFolderSyncStarted();
void slotFolderSyncFinished( const SyncResult& );