mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-25 20:48:52 +03:00
Switch member dialog to using ItemDelegate
This commit is contained in:
parent
cf43b7b9f0
commit
8ca1b93abb
1 changed files with 64 additions and 47 deletions
|
@ -85,67 +85,84 @@ ApplicationWindow {
|
||||||
enabled: !Settings.mobileMode
|
enabled: !Settings.mobileMode
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate: RowLayout {
|
delegate: ItemDelegate {
|
||||||
id: del
|
id: del
|
||||||
|
|
||||||
|
onClicked: Rooms.currentRoom.openUserProfile(model.mxid)
|
||||||
|
padding: Nheko.paddingMedium
|
||||||
width: ListView.view.width
|
width: ListView.view.width
|
||||||
spacing: Nheko.paddingMedium
|
height: memberLayout.implicitHeight
|
||||||
|
background: Rectangle {
|
||||||
Avatar {
|
color: roomMembersRoot.color
|
||||||
id: avatar
|
|
||||||
|
|
||||||
width: Nheko.avatarSize
|
|
||||||
height: Nheko.avatarSize
|
|
||||||
userid: model.mxid
|
|
||||||
url: model.avatarUrl.replace("mxc://", "image://MxcImage/")
|
|
||||||
displayName: model.displayName
|
|
||||||
onClicked: Rooms.currentRoom.openUserProfile(model.mxid)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
RowLayout {
|
||||||
spacing: Nheko.paddingSmall
|
id: memberLayout
|
||||||
|
|
||||||
ElidedLabel {
|
spacing: Nheko.paddingMedium
|
||||||
fullText: model.displayName
|
|
||||||
color: TimelineManager.userColor(model ? model.mxid : "", Nheko.colors.window)
|
Avatar {
|
||||||
font.pixelSize: fontMetrics.font.pixelSize
|
id: avatar
|
||||||
elideWidth: del.width - Nheko.paddingMedium * 2 - avatar.width - encryptInd.width
|
|
||||||
|
width: Nheko.avatarSize
|
||||||
|
height: Nheko.avatarSize
|
||||||
|
userid: model.mxid
|
||||||
|
url: model.avatarUrl.replace("mxc://", "image://MxcImage/")
|
||||||
|
displayName: model.displayName
|
||||||
|
enabled: false
|
||||||
}
|
}
|
||||||
|
|
||||||
ElidedLabel {
|
ColumnLayout {
|
||||||
fullText: model.mxid
|
spacing: Nheko.paddingSmall
|
||||||
color: Nheko.colors.buttonText
|
|
||||||
font.pixelSize: Math.ceil(fontMetrics.font.pixelSize * 0.9)
|
ElidedLabel {
|
||||||
elideWidth: del.width - Nheko.paddingMedium * 2 - avatar.width - encryptInd.width
|
fullText: model.displayName
|
||||||
|
color: TimelineManager.userColor(model ? model.mxid : "", Nheko.colors.window)
|
||||||
|
font.pixelSize: fontMetrics.font.pixelSize
|
||||||
|
elideWidth: del.width - Nheko.paddingMedium * 2 - avatar.width - encryptInd.width
|
||||||
|
}
|
||||||
|
|
||||||
|
ElidedLabel {
|
||||||
|
fullText: model.mxid
|
||||||
|
color: Nheko.colors.buttonText
|
||||||
|
font.pixelSize: Math.ceil(fontMetrics.font.pixelSize * 0.9)
|
||||||
|
elideWidth: del.width - Nheko.paddingMedium * 2 - avatar.width - encryptInd.width
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
Layout.fillHeight: true
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
EncryptionIndicator {
|
||||||
Layout.fillHeight: true
|
id: encryptInd
|
||||||
Layout.fillWidth: true
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
Layout.alignment: Qt.AlignRight
|
||||||
|
visible: room.isEncrypted
|
||||||
|
encrypted: room.isEncrypted
|
||||||
|
trust: encrypted ? model.trustlevel : Crypto.Unverified
|
||||||
|
ToolTip.text: {
|
||||||
|
if (!encrypted)
|
||||||
|
return qsTr("This room is not encrypted!");
|
||||||
|
|
||||||
EncryptionIndicator {
|
switch (trust) {
|
||||||
id: encryptInd
|
case Crypto.Verified:
|
||||||
|
return qsTr("This user is verified.");
|
||||||
Layout.alignment: Qt.AlignRight
|
case Crypto.TOFU:
|
||||||
visible: room.isEncrypted
|
return qsTr("This user isn't verified, but is still using the same master key from the first time you met.");
|
||||||
encrypted: room.isEncrypted
|
default:
|
||||||
trust: encrypted ? model.trustlevel : Crypto.Unverified
|
return qsTr("This user has unverified devices!");
|
||||||
ToolTip.text: {
|
}
|
||||||
if (!encrypted)
|
|
||||||
return qsTr("This room is not encrypted!");
|
|
||||||
|
|
||||||
switch (trust) {
|
|
||||||
case Crypto.Verified:
|
|
||||||
return qsTr("This user is verified.");
|
|
||||||
case Crypto.TOFU:
|
|
||||||
return qsTr("This user isn't verified, but is still using the same master key from the first time you met.");
|
|
||||||
default:
|
|
||||||
return qsTr("This user has unverified devices!");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
CursorShape {
|
||||||
|
anchors.fill: parent
|
||||||
|
cursorShape: Qt.PointingHandCursor
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue