]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Move activity list SyncResult errors to the top of the list
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Mon, 6 Feb 2023 15:37:02 +0000 (16:37 +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 95728b7e9533045e32f48192ede76f86b22acb6f..8a5bf54406ab7c179454c25745f588471bf2d507 100644 (file)
@@ -45,6 +45,23 @@ bool SortedActivityListModel::lessThan(const QModelIndex &sourceLeft, const QMod
     }
 
     // Let's now check for errors as we want those near the top too
+    // Sync result errors go first
+    const auto leftSyncResultStatus = leftActivity._syncResultStatus;
+    const auto rightSyncResultStatus = rightActivity._syncResultStatus;
+
+    const auto leftIsSyncResultError = leftSyncResultStatus == SyncResult::Error ||
+                                       leftSyncResultStatus == SyncResult::SetupError ||
+                                       leftSyncResultStatus == SyncResult::Problem;
+
+    const auto rightIsSyncResultError = rightSyncResultStatus == SyncResult::Error ||
+                                        rightSyncResultStatus == SyncResult::SetupError ||
+                                        rightSyncResultStatus == SyncResult::Problem;
+
+    if (leftIsSyncResultError != rightIsSyncResultError) {
+        return leftIsSyncResultError;
+    } // If they are both errors then we will order the errors according to enum order later
+
+    // Then sync file item status errors
     const auto leftSyncFileItemStatus = leftActivity._syncFileItemStatus;
     const auto rightSyncFileItemStatus = rightActivity._syncFileItemStatus;
     const bool leftIsErrorFileItemStatus = leftSyncFileItemStatus == SyncFileItem::FatalError ||
@@ -63,14 +80,9 @@ bool SortedActivityListModel::lessThan(const QModelIndex &sourceLeft, const QMod
         return leftType < rightType;
     }
 
-    const auto leftSyncResultStatus = leftActivity._syncResultStatus;
-    const auto rightSyncResultStatus = rightActivity._syncResultStatus;
-
     if (leftSyncResultStatus != rightSyncResultStatus) {
-        // We only ever use SyncResult::Error in activities
-        return (leftSyncResultStatus != SyncResult::Undefined &&
-                leftSyncResultStatus != SyncResult::Success) ||
-                leftSyncResultStatus == SyncResult::Error;
+        return leftSyncResultStatus != SyncResult::Undefined &&
+                leftSyncResultStatus != SyncResult::Success;
     }
 
     if (leftSyncFileItemStatus != rightSyncFileItemStatus) {