Skip to content
Snippets Groups Projects
Unverified Commit 0b28e793 authored by NepNep21's avatar NepNep21
Browse files

Move dialog to settings page and add avatar image to delegate

parent a0a49b6c
No related branches found
No related tags found
No related merge requests found
......@@ -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
}
......@@ -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 {
......
......@@ -233,6 +233,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
......
......@@ -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()) {
......
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment