Icon selection, svg path transfers, scrollbar
authorDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Mon, 13 Jan 2020 08:59:34 +0000 (09:59 +0100)
committerDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Mon, 13 Jan 2020 08:59:34 +0000 (09:59 +0100)
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
client.qrc
src/gui/tray/ActivityListModel.cpp
src/gui/tray/ActivityListModel.h
src/gui/tray/Window.qml

index 509f8052c8e24ae5c4e09ff016edf69fa63e080a..de385dfb20ac798d0c81b9e401881748bb9a8478 100644 (file)
@@ -2,6 +2,7 @@
     <qresource prefix="/client">
         <file>resources/settings.png</file>
         <file>resources/settings@2x.png</file>
+        <file>resources/activity.svg</file>
         <file>resources/activity.png</file>
         <file>resources/activity@2x.png</file>
         <file>resources/network.png</file>
index 3c8b5083969069733f6fcd415d7bf607b839548a..0f0b7f4ad839b0a5d1de1357b4993ea16208018d 100644 (file)
@@ -15,7 +15,6 @@
 #include <QtCore>
 #include <QAbstractListModel>
 #include <QWidget>
-#include <QIcon>
 #include <QJsonObject>
 #include <QJsonDocument>
 
@@ -56,10 +55,6 @@ QVariant ActivityListModel::data(const QModelIndex &index, int role) const
 {
     Activity a;
 
-    // filter the get action here
-    // send only the text of the get action
-    // if there is more than one send the icon? the ...
-
     if (!index.isValid())
         return QVariant();
 
@@ -99,39 +94,29 @@ QVariant ActivityListModel::data(const QModelIndex &index, int role) const
         return customList;
     }
     case ActionIconRole:{
-        ActionIcon actionIcon;
         if(a._type == Activity::NotificationType){
-           QIcon cachedIcon;
-            if(!cachedIcon.isNull()) {
-               actionIcon.iconType = ActivityIconType::iconUseCached;
-               actionIcon.cachedIcon = cachedIcon;
-            } else {
-                actionIcon.iconType = ActivityIconType::iconBell;
-            }
+            return "qrc:///client/resources/bell.svg";
         } else if(a._type == Activity::SyncResultType){
-            actionIcon.iconType = ActivityIconType::iconStateError;
+            return "qrc:///client/resources/state-error.svg";
         } else if(a._type == Activity::SyncFileItemType){
                if(a._status == SyncFileItem::NormalError
                    || a._status == SyncFileItem::FatalError
                    || a._status == SyncFileItem::DetailError
                    || a._status == SyncFileItem::BlacklistedError) {
-                   actionIcon.iconType = ActivityIconType::iconStateError;
+                    return "qrc:///client/resources/state-error.svg";
                } else if(a._status == SyncFileItem::SoftError
                          || a._status == SyncFileItem::Conflict
                          || a._status == SyncFileItem::Restoration
                          || a._status == SyncFileItem::FileLocked){
-                   actionIcon.iconType = ActivityIconType::iconStateWarning;
+                        return "qrc:///client/resources/state-warning.svg";
                } else if(a._status == SyncFileItem::FileIgnored){
-                   actionIcon.iconType = ActivityIconType::iconStateInfo;
+                   return "qrc:///client/resources/state-info.svg";
                } else {
-                   actionIcon.iconType = ActivityIconType::iconStateSync;
+                   return "qrc:///client/resources/state-sync.svg";
                }
         } else {
-            actionIcon.iconType = ActivityIconType::iconActivity;
+            return "qrc:///client/resources/activity.svg";
         }
-        QVariant icn;
-        icn.setValue(actionIcon);
-        return icn;
     }
     case ObjectTypeRole:
         return a._objectType;
index d633bb07f537e64c3323d6d95c740f74f693b752..c5976e4519799042eaf994772374207db35af97c 100644 (file)
@@ -38,17 +38,7 @@ class ActivityListModel : public QAbstractListModel
 {
     Q_OBJECT
 public:
-    enum ActivityIconType {
-        iconUseCached = 0,
-        iconActivity,
-        iconBell,
-        iconStateError,
-        iconStateWarning,
-        iconStateInfo,
-        iconStateSync
-    };
-
-    enum datarole {
+    enum DataRole {
     ActionIconRole = Qt::UserRole + 1,
     UserIconRole,
     AccountRole,
@@ -63,11 +53,6 @@ public:
     AccountConnectedRole,
     SyncFileStatusRole };
 
-    struct ActionIcon {
-        ActivityIconType iconType;
-        QIcon cachedIcon;
-    };
-
     explicit ActivityListModel(AccountState *accountState, QObject* parent = 0);
 
     QVariant data(const QModelIndex &index, int role) const override;
@@ -118,6 +103,4 @@ private:
 };
 }
 
-Q_DECLARE_METATYPE(OCC::ActivityListModel::ActionIcon)
-
 #endif // ACTIVITYLISTMODEL_H
index dea3fbc73fbd6675a2d9850a6aff940ef20b2132..e7e8c6907746d74d9354e5d6d7d381e9e1f7e223 100644 (file)
@@ -445,6 +445,9 @@ Window {
             width:  trayWindowBackground.width\r
             height: trayWindowBackground.height - trayWindowHeaderBackground.height\r
             clip: true\r
+            ScrollBar.vertical: ScrollBar {\r
+                id: listViewScrollbar\r
+            }\r
 \r
             model: activityModel\r
 \r
@@ -460,7 +463,8 @@ Window {
                     Layout.preferredWidth: 48\r
                     Layout.preferredHeight: 48\r
                     verticalAlignment: Qt.AlignCenter\r
-                    source: "qrc:///client/theme/black/state-sync.svg"\r
+                    cache: true\r
+                    source: icon\r
                     sourceSize.height: 48\r
                     sourceSize.width: 48\r
                 }\r
@@ -539,8 +543,6 @@ Window {
             displaced: Transition {\r
                 NumberAnimation { properties: "y"; duration: 100; easing.type: Easing.Linear }\r
             }\r
-\r
-            focus: true\r
         }\r
 \r
     }       // Rectangle trayWindowBackground\r