void Folder::setSyncState(SyncResult::Status state)
{
+ if (_silenceErrorsUntilNextSync && state == SyncResult::Error) {
+ _syncResult.setStatus(SyncResult::Status::Success);
+ return;
+ }
_syncResult.setStatus(state);
}
void Folder::startSync(const QStringList &pathList)
{
Q_UNUSED(pathList);
+ setSilenceErrorsUntilNextSync(false);
const auto singleItemDiscoveryOptions = _engine->singleItemDiscoveryOptions();
Q_ASSERT(!singleItemDiscoveryOptions.discoveryDirItem || singleItemDiscoveryOptions.discoveryDirItem->isDirectory());
if (singleItemDiscoveryOptions.discoveryDirItem && !singleItemDiscoveryOptions.discoveryDirItem->isDirectory()) {
void Folder::slotSyncError(const QString &message, ErrorCategory category)
{
- _syncResult.appendErrorString(message);
- emit ProgressDispatcher::instance()->syncError(alias(), message, category);
+ if (!_silenceErrorsUntilNextSync) {
+ _syncResult.appendErrorString(message);
+ emit ProgressDispatcher::instance()->syncError(alias(), message, category);
+ }
}
void Folder::slotAddErrorToGui(SyncFileItem::Status status, const QString &errorMessage, const QString &subject)
if (syncError) {
_syncResult.setStatus(SyncResult::Error);
+ if (_silenceErrorsUntilNextSync) {
+ _syncResult.setStatus(SyncResult::Status::Success);
+ }
} else if (_syncResult.foundFilesNotSynced()) {
_syncResult.setStatus(SyncResult::Problem);
} else if (_definition.paused) {
_timeSinceLastFullLocalDiscovery.invalidate();
}
+void Folder::setSilenceErrorsUntilNextSync(bool silenceErrors)
+{
+ _silenceErrorsUntilNextSync = silenceErrors;
+}
+
void Folder::schedulePathForLocalDiscovery(const QString &relativePath)
{
_localDiscoveryTracker->addTouchedPath(relativePath.toUtf8());
/** Ensures that the next sync performs a full local discovery. */
void slotNextSyncFullLocalDiscovery();
+ void setSilenceErrorsUntilNextSync(bool silenceErrors);
+
private slots:
void slotSyncStarted();
void slotSyncFinished(bool);
*/
bool _hasSwitchedToVfs = false;
+ bool _silenceErrorsUntilNextSync = false;
+
/**
* Watches this folder's local directory for changes.
*