Improve hamburger menu button
- Open the menu right beneath the button - Use pressed state for the button while the menu is open - Close the menu when clicking the button again - Hide the tooltip while the menu is open
This commit is contained in:
@@ -54,19 +54,31 @@ RowLayout {
|
|||||||
|
|
||||||
QQC2.ToolButton {
|
QQC2.ToolButton {
|
||||||
id: menuButton
|
id: menuButton
|
||||||
Accessible.role: Accessible.ButtonMenu
|
|
||||||
Accessible.onPressAction: menuButton.action.trigger()
|
property QQC2.Menu menuItem: undefined
|
||||||
display: QQC2.AbstractButton.IconOnly
|
|
||||||
checkable: true
|
function openMenu(): void {
|
||||||
text: i18nc("@action:button", "Show Menu")
|
if (!menuItem || !menuItem.visible) {
|
||||||
icon.name: "application-menu-symbolic"
|
menuItem = menu.createObject(menuButton) as QQC2.Menu;
|
||||||
onClicked: {
|
menuItem.closed.connect(menuButton.toggle);
|
||||||
const item = menu.createObject(menuButton) as QQC2.Menu;
|
menuItem.open();
|
||||||
item.closed.connect(menuButton.toggle);
|
} else {
|
||||||
item.open();
|
menuItem.dismiss()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QQC2.ToolTip.visible: hovered
|
Accessible.role: Accessible.ButtonMenu
|
||||||
|
display: QQC2.AbstractButton.IconOnly
|
||||||
|
down: pressed || menuItem.visible
|
||||||
|
text: i18nc("@action:button", "Show Menu")
|
||||||
|
icon.name: "application-menu-symbolic"
|
||||||
|
|
||||||
|
onPressed: openMenu()
|
||||||
|
Keys.onReturnPressed: openMenu()
|
||||||
|
Keys.onEnterPressed: openMenu()
|
||||||
|
Accessible.onPressAction: openMenu()
|
||||||
|
|
||||||
|
QQC2.ToolTip.visible: hovered && !menuItem.visible
|
||||||
QQC2.ToolTip.text: text
|
QQC2.ToolTip.text: text
|
||||||
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
|
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
|
||||||
}
|
}
|
||||||
@@ -74,6 +86,8 @@ RowLayout {
|
|||||||
Component {
|
Component {
|
||||||
id: menu
|
id: menu
|
||||||
QQC2.Menu {
|
QQC2.Menu {
|
||||||
|
y: menuButton.height
|
||||||
|
|
||||||
QQC2.MenuItem {
|
QQC2.MenuItem {
|
||||||
text: i18n("Find your friends")
|
text: i18n("Find your friends")
|
||||||
icon.name: "list-add-user"
|
icon.name: "list-add-user"
|
||||||
|
|||||||
Reference in New Issue
Block a user