Use AvatarButton in UserInfo instead of a custom button. This has the advantage of showing keyboard focus properly

This commit is contained in:
James Graham
2024-04-22 16:50:56 +02:00
parent 9d6ba324fb
commit 1eb622165b

View File

@@ -5,7 +5,7 @@ import QtQuick
import QtQuick.Controls as QQC2 import QtQuick.Controls as QQC2
import QtQuick.Layouts import QtQuick.Layouts
import org.kde.kirigami as Kirigami import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.labs.components as KirigamiComponents import org.kde.kirigamiaddons.components as KirigamiComponents
import org.kde.kirigamiaddons.delegates as Delegates import org.kde.kirigamiaddons.delegates as Delegates
import org.kde.neochat import org.kde.neochat
@@ -35,43 +35,28 @@ RowLayout {
switchUserButton.checked = false; switchUserButton.checked = false;
} }
} }
KirigamiComponents.AvatarButton {
QQC2.AbstractButton {
id: accountButton id: accountButton
readonly property string mediaId: root.connection.localUser.avatarMediaId
Layout.preferredWidth: Kirigami.Units.gridUnit + Kirigami.Units.largeSpacing Layout.preferredWidth: Kirigami.Units.iconSizes.medium
Layout.preferredHeight: Kirigami.Units.gridUnit + Kirigami.Units.largeSpacing Layout.preferredHeight: Kirigami.Units.iconSizes.medium
Layout.leftMargin: Kirigami.Units.largeSpacing Layout.leftMargin: Kirigami.Units.largeSpacing
TapHandler {
acceptedButtons: Qt.RightButton | Qt.LeftButton
onTapped: (eventPoint, button) => {
// TODO Qt6 remove
if (!button) {
button = eventPoint.event.button;
}
if (button == Qt.RightButton) {
accountMenu.open();
} else {
pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat.settings', 'AccountEditorPage'), {
connection: root.connection
}, {
title: i18n("Account editor")
});
}
}
}
text: i18n("Edit this account") text: i18n("Edit this account")
source: mediaId ? ("image://mxc/" + mediaId) : ""
contentItem: KirigamiComponents.Avatar { onClicked: pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat.settings', 'AccountEditorPage'), {
readonly property string mediaId: root.connection.localUser.avatarMediaId connection: root.connection
}, {
title: i18n("Account editor")
});
source: mediaId ? ("image://mxc/" + mediaId) : "" TapHandler {
name: root.connection.localUser.displayName ?? root.connection.localUser.id acceptedButtons: Qt.RightButton
onTapped: accountMenu.open()
} }
} }
ColumnLayout { ColumnLayout {
Layout.fillWidth: true Layout.fillWidth: true
Layout.maximumWidth: Math.round(root.width * 0.55) Layout.maximumWidth: Math.round(root.width * 0.55)