summary refs log tree commit diff
path: root/resources
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2023-10-23 23:58:53 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2023-10-23 23:58:53 +0200
commitfce026725e52b59a79e34dcfb70953173f3cd3be (patch)
tree57f5bc5ab630cd20846b0e590063c80208cbc12a /resources
parentprevent overscroll in roomlist and communities list (diff)
parentFix license lint... (diff)
downloadnheko-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.qml69
-rw-r--r--resources/qml/dialogs/UserProfile.qml32
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 {