diff --git a/src/libsync/syncfilestatustracker.cpp b/src/libsync/syncfilestatustracker.cpp index 152cd0dceb..547cfdc37d 100644 --- a/src/libsync/syncfilestatustracker.cpp +++ b/src/libsync/syncfilestatustracker.cpp @@ -150,6 +150,7 @@ void SyncFileStatusTracker::slotAboutToPropagate(SyncFileItemVector& items) if (showErrorInSocketApi(*item)) { _syncProblems[item->_file] = SyncFileStatus::StatusError; + invalidateParentPaths(item->destination()); } else if (showWarningInSocketApi(*item)) { _syncProblems[item->_file] = SyncFileStatus::StatusWarning; } diff --git a/test/testsyncfilestatustracker.cpp b/test/testsyncfilestatustracker.cpp index 35fdbbf20c..f7fcb528d6 100644 --- a/test/testsyncfilestatustracker.cpp +++ b/test/testsyncfilestatustracker.cpp @@ -310,10 +310,8 @@ private slots: // The root should show SYNC even though there is an error underneath, // since C/c1 is syncing and the SYNC status has priority. QCOMPARE(statusSpy.statusOf(""), SyncFileStatus(SyncFileStatus::StatusSync)); - QEXPECT_FAIL("", "Only one blacklist item underneath, we shouldn't be showing SYNC.", Continue); QCOMPARE(statusSpy.statusOf("A"), SyncFileStatus(SyncFileStatus::StatusWarning)); QCOMPARE(statusSpy.statusOf("A/a1"), SyncFileStatus(SyncFileStatus::StatusError)); - QEXPECT_FAIL("", "Only one blacklist item underneath, we shouldn't be showing SYNC.", Continue); QCOMPARE(statusSpy.statusOf("B"), SyncFileStatus(SyncFileStatus::StatusWarning)); QCOMPARE(statusSpy.statusOf("B/b0"), SyncFileStatus(SyncFileStatus::StatusError)); QCOMPARE(statusSpy.statusOf("C"), SyncFileStatus(SyncFileStatus::StatusSync));