mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
parent
6a42468513
commit
242e4e1d70
6
changelog/unreleased/7759
Normal file
6
changelog/unreleased/7759
Normal file
@ -0,0 +1,6 @@
|
||||
Bugfix: Fix status icon after move errors
|
||||

|
||||
The file status icon was not showing an error when a move operation failed
|
||||
|
||||
https://github.com/owncloud/client/issues/7759
|
||||
|
||||
@ -229,10 +229,10 @@ void SyncFileStatusTracker::slotAboutToPropagate(SyncFileItemVector &items)
|
||||
_dirtyPaths.remove(item->destination());
|
||||
|
||||
if (hasErrorStatus(*item)) {
|
||||
_syncProblems[item->_file] = SyncFileStatus::StatusError;
|
||||
_syncProblems[item->destination()] = SyncFileStatus::StatusError;
|
||||
invalidateParentPaths(item->destination());
|
||||
} else if (hasExcludedStatus(*item)) {
|
||||
_syncProblems[item->_file] = SyncFileStatus::StatusExcluded;
|
||||
_syncProblems[item->destination()] = SyncFileStatus::StatusExcluded;
|
||||
}
|
||||
|
||||
SharedFlag sharedFlag = item->_remotePerm.hasPermission(RemotePermissions::IsShared) ? Shared : NotShared;
|
||||
@ -273,12 +273,12 @@ void SyncFileStatusTracker::slotItemCompleted(const SyncFileItemPtr &item)
|
||||
qCDebug(lcStatusTracker) << "Item completed" << item->destination() << item->_status << item->_instruction;
|
||||
|
||||
if (hasErrorStatus(*item)) {
|
||||
_syncProblems[item->_file] = SyncFileStatus::StatusError;
|
||||
_syncProblems[item->destination()] = SyncFileStatus::StatusError;
|
||||
invalidateParentPaths(item->destination());
|
||||
} else if (hasExcludedStatus(*item)) {
|
||||
_syncProblems[item->_file] = SyncFileStatus::StatusExcluded;
|
||||
_syncProblems[item->destination()] = SyncFileStatus::StatusExcluded;
|
||||
} else {
|
||||
_syncProblems.erase(item->_file);
|
||||
_syncProblems.erase(item->destination());
|
||||
}
|
||||
|
||||
SharedFlag sharedFlag = item->_remotePerm.hasPermission(RemotePermissions::IsShared) ? Shared : NotShared;
|
||||
|
||||
@ -465,6 +465,50 @@ private slots:
|
||||
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
}
|
||||
|
||||
void renameError() {
|
||||
FakeFolder fakeFolder{FileInfo::A12_B12_C12_S12()};
|
||||
fakeFolder.serverErrorPaths().append("A/a1");
|
||||
fakeFolder.localModifier().rename("A/a1", "A/a1m");
|
||||
fakeFolder.localModifier().rename("B/b1", "B/b1m");
|
||||
StatusPushSpy statusSpy(fakeFolder.syncEngine());
|
||||
|
||||
fakeFolder.scheduleSync();
|
||||
fakeFolder.execUntilBeforePropagation();
|
||||
|
||||
verifyThatPushMatchesPull(fakeFolder, statusSpy);
|
||||
|
||||
QCOMPARE(statusSpy.statusOf("A/a1m"), SyncFileStatus(SyncFileStatus::StatusSync));
|
||||
QCOMPARE(statusSpy.statusOf("A/a1"), statusSpy.statusOf("A/a1notexist"));
|
||||
QCOMPARE(statusSpy.statusOf("A"), SyncFileStatus(SyncFileStatus::StatusSync));
|
||||
QCOMPARE(statusSpy.statusOf(""), SyncFileStatus(SyncFileStatus::StatusSync));
|
||||
QCOMPARE(statusSpy.statusOf("B"), SyncFileStatus(SyncFileStatus::StatusSync));
|
||||
QCOMPARE(statusSpy.statusOf("B/b1m"), SyncFileStatus(SyncFileStatus::StatusSync));
|
||||
|
||||
fakeFolder.execUntilFinished();
|
||||
verifyThatPushMatchesPull(fakeFolder, statusSpy);
|
||||
QCOMPARE(statusSpy.statusOf("A/a1m"), SyncFileStatus(SyncFileStatus::StatusError));
|
||||
QCOMPARE(statusSpy.statusOf("A/a1"), statusSpy.statusOf("A/a1notexist"));
|
||||
QCOMPARE(statusSpy.statusOf("A"), SyncFileStatus(SyncFileStatus::StatusWarning));
|
||||
QCOMPARE(statusSpy.statusOf(""), SyncFileStatus(SyncFileStatus::StatusWarning));
|
||||
QCOMPARE(statusSpy.statusOf("B"), SyncFileStatus(SyncFileStatus::StatusUpToDate));
|
||||
QCOMPARE(statusSpy.statusOf("B/b1m"), SyncFileStatus(SyncFileStatus::StatusUpToDate));
|
||||
statusSpy.clear();
|
||||
|
||||
QVERIFY(!fakeFolder.syncOnce());
|
||||
verifyThatPushMatchesPull(fakeFolder, statusSpy);
|
||||
statusSpy.clear();
|
||||
QVERIFY(!fakeFolder.syncOnce());
|
||||
verifyThatPushMatchesPull(fakeFolder, statusSpy);
|
||||
QCOMPARE(statusSpy.statusOf("A/a1m"), SyncFileStatus(SyncFileStatus::StatusError));
|
||||
QCOMPARE(statusSpy.statusOf("A/a1"), statusSpy.statusOf("A/a1notexist"));
|
||||
QCOMPARE(statusSpy.statusOf("A"), SyncFileStatus(SyncFileStatus::StatusWarning));
|
||||
QCOMPARE(statusSpy.statusOf(""), SyncFileStatus(SyncFileStatus::StatusWarning));
|
||||
QCOMPARE(statusSpy.statusOf("B"), SyncFileStatus(SyncFileStatus::StatusNone));
|
||||
QCOMPARE(statusSpy.statusOf("B/b1m"), SyncFileStatus(SyncFileStatus::StatusNone));
|
||||
statusSpy.clear();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
QTEST_GUILESS_MAIN(TestSyncFileStatusTracker)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user