summary refs log tree commit diff
path: root/resources
diff options
context:
space:
mode:
authorDeepBlueV7.X <nicolas.werner@hotmail.de>2022-02-12 18:52:47 +0000
committerGitHub <noreply@github.com>2022-02-12 18:52:47 +0000
commita930e3c804c56aeb4f8d336b19d4abcd699556d1 (patch)
tree73f06796cff7941b9f0e7ab2b2a9e59054da0afa /resources
parentFix application name on Wayland in flatpak (diff)
parentHidden events: Refactor slightly for reusability (diff)
downloadnheko-a930e3c804c56aeb4f8d336b19d4abcd699556d1.tar.xz
Merge pull request #891 from tastytea/hidden-events-gui
Add GUI to change hidden events per room
Diffstat (limited to 'resources')
-rw-r--r--resources/qml/dialogs/HiddenEventsDialog.qml127
-rw-r--r--resources/qml/dialogs/RoomSettings.qml18
-rw-r--r--resources/res.qrc1
3 files changed, 145 insertions, 1 deletions
diff --git a/resources/qml/dialogs/HiddenEventsDialog.qml b/resources/qml/dialogs/HiddenEventsDialog.qml
new file mode 100644

index 00000000..cc6f17a5 --- /dev/null +++ b/resources/qml/dialogs/HiddenEventsDialog.qml
@@ -0,0 +1,127 @@ +// SPDX-FileCopyrightText: 2022 Nheko Contributors +// +// SPDX-License-Identifier: GPL-3.0-or-later + +import ".." +import QtQuick 2.12 +import QtQuick.Controls 2.5 +import QtQuick.Layouts 1.3 +import im.nheko 1.0 + +ApplicationWindow { + id: hiddenEventsDialog + + property string roomid: "" + property string roomName: "" + property var onAccepted: undefined + + modality: Qt.NonModal + flags: Qt.Dialog | Qt.WindowTitleHint + minimumWidth: 250 + minimumHeight: 220 + + HiddenEvents { + id: hiddenEvents + + roomid: hiddenEventsDialog.roomid + } + + title: { + if (roomid) { + return qsTr("Hidden events for %1").arg(roomName); + } + else { + return qsTr("Hidden events"); + } + } + + Shortcut { + sequence: StandardKey.Cancel + onActivated: dbb.rejected() + } + + ColumnLayout { + spacing: Nheko.paddingMedium + anchors.margins: Nheko.paddingMedium + anchors.fill: parent + + MatrixText { + id: promptLabel + text: { + if (roomid) { + return qsTr("These events will be be <b>shown</b> in %1:").arg(roomName); + } + else { + return qsTr("These events will be be <b>shown</b> in all rooms:"); + } + } + font.pixelSize: Math.floor(fontMetrics.font.pixelSize * 1.2) + Layout.fillWidth: true + Layout.fillHeight: false + } + + GridLayout { + columns: 2 + rowSpacing: Nheko.paddingMedium + Layout.fillWidth: true + Layout.fillHeight: true + + MatrixText { + text: qsTr("User events") + ToolTip.text: qsTr("Joins, leaves, avatar and name changes, bans, …") + ToolTip.visible: hh1.hovered + Layout.fillWidth: true + + HoverHandler { + id: hh1 + } + } + + ToggleButton { + Layout.alignment: Qt.AlignRight + checked: !hiddenEvents.hiddenEvents.includes(MtxEvent.Member) + onToggled: hiddenEvents.toggle(MtxEvent.Member) + } + + MatrixText { + text: qsTr("Power level changes") + ToolTip.text: qsTr("Sent when a moderator is added/removed or the permissions of a room are changed.") + ToolTip.visible: hh2.hovered + Layout.fillWidth: true + + HoverHandler { + id: hh2 + } + } + + ToggleButton { + Layout.alignment: Qt.AlignRight + checked: !hiddenEvents.hiddenEvents.includes(MtxEvent.PowerLevels) + onToggled: hiddenEvents.toggle(MtxEvent.PowerLevels) + } + + MatrixText { + text: qsTr("Stickers") + Layout.fillWidth: true + } + + ToggleButton { + Layout.alignment: Qt.AlignRight + checked: !hiddenEvents.hiddenEvents.includes(MtxEvent.Sticker) + onToggled: hiddenEvents.toggle(MtxEvent.Sticker) + } + } + } + + footer: DialogButtonBox { + id: dbb + + standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel + onAccepted: { + hiddenEvents.save(); + hiddenEventsDialog.close(); + } + onRejected: hiddenEventsDialog.close(); + } + +} diff --git a/resources/qml/dialogs/RoomSettings.qml b/resources/qml/dialogs/RoomSettings.qml
index fad7b4c7..442010fd 100644 --- a/resources/qml/dialogs/RoomSettings.qml +++ b/resources/qml/dialogs/RoomSettings.qml
@@ -254,6 +254,23 @@ ApplicationWindow { Layout.alignment: Qt.AlignRight } + MatrixText { + text: qsTr("Hidden events") + } + + HiddenEventsDialog { + id: hiddenEventsDialog + roomid: roomSettings.roomId + roomName: roomSettings.roomName + } + + Button { + text: qsTr("Configure") + ToolTip.text: qsTr("Select events to hide in this room") + onClicked: hiddenEventsDialog.show() + Layout.alignment: Qt.AlignRight + } + Item { // for adding extra space between sections Layout.fillWidth: true @@ -302,5 +319,4 @@ ApplicationWindow { } } - } diff --git a/resources/res.qrc b/resources/res.qrc
index 2fba5f4c..c8659150 100644 --- a/resources/res.qrc +++ b/resources/res.qrc
@@ -152,6 +152,7 @@ <file>qml/dialogs/RoomMembers.qml</file> <file>qml/dialogs/RoomSettings.qml</file> <file>qml/dialogs/UserProfile.qml</file> + <file>qml/dialogs/HiddenEventsDialog.qml</file> <file>qml/emoji/EmojiPicker.qml</file> <file>qml/emoji/StickerPicker.qml</file> <file>qml/ui/NhekoSlider.qml</file>