improve qml binding for more element of OCC::Activity
authorMatthieu Gallien <matthieu.gallien@nextcloud.com>
Mon, 13 Feb 2023 21:03:25 +0000 (22:03 +0100)
committerMatthieu Gallien <matthieu.gallien@nextcloud.com>
Wed, 17 May 2023 16:16:09 +0000 (18:16 +0200)
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
src/gui/tray/activitydata.h

index 67dfe6f4460f6a27039457f9e6ef7f7fdfe5af1e..88a8948d37590ed3ac1f1b6fd4669c8f28834e13 100644 (file)
@@ -80,6 +80,36 @@ public:
     QString _filename;
 };
 
+struct RichSubjectParameter {
+    Q_GADGET
+    Q_PROPERTY(QString type MEMBER type)
+    Q_PROPERTY(QString id MEMBER id)
+    Q_PROPERTY(QString name MEMBER name)
+    Q_PROPERTY(QString path MEMBER path)
+    Q_PROPERTY(QUrl link MEMBER link)
+
+public:
+    QString type;    // Required
+    QString id;      // Required
+    QString name;    // Required
+    QString path;    // Required (for files only)
+    QUrl link;    // Optional (files only)
+};
+
+struct TalkNotificationData {
+    Q_GADGET
+    Q_PROPERTY(QString conversationToken MEMBER conversationToken)
+    Q_PROPERTY(QString messageId MEMBER messageId)
+    Q_PROPERTY(QString messageSent MEMBER messageSent)
+    Q_PROPERTY(QString userAvatar MEMBER userAvatar)
+
+public:
+    QString conversationToken;
+    QString messageId;
+    QString messageSent;
+    QString userAvatar;
+};
+
 /* ==================================================================== */
 /**
  * @brief Activity Structure
@@ -87,9 +117,10 @@ public:
  *
  * contains all the information describing a single activity.
  */
-
 class Activity
 {
+    Q_GADGET
+
 public:
     using Identifier = QPair<qlonglong, QString>;
 
@@ -103,25 +134,15 @@ public:
         DummyMoreActivitiesAvailableType,
     };
 
+    Q_ENUM(Type)
+
     static Activity fromActivityJson(const QJsonObject &json, const AccountPtr account);
 
     static QString relativeServerFileTypeIconPath(const QMimeType &mimeType);
     static QString localFilePathForActivity(const Activity &activity, const AccountPtr account);
 
-    struct RichSubjectParameter {
-        QString type;    // Required
-        QString id;      // Required
-        QString name;    // Required
-        QString path;    // Required (for files only)
-        QUrl link;    // Optional (files only)
-    };
-
-    struct TalkNotificationData {
-        QString conversationToken;
-        QString messageId;
-        QString messageSent;
-        QString userAvatar;
-    };
+    using RichSubjectParameter = OCC::RichSubjectParameter;
+    using TalkNotificationData = OCC::TalkNotificationData;
 
     Type _type;
     qlonglong _id = 0LL;