Integrated local sync activities in activitymodel
authorDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Mon, 13 Jan 2020 11:20:41 +0000 (12:20 +0100)
committerDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Mon, 13 Jan 2020 11:20:41 +0000 (12:20 +0100)
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
src/gui/tray/UserModel.cpp
src/gui/tray/UserModel.h
src/gui/tray/Window.qml

index eb010174bfcef86dbfe45bebce7cbb59706e62c8..9dd6295222ed9d56adf600dd089d8d7d231fdcb5 100644 (file)
@@ -17,6 +17,48 @@ User::User(AccountStatePtr &account, const bool &isCurrent, QObject* parent)
     , _isCurrentUser(isCurrent)
     , _activityModel(new ActivityListModel(_account.data()))
 {
+    connect(ProgressDispatcher::instance(), &ProgressDispatcher::itemCompleted,
+        this, &User::slotItemCompleted);
+}
+
+void User::slotItemCompleted(const QString &folder, const SyncFileItemPtr &item)
+{
+    auto folderInstance = FolderMan::instance()->folder(folder);
+
+    if (!folderInstance)
+        return;
+
+    // check if we are adding it to the right account and if it is useful information (protocol errors)
+    if (folderInstance->accountState() == _account.data()) {
+        qCWarning(lcActivity) << "Item " << item->_file << " retrieved resulted in " << item->_errorString;
+
+        Activity activity;
+        activity._type = Activity::SyncFileItemType; //client activity
+        activity._status = item->_status;
+        activity._dateTime = QDateTime::currentDateTime();
+        activity._message = item->_originalFile;
+        activity._link = folderInstance->accountState()->account()->url();
+        activity._accName = folderInstance->accountState()->account()->displayName();
+        activity._file = item->_file;
+        activity._folder = folder;
+
+        if (item->_status == SyncFileItem::NoStatus || item->_status == SyncFileItem::Success) {
+            qCWarning(lcActivity) << "Item " << item->_file << " retrieved successfully.";
+            activity._message.prepend(" ");
+            activity._message.prepend(tr("Synced"));
+            _activityModel->addSyncFileItemToActivityList(activity);
+        } else {
+            qCWarning(lcActivity) << "Item " << item->_file << " retrieved resulted in error " << item->_errorString;
+            activity._subject = item->_errorString;
+
+            if (item->_status == SyncFileItem::Status::FileIgnored) {
+                _activityModel->addIgnoredFileToList(activity);
+            } else {
+                // add 'protocol error' to activity list
+                _activityModel->addErrorToActivityList(activity);
+            }
+        }
+    }
 }
 
 AccountPtr User::account() const
index 3775e66b2cc3794604f0f2c844204f24f0c4df1e..f8ec80b52ddd802b03d0b25d5e8b23a91f6449a3 100644 (file)
@@ -36,6 +36,9 @@ public:
     void logout() const;
     void removeAccount() const;
 
+public slots:
+    void slotItemCompleted(const QString &folder, const SyncFileItemPtr &item);
+
 private:
     AccountStatePtr _account;
     bool _isCurrentUser;
index 602e15163a53ac7fa8cb153dfc03bc502e1b372e..0991304b6c1869e86e53b081a0ac2921572bcec2 100644 (file)
@@ -474,7 +474,7 @@ Window {
                     Layout.alignment: Qt.AlignLeft\r
                     Text {\r
                         id: activityTextTitle\r
-                        text: subject\r
+                        text: (type === "Activity") ? subject : message\r
                         width: 220\r
                         elide: Text.ElideRight\r
                         font.pointSize: 9\r