mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-21 18:50:47 +03:00
Move dialog to settings page and add avatar image to delegate
This commit is contained in:
parent
a0a49b6c2a
commit
0b28e7934d
5 changed files with 38 additions and 31 deletions
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue