From 9e82ba60b4b4eb94b22ca6fc2c7cef4095564ca7 Mon Sep 17 00:00:00 2001 From: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com> Date: Mon, 13 Jan 2020 12:20:41 +0100 Subject: [PATCH] Integrated local sync activities in activitymodel Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com> --- src/gui/tray/UserModel.cpp | 42 ++++++++++++++++++++++++++++++++++++++ src/gui/tray/UserModel.h | 3 +++ src/gui/tray/Window.qml | 2 +- 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/src/gui/tray/UserModel.cpp b/src/gui/tray/UserModel.cpp index eb010174b..9dd629522 100644 --- a/src/gui/tray/UserModel.cpp +++ b/src/gui/tray/UserModel.cpp @@ -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 diff --git a/src/gui/tray/UserModel.h b/src/gui/tray/UserModel.h index 3775e66b2..f8ec80b52 100644 --- a/src/gui/tray/UserModel.h +++ b/src/gui/tray/UserModel.h @@ -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; diff --git a/src/gui/tray/Window.qml b/src/gui/tray/Window.qml index 602e15163..0991304b6 100644 --- a/src/gui/tray/Window.qml +++ b/src/gui/tray/Window.qml @@ -474,7 +474,7 @@ Window { Layout.alignment: Qt.AlignLeft Text { id: activityTextTitle - text: subject + text: (type === "Activity") ? subject : message width: 220 elide: Text.ElideRight font.pointSize: 9 -- 2.30.2