diff options
author | NepNep21 <43792621+NepNep21@users.noreply.github.com> | 2023-10-24 19:46:04 -0300 |
---|---|---|
committer | NepNep21 <43792621+NepNep21@users.noreply.github.com> | 2023-10-24 19:46:04 -0300 |
commit | 0b28e7934d4647288d4704d6fa44259d47b79782 (patch) | |
tree | 2373dbec5a6d80b27e9b5b593f2655bdeaa04a57 | |
parent | Cleanup ignore user functionality slightly (diff) | |
download | nheko-0b28e7934d4647288d4704d6fa44259d47b79782.tar.xz |
Move dialog to settings page and add avatar image to delegate
-rw-r--r-- | resources/qml/dialogs/IgnoredUsers.qml | 23 | ||||
-rw-r--r-- | resources/qml/dialogs/UserProfile.qml | 20 | ||||
-rw-r--r-- | resources/qml/pages/UserSettingsPage.qml | 18 | ||||
-rw-r--r-- | src/UserSettingsPage.cpp | 6 | ||||
-rw-r--r-- | src/UserSettingsPage.h | 2 |
5 files changed, 38 insertions, 31 deletions
diff --git a/resources/qml/dialogs/IgnoredUsers.qml b/resources/qml/dialogs/IgnoredUsers.qml index ff1e528e..6527eb18 100644 --- a/resources/qml/dialogs/IgnoredUsers.qml +++ b/resources/qml/dialogs/IgnoredUsers.qml @@ -11,7 +11,6 @@ import im.nheko 1.0 Window { id: ignoredUsers - required property var profile title: qsTr("Ignored users") flags: Qt.WindowCloseButtonHint | Qt.WindowTitleHint @@ -20,14 +19,6 @@ Window { 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 @@ -46,7 +37,17 @@ Window { Item { Layout.preferredHeight: Nheko.paddingLarge } } delegate: RowLayout { + property var profile: TimelineManager.getGlobalUserProfile(modelData) + width: view.width + + Avatar { + enabled: false + displayName: profile.displayName + userid: profile.userid + url: profile.avatarUrl.replace("mxc://", "image://MxcImage/") + } + Text { Layout.fillWidth: true Layout.alignment: Qt.AlignLeft @@ -62,8 +63,8 @@ Window { hoverEnabled: true ToolTip.visible: hovered ToolTip.text: qsTr("Stop Ignoring.") - onClicked: profile.ignoredStatus(modelData, false) + onClicked: profile.ignored = false } } } -} \ No newline at end of file +} diff --git a/resources/qml/dialogs/UserProfile.qml b/resources/qml/dialogs/UserProfile.qml index 989c2bab..6cf747e3 100644 --- a/resources/qml/dialogs/UserProfile.qml +++ b/resources/qml/dialogs/UserProfile.qml @@ -310,26 +310,6 @@ ApplicationWindow { ToolTip.text: qsTr("Refresh device list.") 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 { diff --git a/resources/qml/pages/UserSettingsPage.qml b/resources/qml/pages/UserSettingsPage.qml index 7159a2f6..2dc4684d 100644 --- a/resources/qml/pages/UserSettingsPage.qml +++ b/resources/qml/pages/UserSettingsPage.qml @@ -234,6 +234,24 @@ Rectangle { } DelegateChoice { + roleValue: UserSettingsModel.ManageIgnoredUsers + Button { + text: qsTr("MANAGE") + onClicked: { + var dialog = ignoredUsersDialog.createObject(); + dialog.show(); + destroyOnClose(dialog); + } + + Component { + id: ignoredUsersDialog + + IgnoredUsers {} + } + } + } + + DelegateChoice { Text { text: model.value } diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp index 4a25880c..49b267f7 100644 --- a/src/UserSettingsPage.cpp +++ b/src/UserSettingsPage.cpp @@ -1043,6 +1043,8 @@ UserSettingsModel::data(const QModelIndex &index, int role) const return tr("Read receipts"); case HiddenTimelineEvents: return tr("Hidden events"); + case IgnoredUsers: + return tr("Ignored users"); case DesktopNotifications: return tr("Desktop notifications"); case AlertOnNotification: @@ -1486,6 +1488,8 @@ UserSettingsModel::data(const QModelIndex &index, int role) const return tr("Regularly redact expired events as specified in the event expiration " "configuration. Since this is currently not executed server side, you need " "to have one client running this regularly."); + case IgnoredUsers: + return tr("Manage your ignored users."); } } else if (role == Type) { switch (index.row()) { @@ -1572,6 +1576,8 @@ UserSettingsModel::data(const QModelIndex &index, int role) const return KeyStatus; case HiddenTimelineEvents: return ConfigureHiddenEvents; + case IgnoredUsers: + return ManageIgnoredUsers; } } else if (role == ValueLowerBound) { switch (index.row()) { diff --git a/src/UserSettingsPage.h b/src/UserSettingsPage.h index 2bae068a..2cf8e5ab 100644 --- a/src/UserSettingsPage.h +++ b/src/UserSettingsPage.h @@ -508,6 +508,7 @@ class UserSettingsModel : public QAbstractListModel MessageVisibilitySection, ExpireEvents, HiddenTimelineEvents, + IgnoredUsers, NotificationsSection, DesktopNotifications, @@ -566,6 +567,7 @@ public: SessionKeyImportExport, XSignKeysRequestDownload, ConfigureHiddenEvents, + ManageIgnoredUsers, }; Q_ENUM(Types); |