Replace dark/light icon roles with a single icon role in activity list model
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 26 Nov 2024 05:47:58 +0000 (13:47 +0800)
committerMatthieu Gallien <matthieu.gallien@nextcloud.com>
Mon, 9 Dec 2024 12:32:42 +0000 (13:32 +0100)
We can just colour the relevant activity icon from QML based on the
palette text colour

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/tray/ActivityItemContent.qml
src/gui/tray/activitylistmodel.cpp
src/gui/tray/activitylistmodel.h
test/testactivitylistmodel.cpp

index 98ea3c2277f0400329d8c57200a6fdb961ff72dc..92d4ed5838b6f24dbfe75703f8e3cef868e0cc68 100644 (file)
@@ -104,7 +104,7 @@ RowLayout {
 
             cache: true
             fillMode: Image.PreserveAspectFit
-            source: Style.darkMode ? model.darkIcon : model.lightIcon
+            source: model.icon + "/" + palette.text
             sourceSize.height: 64
             sourceSize.width: 64
             mipmap: true // Addresses grainy downscale
index a2d80c2c04d8e5c441f1e9628584e6dc1c34c9a6..65de2e91d753350eff0cb515072355870430edea 100644 (file)
@@ -65,8 +65,7 @@ QHash<int, QByteArray> ActivityListModel::roleNames() const
     roles[LinkRole] = "link";
     roles[MessageRole] = "message";
     roles[ActionRole] = "type";
-    roles[DarkIconRole] = "darkIcon";
-    roles[LightIconRole] = "lightIcon";
+    roles[IconRole] = "icon";
     roles[ActionTextRole] = "subject";
     roles[ActionsLinksRole] = "links";
     roles[ActionsLinksContextMenuRole] = "linksContextMenu";
@@ -288,10 +287,8 @@ QVariant ActivityListModel::data(const QModelIndex &index, int role) const
         return ActivityListModel::convertLinksToActionButtons(a);
     }
 
-    case DarkIconRole:
-    case LightIconRole: {
+    case IconRole:
         return generateIconPath();
-    }
     case ObjectTypeRole:
         return a._objectType;
     case ObjectIdRole:
index 6251a12e9a1ff8fedbbe56925c691bc2b52626de..e8e4ed5bb93e053bfd4c5a2d297da90b12eb0b22 100644 (file)
@@ -51,8 +51,7 @@ class ActivityListModel : public QAbstractListModel
 
 public:
     enum DataRole {
-        DarkIconRole = Qt::UserRole + 1,
-        LightIconRole,
+        IconRole = Qt::UserRole + 1,
         AccountRole,
         ObjectTypeRole,
         ObjectIdRole,
index 7b440dffa32019b36def3e5fa5840889c1954f4f..84277356bcf12cdefd91e705304c5e76e8622de8 100644 (file)
@@ -225,8 +225,7 @@ private slots:
 
             QVERIFY(!index.data(OCC::ActivityListModel::AccountRole).toString().isEmpty());
             QVERIFY(!index.data(OCC::ActivityListModel::ActionTextColorRole).toString().isEmpty());
-            QVERIFY(!index.data(OCC::ActivityListModel::DarkIconRole).toString().isEmpty());
-            QVERIFY(!index.data(OCC::ActivityListModel::LightIconRole).toString().isEmpty());
+            QVERIFY(!index.data(OCC::ActivityListModel::IconRole).toString().isEmpty());
             QVERIFY(!index.data(OCC::ActivityListModel::PointInTimeRole).toString().isEmpty());
 
             QVERIFY(index.data(OCC::ActivityListModel::ObjectTypeRole).canConvert<int>());