Fix alias and more compact account detail dialog.

This commit is contained in:
Black Hat
2019-07-05 10:24:07 +08:00
parent c16892fa25
commit b41973be28
6 changed files with 89 additions and 73 deletions

View File

@@ -20,55 +20,26 @@ Dialog {
spacing: 0
Repeater {
ListView {
width: parent.width
height: 48
clip: true
orientation: ListView.Horizontal
spacing: 16
model: AccountListModel{
controller: spectralController
}
delegate: Item {
width: detailColumn.width
height: 72
delegate: Avatar {
width: 48
height: 48
RowLayout {
anchors.fill: parent
anchors.margins: 12
spacing: 12
Avatar {
Layout.preferredWidth: height
Layout.fillHeight: true
source: user.avatarMediaId
hint: user.displayName || "No Name"
}
ColumnLayout {
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
Label {
Layout.fillWidth: true
text: user.displayName || "No Name"
color: MPalette.foreground
font.pixelSize: 16
font.bold: true
elide: Text.ElideRight
wrapMode: Text.NoWrap
}
Label {
Layout.fillWidth: true
text: connection === spectralController.connection ? "Active" : "Online"
color: MPalette.lighter
font.pixelSize: 13
elide: Text.ElideRight
wrapMode: Text.NoWrap
}
}
}
source: user.avatarMediaId
hint: user.displayName || "No Name"
Menu {
id: contextMenu
@@ -83,6 +54,8 @@ Dialog {
RippleEffect {
anchors.fill: parent
circular: true
onPrimaryClicked: spectralController.connection = connection
onSecondaryClicked: contextMenu.popup()
}

View File

@@ -176,6 +176,23 @@ Dialog {
}
}
Button {
Layout.alignment: Qt.AlignRight
text: "Save"
highlighted: true
onClicked: {
if (room.name != roomNameField.text) {
room.setName(roomNameField.text)
}
if (room.topic != roomTopicField.text) {
room.setTopic(roomTopicField.text)
}
}
}
MenuSeparator {
Layout.fillWidth: true
}
@@ -202,6 +219,11 @@ Dialog {
model: room.remoteAliases
currentIndex: room.remoteAliases.indexOf(room.canonicalAlias)
onCurrentIndexChanged: {
if (room.canonicalAlias != room.remoteAliases[currentIndex]) {
room.setCanonicalAlias(room.remoteAliases[currentIndex])
}
}
}
}
@@ -225,13 +247,30 @@ Dialog {
Repeater {
model: room.localAliases
delegate: Label {
Layout.fillWidth: true
delegate: RowLayout {
Layout.maximumWidth: parent.width
text: modelData
Label {
text: modelData
font.pixelSize: 12
color: MPalette.lighter
font.pixelSize: 12
color: MPalette.lighter
}
MaterialIcon {
icon: "\ue5cd"
color: MPalette.lighter
font.pixelSize: 12
RippleEffect {
anchors.fill: parent
circular: true
onClicked: room.removeLocalAlias(modelData)
}
}
}
}
}
@@ -273,14 +312,6 @@ Dialog {
onClicked: room.clearBackground()
}
}
Button {
Layout.alignment: Qt.AlignRight
text: "Save"
onClicked: saveSettings()
}
}
Component {
@@ -290,19 +321,5 @@ Dialog {
}
onClosed: destroy()
function saveSettings() {
if (room.name != roomNameField.text) {
room.setName(roomNameField.text)
}
if (room.topic != roomTopicField.text) {
room.setTopic(roomTopicField.text)
}
if (room.canonicalAlias != room.remoteAliases[canonicalAliasComboBox.currentIndex]) {
room.setCanonicalAlias(room.remoteAliases[canonicalAliasComboBox.currentIndex])
}
}
}