From 9bd29c9713819a25359f2587147854e24f42b8ce Mon Sep 17 00:00:00 2001 From: Loren Burkholder Date: Sun, 23 Jul 2023 21:20:01 -0400 Subject: [PATCH] Allow configuring global hidden event settings --- resources/qml/pages/UserSettingsPage.qml | 18 ++++++++++++++++++ src/UserSettingsPage.cpp | 10 ++++++++++ src/UserSettingsPage.h | 6 +++++- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/resources/qml/pages/UserSettingsPage.qml b/resources/qml/pages/UserSettingsPage.qml index f23095b6..8cb6ecb7 100644 --- a/resources/qml/pages/UserSettingsPage.qml +++ b/resources/qml/pages/UserSettingsPage.qml @@ -215,6 +215,24 @@ Rectangle { } } } + DelegateChoice { + roleValue: UserSettingsModel.ConfigureHiddenEvents + Button { + text: qsTr("CONFIGURE") + onClicked: { + var dialog = hiddenEventsDialog.createObject(); + dialog.show(); + destroyOnClose(dialog); + } + + Component { + id: hiddenEventsDialog + + HiddenEventsDialog {} + } + } + } + DelegateChoice { Text { text: model.value diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp index 5caa4838..75a6b443 100644 --- a/src/UserSettingsPage.cpp +++ b/src/UserSettingsPage.cpp @@ -1041,6 +1041,8 @@ UserSettingsModel::data(const QModelIndex &index, int role) const return tr("Limit width of timeline"); case ReadReceipts: return tr("Read receipts"); + case HiddenTimelineEvents: + return tr("Hidden events"); case DesktopNotifications: return tr("Desktop notifications"); case AlertOnNotification: @@ -1119,6 +1121,8 @@ UserSettingsModel::data(const QModelIndex &index, int role) const return tr("SIDEBAR"); case TraySection: return tr("TRAY"); + case MessageVisibilitySection: + return tr("GLOBAL MESSAGE VISIBILITY"); case NotificationsSection: return tr("NOTIFICATIONS"); case VoipSection: @@ -1371,6 +1375,8 @@ UserSettingsModel::data(const QModelIndex &index, int role) const return tr( "Show if your message was read.\nStatus is displayed next to timestamps.\nWarning: " "If your homeserver does not support this, your rooms will never be marked as read!"); + case HiddenTimelineEvents: + return tr("Configure whether to show or hide certain events like room joins."); case DesktopNotifications: return tr("Notify about received messages when the client is not currently focused."); case AlertOnNotification: @@ -1438,6 +1444,7 @@ UserSettingsModel::data(const QModelIndex &index, int role) const case TimelineSection: case SidebarSection: case TraySection: + case MessageVisibilitySection: case NotificationsSection: case VoipSection: case EncryptionSection: @@ -1548,6 +1555,7 @@ UserSettingsModel::data(const QModelIndex &index, int role) const case TimelineSection: case SidebarSection: case TraySection: + case MessageVisibilitySection: case NotificationsSection: case VoipSection: case EncryptionSection: @@ -1562,6 +1570,8 @@ UserSettingsModel::data(const QModelIndex &index, int role) const case UserSigningKey: case MasterKey: return KeyStatus; + case HiddenTimelineEvents: + return ConfigureHiddenEvents; } } else if (role == ValueLowerBound) { switch (index.row()) { diff --git a/src/UserSettingsPage.h b/src/UserSettingsPage.h index 71eb039b..2bae068a 100644 --- a/src/UserSettingsPage.h +++ b/src/UserSettingsPage.h @@ -474,7 +474,6 @@ class UserSettingsModel : public QAbstractListModel ExposeDBusApi, #endif UpdateSpaceVias, - ExpireEvents, AccessibilitySection, ReducedMotion, @@ -506,6 +505,10 @@ class UserSettingsModel : public QAbstractListModel Tray, StartInTray, + MessageVisibilitySection, + ExpireEvents, + HiddenTimelineEvents, + NotificationsSection, DesktopNotifications, AlertOnNotification, @@ -562,6 +565,7 @@ public: KeyStatus, SessionKeyImportExport, XSignKeysRequestDownload, + ConfigureHiddenEvents, }; Q_ENUM(Types);