aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickmenu.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-07-13 12:33:46 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-07-14 11:44:16 +0000
commit867979435caf7a9fc5813537abee54e94bd616d9 (patch)
treedf066c7eeffe7af151a9b5f816679db4dfe4d301 /src/quicktemplates2/qquickmenu.cpp
parent1a5b3a0f7ba924c197bbade5d5c7732e8b2d978a (diff)
QQuickMenu: get rid of openSubMenu()
Change-Id: I8125971dd91614984379e734af21f5ff28852667 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickmenu.cpp')
-rw-r--r--src/quicktemplates2/qquickmenu.cpp33
1 files changed, 15 insertions, 18 deletions
diff --git a/src/quicktemplates2/qquickmenu.cpp b/src/quicktemplates2/qquickmenu.cpp
index 66615500..ab4f6b56 100644
--- a/src/quicktemplates2/qquickmenu.cpp
+++ b/src/quicktemplates2/qquickmenu.cpp
@@ -403,13 +403,11 @@ bool QQuickMenuPrivate::prepareExitTransition()
if (!QQuickPopupPrivate::prepareExitTransition())
return false;
- if (currentItem) {
- QQuickMenu *subMenu = currentItem->subMenu();
- while (subMenu) {
- QPointer<QQuickMenuItem> currentSubMenuItem = QQuickMenuPrivate::get(subMenu)->currentItem;
- subMenu->close();
- subMenu = currentSubMenuItem ? currentSubMenuItem->subMenu() : nullptr;
- }
+ QQuickMenu *subMenu = currentSubMenu();
+ while (subMenu) {
+ QPointer<QQuickMenuItem> currentSubMenuItem = QQuickMenuPrivate::get(subMenu)->currentItem;
+ subMenu->close();
+ subMenu = currentSubMenuItem ? currentSubMenuItem->subMenu() : nullptr;
}
return true;
}
@@ -454,8 +452,8 @@ void QQuickMenuPrivate::onItemTriggered()
if (!item)
return;
- if (item->subMenu())
- openSubMenu(item, true);
+ if (QQuickMenu *subMenu = item->subMenu())
+ subMenu->popup(subMenu->itemAt(0));
else
q->dismiss();
}
@@ -472,15 +470,12 @@ void QQuickMenuPrivate::onItemActiveFocusChanged()
setCurrentIndex(indexOfItem, control ? control->focusReason() : Qt::OtherFocusReason);
}
-void QQuickMenuPrivate::openSubMenu(QQuickMenuItem *item, bool activate)
+QQuickMenu *QQuickMenuPrivate::currentSubMenu() const
{
- QQuickMenu *subMenu = item ? item->subMenu() : nullptr;
- if (!subMenu)
- return;
+ if (!currentItem)
+ return nullptr;
- if (activate)
- QQuickMenuPrivate::get(subMenu)->setCurrentIndex(0, Qt::PopupFocusReason);
- subMenu->open();
+ return currentItem->subMenu();
}
void QQuickMenuPrivate::setParentMenu(QQuickMenu *parent)
@@ -1388,7 +1383,8 @@ void QQuickMenu::keyPressEvent(QKeyEvent *event)
close();
}
} else {
- d->openSubMenu(d->currentItem, true);
+ if (QQuickMenu *subMenu = d->currentSubMenu())
+ subMenu->popup(subMenu->itemAt(0));
}
return;
@@ -1401,7 +1397,8 @@ void QQuickMenu::timerEvent(QTimerEvent *event)
{
Q_D(QQuickMenu);
if (event->timerId() == d->hoverTimer) {
- d->openSubMenu(d->currentItem, false);
+ if (QQuickMenu *subMenu = d->currentSubMenu())
+ subMenu->open();
d->stopHoverTimer();
}
}