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

(cherry picked from commit 1eb622165b)
This commit is contained in:
James Graham
2024-04-22 16:50:56 +02:00
committed by Tobias Fella
parent e9ac9deb40
commit 4097addae9

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)