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 { text: i18n("Edit this account")
acceptedButtons: Qt.RightButton | Qt.LeftButton source: mediaId ? ("image://mxc/" + mediaId) : ""
onTapped: (eventPoint, button) => {
// TODO Qt6 remove onClicked: pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat.settings', 'AccountEditorPage'), {
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 connection: root.connection
}, { }, {
title: i18n("Account editor") title: i18n("Account editor")
}); });
}
}
}
text: i18n("Edit this account") TapHandler {
acceptedButtons: Qt.RightButton
contentItem: KirigamiComponents.Avatar { onTapped: accountMenu.open()
readonly property string mediaId: root.connection.localUser.avatarMediaId
source: mediaId ? ("image://mxc/" + mediaId) : ""
name: root.connection.localUser.displayName ?? root.connection.localUser.id
} }
} }
ColumnLayout { ColumnLayout {
Layout.fillWidth: true Layout.fillWidth: true
Layout.maximumWidth: Math.round(root.width * 0.55) Layout.maximumWidth: Math.round(root.width * 0.55)