startScheduledSyncSoon();
}
+void FolderMan::scheduleFolderForImmediateSync(Folder *f)
+{
+ _nextSyncShouldStartImmediately = true;
+ scheduleFolder(f);
+}
+
void FolderMan::scheduleFolderNext(Folder *f)
{
auto alias = f->alias();
// Time since the last sync run counts against the delay
msDelay = qMax(1ll, msDelay - msSinceLastSync);
+ if (_nextSyncShouldStartImmediately) {
+ _nextSyncShouldStartImmediately = false;
+ qCInfo(lcFolderMan) << "Next sync is marked to start immediately, so setting the delay to '0'";
+ msDelay = 0;
+ }
+
qCInfo(lcFolderMan) << "Starting the next scheduled sync in" << (msDelay / 1000) << "seconds";
_startScheduledSyncTimer.start(msDelay);
}
/** Queues a folder for syncing. */
void scheduleFolder(Folder *);
+ /** Queues a folder for syncing that starts immediately. */
+ void scheduleFolderForImmediateSync(Folder *);
+
/** Puts a folder in the very front of the queue. */
void scheduleFolderNext(Folder *);
/// Picks the next scheduled folder and starts the sync
QTimer _startScheduledSyncTimer;
+ bool _nextSyncShouldStartImmediately = false;
+
QScopedPointer<SocketApi> _socketApi;
NavigationPaneHelper _navigationPaneHelper;
folder->journalDb()->schedulePathForRemoteDiscovery(it);
folder->schedulePathForLocalDiscovery(it);
}
- FolderMan::instance()->scheduleFolder(folder);
+ FolderMan::instance()->scheduleFolderForImmediateSync(folder);
}
}
_folder->schedulePathForLocalDiscovery(it);
}
- folderMan->scheduleFolder(_folder);
+ folderMan->scheduleFolderForImmediateSync(_folder);
}
QDialog::accept();
}
void SyncEngine::abort()
{
- if (_propagator)
- qCInfo(lcEngine) << "Aborting sync";
-
if (_propagator) {
// If we're already in the propagation phase, aborting that is sufficient
+ qCInfo(lcEngine) << "Aborting sync in propagator...";
_propagator->abort();
} else if (_discoveryPhase) {
// Delete the discovery and all child jobs after ensuring
disconnect(_discoveryPhase.data(), nullptr, this, nullptr);
_discoveryPhase.take()->deleteLater();
- Q_EMIT syncError(tr("Synchronization will resume shortly."));
+ Q_EMIT addErrorToGui(SyncFileItem::SoftError, tr("Synchronization has been aborted."), tr("It will resume shortly."));
+ qCInfo(lcEngine) << "Aborting sync in discovery...";
finalize(false);
}
}