summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNepNep21 <43792621+NepNep21@users.noreply.github.com>2023-10-24 19:46:04 -0300
committerNepNep21 <43792621+NepNep21@users.noreply.github.com>2023-10-24 19:46:04 -0300
commit0b28e7934d4647288d4704d6fa44259d47b79782 (patch)
tree2373dbec5a6d80b27e9b5b593f2655bdeaa04a57
parenta0a49b6c2a3cf48cb4e979a92cd2065a51bff775 (diff)
Move dialog to settings page and add avatar image to delegate
-rw-r--r--resources/qml/dialogs/IgnoredUsers.qml23
-rw-r--r--resources/qml/dialogs/UserProfile.qml20
-rw-r--r--resources/qml/pages/UserSettingsPage.qml18
-rw-r--r--src/UserSettingsPage.cpp6
-rw-r--r--src/UserSettingsPage.h2
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);