diff --git a/resources/qml/dialogs/HiddenEventsDialog.qml b/resources/qml/dialogs/HiddenEventsDialog.qml index 8f2d01fdd49b35add8ee65476bee0959946b469f..5973f4fdb3351c2f553ee675c05774fa72694f2b 100644 --- a/resources/qml/dialogs/HiddenEventsDialog.qml +++ b/resources/qml/dialogs/HiddenEventsDialog.qml @@ -45,7 +45,7 @@ ApplicationWindow { return qsTr("These events will be be <b>shown</b> in %1:").arg(roomSettings.roomName); } else { - return qsTr("These events will be be <b>shown</b>:"); + return qsTr("These events will be be <b>shown</b> in all rooms:"); } } font.pixelSize: Math.floor(fontMetrics.font.pixelSize * 1.2) diff --git a/src/ui/RoomSettings.cpp b/src/ui/RoomSettings.cpp index 3d68aebb578e1187d2ac1a51e4c9b9e5e9e6cbd6..288dac4e84384efcf1917a2d289611cd98980d61 100644 --- a/src/ui/RoomSettings.cpp +++ b/src/ui/RoomSettings.cpp @@ -12,7 +12,6 @@ #include <QMimeDatabase> #include <QStandardPaths> #include <QVBoxLayout> -#include <algorithm> #include <mtx/events/event_type.hpp> #include <mtx/events/nheko_extensions/hidden_events.hpp> #include <mtx/responses/common.hpp> @@ -230,7 +229,6 @@ RoomSettings::RoomSettings(QString roomid, QObject *parent) } emit accessJoinRulesChanged(); - // Get room's hidden events and store it in member variable. if (auto hiddenEvents = cache::client()->getAccountData( mtx::events::EventType::NhekoHiddenEvents, roomid_.toStdString())) { if (auto tmp = std::get_if<mtx::events::EphemeralEvent< @@ -310,12 +308,6 @@ RoomSettings::accessJoinRules() return accessRules_; } -bool -RoomSettings::eventHidden(const QString event) const -{ - return hiddenEvents_.contains(event); -} - void RoomSettings::enableEncryption() { @@ -426,34 +418,6 @@ RoomSettings::openEditModal() }); } -void -RoomSettings::saveHiddenEventsSettings(const QSet<QString> &events, const QString &roomId) -{ - mtx::events::account_data::nheko_extensions::HiddenEvents hiddenEvents; - hiddenEvents.hidden_event_types = { - EventType::Reaction, EventType::CallCandidates, EventType::Unsupported}; - for (const auto &event : events) { - hiddenEvents.hidden_event_types.emplace_back( - mtx::events::getEventType(event.toStdString())); - } - - if (!roomId.isEmpty()) { - const auto rid = roomId.toStdString(); - http::client()->put_room_account_data(rid, hiddenEvents, [&rid](mtx::http::RequestErr e) { - if (e) { - nhlog::net()->error( - "Failed to update room account data with hidden events in {}: {}", rid, *e); - } - }); - } else { - http::client()->put_account_data(hiddenEvents, [](mtx::http::RequestErr e) { - if (e) { - nhlog::net()->error("Failed to update account data with hidden events: {}", *e); - } - }); - } -} - void RoomSettings::changeNotifications(int currentIndex) { @@ -685,3 +649,36 @@ RoomSettings::updateAvatar() }); }); } + +void +RoomSettings::saveHiddenEventsSettings(const QSet<QString> &events, const QString &roomId) +{ + account_data::nheko_extensions::HiddenEvents hiddenEvents; + hiddenEvents.hidden_event_types = { + EventType::Reaction, EventType::CallCandidates, EventType::Unsupported}; + for (const auto &event : events) { + hiddenEvents.hidden_event_types.emplace_back(getEventType(event.toStdString())); + } + + if (!roomId.isEmpty()) { + const auto rid = roomId.toStdString(); + http::client()->put_room_account_data(rid, hiddenEvents, [&rid](mtx::http::RequestErr e) { + if (e) { + nhlog::net()->error( + "Failed to update room account data with hidden events in {}: {}", rid, *e); + } + }); + } else { + http::client()->put_account_data(hiddenEvents, [](mtx::http::RequestErr e) { + if (e) { + nhlog::net()->error("Failed to update account data with hidden events: {}", *e); + } + }); + } +} + +bool +RoomSettings::eventHidden(const QString event) const +{ + return hiddenEvents_.contains(event); +} diff --git a/src/ui/RoomSettings.h b/src/ui/RoomSettings.h index c6f4e95a5e750ca6031fc40f687c9c2bf3df3a61..db1b69884df1179de1e19fd226ff43a9ba8c7d79 100644 --- a/src/ui/RoomSettings.h +++ b/src/ui/RoomSettings.h @@ -109,10 +109,10 @@ public: Q_INVOKABLE void enableEncryption(); Q_INVOKABLE void updateAvatar(); Q_INVOKABLE void openEditModal(); - Q_INVOKABLE void - saveHiddenEventsSettings(const QSet<QString> &events, const QString &roomId = {}); Q_INVOKABLE void changeAccessRules(int index); Q_INVOKABLE void changeNotifications(int currentIndex); + Q_INVOKABLE void + saveHiddenEventsSettings(const QSet<QString> &events, const QString &roomId = {}); Q_INVOKABLE bool eventHidden(QString event) const; signals: