diff options
author | Nicolas Werner <nicolas.werner@hotmail.de> | 2023-10-23 23:58:53 +0200 |
---|---|---|
committer | Nicolas Werner <nicolas.werner@hotmail.de> | 2023-10-23 23:58:53 +0200 |
commit | fce026725e52b59a79e34dcfb70953173f3cd3be (patch) | |
tree | 57f5bc5ab630cd20846b0e590063c80208cbc12a /resources | |
parent | prevent overscroll in roomlist and communities list (diff) | |
parent | Fix license lint... (diff) | |
download | nheko-fce026725e52b59a79e34dcfb70953173f3cd3be.tar.xz |
Merge branch 'ignore-users' of github.com:NepNep21/nheko into ignore-users
Diffstat (limited to 'resources')
-rw-r--r-- | resources/qml/dialogs/IgnoredUsers.qml | 69 | ||||
-rw-r--r-- | resources/qml/dialogs/UserProfile.qml | 32 |
2 files changed, 101 insertions, 0 deletions
diff --git a/resources/qml/dialogs/IgnoredUsers.qml b/resources/qml/dialogs/IgnoredUsers.qml new file mode 100644 index 00000000..ff1e528e --- /dev/null +++ b/resources/qml/dialogs/IgnoredUsers.qml @@ -0,0 +1,69 @@ +// SPDX-FileCopyrightText: Nheko Contributors +// +// SPDX-License-Identifier: GPL-3.0-or-later + +import QtQml 2.15 +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 2.15 +import QtQuick.Window 2.15 +import im.nheko 1.0 + +Window { + id: ignoredUsers + required property var profile + + title: qsTr("Ignored users") + flags: Qt.WindowCloseButtonHint | Qt.WindowTitleHint + height: 650 + width: 420 + minimumHeight: 420 + color: palette.window + + Connections { + target: profile + function onUnignoredUserError(id, err) { + const text = qsTr("Failed to unignore \"%1\": %2").arg(id).arg(err) + MainWindow.showNotification(text) + } + } + + ListView { + id: view + anchors.fill: parent + spacing: Nheko.paddingMedium + + model: TimelineManager.ignoredUsers + header: ColumnLayout { + Text { + Layout.fillWidth: true + Layout.maximumWidth: view.width + wrapMode: Text.Wrap + color: palette.text + text: qsTr("Ignoring a user hides their messages (they can still see yours!).") + } + + Item { Layout.preferredHeight: Nheko.paddingLarge } + } + delegate: RowLayout { + width: view.width + Text { + Layout.fillWidth: true + Layout.alignment: Qt.AlignLeft + elide: Text.ElideRight + color: palette.text + text: modelData + } + + ImageButton { + Layout.preferredHeight: 24 + Layout.preferredWidth: 24 + image: ":/icons/icons/ui/delete.svg" + hoverEnabled: true + ToolTip.visible: hovered + ToolTip.text: qsTr("Stop Ignoring.") + onClicked: profile.ignoredStatus(modelData, false) + } + } + } +} \ No newline at end of file diff --git a/resources/qml/dialogs/UserProfile.qml b/resources/qml/dialogs/UserProfile.qml index b54b52a4..3d65d52a 100644 --- a/resources/qml/dialogs/UserProfile.qml +++ b/resources/qml/dialogs/UserProfile.qml @@ -292,6 +292,19 @@ ApplicationWindow { ImageButton { Layout.preferredHeight: 24 Layout.preferredWidth: 24 + image: ":/icons/icons/ui/volume-off-indicator.svg" + hoverEnabled: true + ToolTip.visible: hovered + ToolTip.text: qsTr("Ignore the user.") + onClicked: { + profile.ignoredStatus(profile.userid, true) + } + visible: !profile.isSelf && !profile.isGlobalUserProfile + } + + ImageButton { + Layout.preferredHeight: 24 + Layout.preferredWidth: 24 image: ":/icons/icons/ui/refresh.svg" hoverEnabled: true ToolTip.visible: hovered @@ -299,6 +312,25 @@ ApplicationWindow { onClicked: profile.refreshDevices() } + ImageButton { + Layout.preferredHeight: 24 + Layout.preferredWidth: 24 + image: ":/icons/icons/ui/volume-off-indicator.svg" + hoverEnabled: true + ToolTip.visible: hovered + ToolTip.text: qsTr("Ignored users.") + onClicked: { + var component = Qt.createComponent("IgnoredUsers.qml") + if (component.status == Component.Ready) { + var window = component.createObject(userProfileDialog, { profile: profile}) + window.show() + timelineRoot.destroyOnClose(window) + } else { + console.error("Failed to create component: " + component.errorString()); + } + } + visible: profile.isSelf && profile.isGlobalUserProfile + } } TabBar { |