summaryrefslogtreecommitdiff
path: root/src/controls/Menu.qml
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@digia.com>2013-02-26 20:18:40 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-02-27 07:41:56 +0100
commitcddcc3c81e791f88717fee80766523bb0ef3d171 (patch)
treedb8e19442b6f315ec5b0f8aaeedbe8da99f4cdbd /src/controls/Menu.qml
parent44fae3e87c7534fa7bb8f6b26c697e84623f2437 (diff)
downloadqtquickcontrols-cddcc3c81e791f88717fee80766523bb0ef3d171.tar.gz
Menu: Make key navigation to submenu faster
Change-Id: I4423f29d9c678d3432732ddf612042446e196869 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Diffstat (limited to 'src/controls/Menu.qml')
-rw-r--r--src/controls/Menu.qml18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/controls/Menu.qml b/src/controls/Menu.qml
index 7eaa0ded..34126e25 100644
--- a/src/controls/Menu.qml
+++ b/src/controls/Menu.qml
@@ -168,7 +168,7 @@ MenuPrivate {
Keys.onRightPressed: {
var item = itemsRepeater.itemAt(root.currentIndex)
if (item && item.hasSubmenu) {
- item.showSubMenu()
+ item.showSubMenu(true)
item.menuItem.currentIndex = 0
}
}
@@ -212,7 +212,7 @@ MenuPrivate {
if (currentItem) {
root.currentIndex = currentItem.menuItemIndex
if (currentItem.hasSubmenu && !currentItem.menuItem.popupVisible)
- currentItem.showSubMenu()
+ currentItem.showSubMenu(false)
} else {
root.currentIndex = -1
}
@@ -241,15 +241,19 @@ MenuPrivate {
sourceComponent: menuFrameLoader.menuItemStyle
enabled: !isSeparator && !!menuItem && menuItem.enabled
- function showSubMenu() { openMenuTimer.start() }
+ function showSubMenu(immediately) {
+ if (immediately) {
+ if (root.currentIndex === menuItemIndex)
+ menuItem.showPopup(menuFrameLoader.subMenuXPos, 0, -1, menuItemLoader)
+ } else {
+ openMenuTimer.start()
+ }
+ }
Timer {
id: openMenuTimer
interval: 50
- onTriggered: {
- if (root.currentIndex === menuItemIndex)
- menuItem.showPopup(menuFrameLoader.subMenuXPos, 0, -1, menuItemLoader)
- }
+ onTriggered: menuItemLoader.showSubMenu(true)
}
function closeSubMenu() { closeMenuTimer.start() }