diff options
author | Gabriel de Dietrich <gabriel.dedietrich@digia.com> | 2014-06-05 20:08:04 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-06-06 12:20:11 +0200 |
commit | c3fe8736a8cd00581a33cbea62a752331e6bd619 (patch) | |
tree | 1f25cf551dacd3a5348598d94593b07a2f627493 | |
parent | 0b4fa5ff684f36121491e1513ebc55dc4460605c (diff) | |
download | qtquickcontrols-c3fe8736a8cd00581a33cbea62a752331e6bd619.tar.gz |
Menu: Properly relay enabled state to QPA menu object
Task-number: QTBUG-39384
Change-Id: I1b71912b4f35ea0aa9e06667a5c0ecedec30f980
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
-rw-r--r-- | src/controls/qquickmenu.cpp | 20 | ||||
-rw-r--r-- | src/controls/qquickmenu_p.h | 2 |
2 files changed, 19 insertions, 3 deletions
diff --git a/src/controls/qquickmenu.cpp b/src/controls/qquickmenu.cpp index 8982b46c..c12060bf 100644 --- a/src/controls/qquickmenu.cpp +++ b/src/controls/qquickmenu.cpp @@ -275,14 +275,28 @@ QQuickMenu::~QQuickMenu() m_platformMenu = 0; } +void QQuickMenu::syncParentMenuBar() +{ + QQuickMenuBar *menubar = qobject_cast<QQuickMenuBar *>(parent()); + if (menubar && menubar->platformMenuBar()) + menubar->platformMenuBar()->syncMenu(m_platformMenu); +} + void QQuickMenu::setVisible(bool v) { QQuickMenuBase::setVisible(v); if (m_platformMenu) { m_platformMenu->setVisible(v); - QQuickMenuBar *menubar = qobject_cast<QQuickMenuBar *>(parent()); - if (menubar && menubar->platformMenuBar()) - menubar->platformMenuBar()->syncMenu(m_platformMenu); + syncParentMenuBar(); + } +} + +void QQuickMenu::setEnabled(bool e) +{ + QQuickMenuText::setEnabled(e); + if (m_platformMenu) { + m_platformMenu->setEnabled(e); + syncParentMenuBar(); } } diff --git a/src/controls/qquickmenu_p.h b/src/controls/qquickmenu_p.h index 85cc0107..73f5c505 100644 --- a/src/controls/qquickmenu_p.h +++ b/src/controls/qquickmenu_p.h @@ -109,6 +109,7 @@ public: virtual ~QQuickMenu(); void setVisible(bool); + void setEnabled(bool); int selectedIndex() const { return m_selectedIndex; } void setSelectedIndex(int index); @@ -149,6 +150,7 @@ protected Q_SLOTS: private: QQuickWindow *findParentWindow(); + void syncParentMenuBar(); int itemIndexForListIndex(int listIndex) const; void itemIndexToListIndex(int, int *, int *) const; |