getUser UserDetailDialog
Use `NeoChatRoom::getUser` to provide the user properties in `UserDetailDialog`
This commit is contained in:
@@ -390,8 +390,7 @@ ColumnLayout {
|
|||||||
onClicked: {
|
onClicked: {
|
||||||
userDetailDialog.createObject(QQC2.ApplicationWindow.overlay, {
|
userDetailDialog.createObject(QQC2.ApplicationWindow.overlay, {
|
||||||
room: currentRoom,
|
room: currentRoom,
|
||||||
user: root.author.object,
|
user: root.author
|
||||||
displayName: root.author.displayName
|
|
||||||
}).open();
|
}).open();
|
||||||
}
|
}
|
||||||
cursorShape: Qt.PointingHandCursor
|
cursorShape: Qt.PointingHandCursor
|
||||||
@@ -474,9 +473,7 @@ ColumnLayout {
|
|||||||
onClicked: {
|
onClicked: {
|
||||||
userDetailDialog.createObject(QQC2.ApplicationWindow.overlay, {
|
userDetailDialog.createObject(QQC2.ApplicationWindow.overlay, {
|
||||||
room: currentRoom,
|
room: currentRoom,
|
||||||
user: root.author.object,
|
user: root.author
|
||||||
displayName: root.author.displayName,
|
|
||||||
avatarSource: root.author.avatarSource
|
|
||||||
}).open();
|
}).open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -398,7 +398,7 @@ QQC2.ScrollView {
|
|||||||
function showUserDetail(user) {
|
function showUserDetail(user) {
|
||||||
userDetailDialog.createObject(QQC2.ApplicationWindow.overlay, {
|
userDetailDialog.createObject(QQC2.ApplicationWindow.overlay, {
|
||||||
room: root.currentRoom,
|
room: root.currentRoom,
|
||||||
user: user,
|
user: root.currentRoom.getUser(user.id),
|
||||||
}).open();
|
}).open();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,9 +18,6 @@ Kirigami.OverlaySheet {
|
|||||||
property var room
|
property var room
|
||||||
property var user
|
property var user
|
||||||
|
|
||||||
property string displayName: user.displayName
|
|
||||||
readonly property url avatar: room.avatarForMember(user)
|
|
||||||
|
|
||||||
parent: applicationWindow().overlay
|
parent: applicationWindow().overlay
|
||||||
|
|
||||||
leftPadding: Kirigami.Units.smallSpacing
|
leftPadding: Kirigami.Units.smallSpacing
|
||||||
@@ -44,9 +41,9 @@ Kirigami.OverlaySheet {
|
|||||||
Layout.preferredWidth: Kirigami.Units.iconSizes.huge
|
Layout.preferredWidth: Kirigami.Units.iconSizes.huge
|
||||||
Layout.preferredHeight: Kirigami.Units.iconSizes.huge
|
Layout.preferredHeight: Kirigami.Units.iconSizes.huge
|
||||||
|
|
||||||
name: displayName
|
name: root.user.displayName
|
||||||
source: avatar
|
source: root.user.avatarSource
|
||||||
color: user.color
|
color: root.user.color
|
||||||
}
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
@@ -59,12 +56,12 @@ Kirigami.OverlaySheet {
|
|||||||
|
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
wrapMode: Text.NoWrap
|
wrapMode: Text.NoWrap
|
||||||
text: room.htmlSafeMemberName(user.id)
|
text: user.displayName
|
||||||
}
|
}
|
||||||
|
|
||||||
Kirigami.SelectableLabel {
|
Kirigami.SelectableLabel {
|
||||||
textFormat: TextEdit.PlainText
|
textFormat: TextEdit.PlainText
|
||||||
text: user.id
|
text: root.user.id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -74,50 +71,50 @@ Kirigami.OverlaySheet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Kirigami.BasicListItem {
|
Kirigami.BasicListItem {
|
||||||
visible: user !== room.localUser
|
visible: !root.user.isLocalUser
|
||||||
action: Kirigami.Action {
|
action: Kirigami.Action {
|
||||||
text: room.connection.isIgnored(user) ? i18n("Unignore this user") : i18n("Ignore this user")
|
text: room.connection.isIgnored(root.user.object) ? i18n("Unignore this user") : i18n("Ignore this user")
|
||||||
icon.name: "im-invisible-user"
|
icon.name: "im-invisible-user"
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
root.close()
|
root.close()
|
||||||
room.connection.isIgnored(user) ? room.connection.removeFromIgnoredUsers(user) : room.connection.addToIgnoredUsers(user)
|
room.connection.isIgnored(root.user.object) ? room.connection.removeFromIgnoredUsers(root.user.object) : room.connection.addToIgnoredUsers(root.user.object)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Kirigami.BasicListItem {
|
Kirigami.BasicListItem {
|
||||||
visible: user !== room.localUser && room.canSendState("kick") && room.containsUser(user.id)
|
visible: !root.user.isLocalUser && room.canSendState("kick") && room.containsUser(root.user.id)
|
||||||
|
|
||||||
action: Kirigami.Action {
|
action: Kirigami.Action {
|
||||||
text: i18n("Kick this user")
|
text: i18n("Kick this user")
|
||||||
icon.name: "im-kick-user"
|
icon.name: "im-kick-user"
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
room.kickMember(user.id)
|
room.kickMember(root.user.id)
|
||||||
root.close()
|
root.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Kirigami.BasicListItem {
|
Kirigami.BasicListItem {
|
||||||
visible: user !== room.localUser && room.canSendState("invite") && !room.containsUser(user.id)
|
visible: !root.user.isLocalUser && room.canSendState("invite") && !room.containsUser(root.user.id)
|
||||||
|
|
||||||
action: Kirigami.Action {
|
action: Kirigami.Action {
|
||||||
enabled: !room.isUserBanned(user.id)
|
enabled: !room.isUserBanned(root.user.id)
|
||||||
text: i18n("Invite this user")
|
text: i18n("Invite this user")
|
||||||
icon.name: "list-add-user"
|
icon.name: "list-add-user"
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
room.inviteToRoom(user.id)
|
room.inviteToRoom(root.user.id)
|
||||||
root.close()
|
root.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Kirigami.BasicListItem {
|
Kirigami.BasicListItem {
|
||||||
visible: user !== room.localUser && room.canSendState("ban") && !room.isUserBanned(user.id)
|
visible: !root.user.isLocalUser && room.canSendState("ban") && !room.isUserBanned(root.user.id)
|
||||||
|
|
||||||
action: Kirigami.Action {
|
action: Kirigami.Action {
|
||||||
text: i18n("Ban this user")
|
text: i18n("Ban this user")
|
||||||
icon.name: "im-ban-user"
|
icon.name: "im-ban-user"
|
||||||
icon.color: Kirigami.Theme.negativeTextColor
|
icon.color: Kirigami.Theme.negativeTextColor
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
applicationWindow().pageStack.pushDialogLayer("qrc:/BanSheet.qml", {room: room, userId: user.id}, {
|
applicationWindow().pageStack.pushDialogLayer("qrc:/BanSheet.qml", {room: root.room, userId: root.user.id}, {
|
||||||
title: i18nc("@title", "Ban User"),
|
title: i18nc("@title", "Ban User"),
|
||||||
width: Kirigami.Units.gridUnit * 25
|
width: Kirigami.Units.gridUnit * 25
|
||||||
})
|
})
|
||||||
@@ -126,14 +123,14 @@ Kirigami.OverlaySheet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Kirigami.BasicListItem {
|
Kirigami.BasicListItem {
|
||||||
visible: user !== room.localUser && room.canSendState("ban") && room.isUserBanned(user.id)
|
visible: !root.user.isLocalUser && room.canSendState("ban") && room.isUserBanned(root.user.id)
|
||||||
|
|
||||||
action: Kirigami.Action {
|
action: Kirigami.Action {
|
||||||
text: i18n("Unban this user")
|
text: i18n("Unban this user")
|
||||||
icon.name: "im-irc"
|
icon.name: "im-irc"
|
||||||
icon.color: Kirigami.Theme.negativeTextColor
|
icon.color: Kirigami.Theme.negativeTextColor
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
room.unban(user.id)
|
room.unban(root.user.id)
|
||||||
root.close()
|
root.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -162,14 +159,14 @@ Kirigami.OverlaySheet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Kirigami.BasicListItem {
|
Kirigami.BasicListItem {
|
||||||
visible: user === room.localUser || room.canSendState("redact")
|
visible: root.user.isLocalUser || room.canSendState("redact")
|
||||||
|
|
||||||
action: Kirigami.Action {
|
action: Kirigami.Action {
|
||||||
text: i18n("Remove recent messages by this user")
|
text: i18n("Remove recent messages by this user")
|
||||||
icon.name: "delete"
|
icon.name: "delete"
|
||||||
icon.color: Kirigami.Theme.negativeTextColor
|
icon.color: Kirigami.Theme.negativeTextColor
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
applicationWindow().pageStack.pushDialogLayer("qrc:/RemoveSheet.qml", {room: root.room, userId: user.id}, {
|
applicationWindow().pageStack.pushDialogLayer("qrc:/RemoveSheet.qml", {room: root.room, userId: root.user.id}, {
|
||||||
title: i18nc("@title", "Remove Messages"),
|
title: i18nc("@title", "Remove Messages"),
|
||||||
width: Kirigami.Units.gridUnit * 25
|
width: Kirigami.Units.gridUnit * 25
|
||||||
})
|
})
|
||||||
@@ -178,12 +175,12 @@ Kirigami.OverlaySheet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Kirigami.BasicListItem {
|
Kirigami.BasicListItem {
|
||||||
visible: user !== room.localUser
|
visible: !root.user.isLocalUser
|
||||||
action: Kirigami.Action {
|
action: Kirigami.Action {
|
||||||
text: i18n("Open a private chat")
|
text: i18n("Open a private chat")
|
||||||
icon.name: "document-send"
|
icon.name: "document-send"
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
Controller.openOrCreateDirectChat(user);
|
Controller.openOrCreateDirectChat(root.user.object);
|
||||||
root.close()
|
root.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -193,7 +190,7 @@ Kirigami.OverlaySheet {
|
|||||||
text: i18n("Copy link")
|
text: i18n("Copy link")
|
||||||
icon.name: "username-copy"
|
icon.name: "username-copy"
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
Clipboard.saveText("https://matrix.to/#/" + user.id)
|
Clipboard.saveText("https://matrix.to/#/" + root.user.id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ ColumnLayout {
|
|||||||
onTriggered: {
|
onTriggered: {
|
||||||
const popup = userDetailDialog.createObject(QQC2.ApplicationWindow.overlay, {
|
const popup = userDetailDialog.createObject(QQC2.ApplicationWindow.overlay, {
|
||||||
room: room,
|
room: room,
|
||||||
user: room.directChatRemoteUser,
|
user: room.getUser(room.directChatRemoteUser.id),
|
||||||
})
|
})
|
||||||
popup.closed.connect(function() {
|
popup.closed.connect(function() {
|
||||||
userListItem.highlighted = false
|
userListItem.highlighted = false
|
||||||
|
|||||||
@@ -243,7 +243,7 @@ Kirigami.OverlayDrawer {
|
|||||||
onClicked: {
|
onClicked: {
|
||||||
const popup = userDetailDialog.createObject(QQC2.ApplicationWindow.overlay, {
|
const popup = userDetailDialog.createObject(QQC2.ApplicationWindow.overlay, {
|
||||||
room: room,
|
room: room,
|
||||||
user: user, displayName: name,
|
user: room.getUser(user.id)
|
||||||
})
|
})
|
||||||
popup.closed.connect(function() {
|
popup.closed.connect(function() {
|
||||||
userListItem.highlighted = false
|
userListItem.highlighted = false
|
||||||
|
|||||||
Reference in New Issue
Block a user