summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@digia.com>2014-06-05 20:08:04 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-06-06 12:20:11 +0200
commitc3fe8736a8cd00581a33cbea62a752331e6bd619 (patch)
tree1f25cf551dacd3a5348598d94593b07a2f627493
parent0b4fa5ff684f36121491e1513ebc55dc4460605c (diff)
downloadqtquickcontrols-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.cpp20
-rw-r--r--src/controls/qquickmenu_p.h2
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;