]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Move activity list syncfileitemstatus errors to the top of the list
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Mon, 6 Feb 2023 15:29:48 +0000 (16:29 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 25 Jul 2023 00:40:26 +0000 (08:40 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/tray/sortedactivitylistmodel.cpp

index fcd58d1385c23e5af15c5232910aa4653ebac62d..95728b7e9533045e32f48192ede76f86b22acb6f 100644 (file)
@@ -44,20 +44,23 @@ bool SortedActivityListModel::lessThan(const QModelIndex &sourceLeft, const QMod
         return false;
     }
 
-    if (const auto rightType = rightActivity._type; leftType != rightType) {
-        return leftType < rightType;
-    }
-
+    // Let's now check for errors as we want those near the top too
     const auto leftSyncFileItemStatus = leftActivity._syncFileItemStatus;
     const auto rightSyncFileItemStatus = rightActivity._syncFileItemStatus;
+    const bool leftIsErrorFileItemStatus = leftSyncFileItemStatus == SyncFileItem::FatalError ||
+                                           leftSyncFileItemStatus == SyncFileItem::SoftError ||
+                                           leftSyncFileItemStatus == SyncFileItem::NormalError;
 
-    // Then compare by status
-    if (leftSyncFileItemStatus != rightSyncFileItemStatus) {
-        // We want to shove errors towards the top.
-        return (leftSyncFileItemStatus != SyncFileItem::NoStatus &&
-                leftSyncFileItemStatus != SyncFileItem::Success) ||
-                leftSyncFileItemStatus == SyncFileItem::FatalError ||
-                leftSyncFileItemStatus < rightSyncFileItemStatus;
+    const bool rightIsErrorFileItemStatus = rightSyncFileItemStatus == SyncFileItem::FatalError ||
+                                            rightSyncFileItemStatus == SyncFileItem::SoftError ||
+                                            rightSyncFileItemStatus == SyncFileItem::NormalError;
+
+    if (leftIsErrorFileItemStatus != rightIsErrorFileItemStatus) {
+        return leftIsErrorFileItemStatus;
+    }
+
+    if (const auto rightType = rightActivity._type; leftType != rightType) {
+        return leftType < rightType;
     }
 
     const auto leftSyncResultStatus = leftActivity._syncResultStatus;
@@ -70,6 +73,11 @@ bool SortedActivityListModel::lessThan(const QModelIndex &sourceLeft, const QMod
                 leftSyncResultStatus == SyncResult::Error;
     }
 
+    if (leftSyncFileItemStatus != rightSyncFileItemStatus) {
+        // We want to shove erors towards the top.
+        return leftSyncFileItemStatus < rightSyncFileItemStatus;
+    }
+
     // Finally sort by time, latest first
     const auto leftDateTime = leftActivity._dateTime;
     const auto rightDateTime = rightActivity._dateTime;