From 4eaba191de4fc1ae1709b90c97ec4030397f1d7c Mon Sep 17 00:00:00 2001 From: NepNep21 <43792621+NepNep21@users.noreply.github.com> Date: Thu, 7 Sep 2023 18:10:04 -0300 Subject: Use properties --- src/timeline/TimelineViewManager.cpp | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'src/timeline/TimelineViewManager.cpp') diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp index b8bd679b..3e623d7a 100644 --- a/src/timeline/TimelineViewManager.cpp +++ b/src/timeline/TimelineViewManager.cpp @@ -12,6 +12,7 @@ #include #include "Cache.h" +#include "Cache_p.h" #include "ChatPage.h" #include "CombinedImagePackModel.h" #include "CommandCompleter.h" @@ -210,6 +211,7 @@ TimelineViewManager::sync(const mtx::responses::Sync &sync_) this->rooms_->sync(sync_); this->communities_->sync(sync_); this->presenceEmitter->sync(sync_.presence); + this->processIgnoredUsers(sync_.account_data); if (isInitialSync_) { this->isInitialSync_ = false; @@ -560,3 +562,39 @@ TimelineViewManager::fixImageRendering(QQuickTextDocument *t, QQuickItem *i) QObject::connect(t->textDocument(), SIGNAL(imagesLoaded()), i, SLOT(updateWholeDocument())); } } + +using IgnoredUsers = mtx::events::EphemeralEvent; + +static QVector convertIgnoredToQt(const IgnoredUsers &ev) { + QVector users; + for (const mtx::events::account_data::IgnoredUser &user : ev.content.users) { + users.push_back(QString::fromStdString(user.id)); + } + + return users; +} + +QVector +TimelineViewManager::getIgnoredUsers() +{ + const auto cache = cache::client()->getAccountData(mtx::events::EventType::IgnoredUsers); + if (!cache) { + return {}; + } + + return convertIgnoredToQt(std::get(*cache)); +} + +void +TimelineViewManager::processIgnoredUsers(const mtx::responses::AccountData &data) +{ + for (const mtx::events::collections::RoomAccountDataEvents::variant &ev : data.events) { + if (!std::holds_alternative(ev)) { + continue; + } + const auto &ignoredEv = std::get(ev); + + emit this->ignoredUsersChanged(convertIgnoredToQt(ignoredEv)); + break; + } +} \ No newline at end of file -- cgit 1.5.1 From 44cf096111388264531fe5750a3c5caa59be7203 Mon Sep 17 00:00:00 2001 From: NepNep21 <43792621+NepNep21@users.noreply.github.com> Date: Thu, 7 Sep 2023 19:17:03 -0300 Subject: Lint + clazy --- src/timeline/TimelineModel.cpp | 2 +- src/timeline/TimelineViewManager.cpp | 8 +++++--- src/timeline/TimelineViewManager.h | 5 +---- 3 files changed, 7 insertions(+), 8 deletions(-) (limited to 'src/timeline/TimelineViewManager.cpp') diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp index ce136e35..a384d7c2 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp @@ -2115,7 +2115,7 @@ TimelineModel::handleIgnoredUser(const QString &id, const std::optional { if (err) { MainWindow::instance()->showNotification( - tr("Failed to ignore \"%1\": %2").arg(id).arg(*err)); + tr("Failed to ignore \"%1\": %2").arg(id, *err)); } else { this->clearTimeline(); } diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp index 3e623d7a..e2616c14 100644 --- a/src/timeline/TimelineViewManager.cpp +++ b/src/timeline/TimelineViewManager.cpp @@ -565,7 +565,9 @@ TimelineViewManager::fixImageRendering(QQuickTextDocument *t, QQuickItem *i) using IgnoredUsers = mtx::events::EphemeralEvent; -static QVector convertIgnoredToQt(const IgnoredUsers &ev) { +static QVector +convertIgnoredToQt(const IgnoredUsers &ev) +{ QVector users; for (const mtx::events::account_data::IgnoredUser &user : ev.content.users) { users.push_back(QString::fromStdString(user.id)); @@ -586,14 +588,14 @@ TimelineViewManager::getIgnoredUsers() } void -TimelineViewManager::processIgnoredUsers(const mtx::responses::AccountData &data) +TimelineViewManager::processIgnoredUsers(const mtx::responses::AccountData &data) { for (const mtx::events::collections::RoomAccountDataEvents::variant &ev : data.events) { if (!std::holds_alternative(ev)) { continue; } const auto &ignoredEv = std::get(ev); - + emit this->ignoredUsersChanged(convertIgnoredToQt(ignoredEv)); break; } diff --git a/src/timeline/TimelineViewManager.h b/src/timeline/TimelineViewManager.h index 74832c02..6a825b6f 100644 --- a/src/timeline/TimelineViewManager.h +++ b/src/timeline/TimelineViewManager.h @@ -63,10 +63,7 @@ public: return instance_; } - static TimelineViewManager *instance() - { - return TimelineViewManager::instance_; - } + static TimelineViewManager *instance() { return TimelineViewManager::instance_; } QVector getIgnoredUsers(); -- cgit 1.5.1