summaryrefslogtreecommitdiffstats
path: root/src/controls/qtmenuitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/controls/qtmenuitem.cpp')
-rw-r--r--src/controls/qtmenuitem.cpp24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/controls/qtmenuitem.cpp b/src/controls/qtmenuitem.cpp
index a62845123..c53f9858f 100644
--- a/src/controls/qtmenuitem.cpp
+++ b/src/controls/qtmenuitem.cpp
@@ -51,7 +51,7 @@
QT_BEGIN_NAMESPACE
QtMenuBase::QtMenuBase(QObject *parent)
- : QObject(parent), m_visualItem(0)
+ : QObject(parent), m_parentMenu(0), m_visualItem(0)
{
m_platformItem = QGuiApplicationPrivate::platformTheme()->createPlatformMenuItem();
}
@@ -61,6 +61,16 @@ QtMenuBase::~QtMenuBase()
delete m_platformItem;
}
+QtMenu *QtMenuBase::parentMenu() const
+{
+ return m_parentMenu;
+}
+
+void QtMenuBase::setParentMenu(QtMenu *parentMenu)
+{
+ m_parentMenu = parentMenu;
+}
+
void QtMenuBase::syncWithPlatformMenu()
{
QtMenu *menu = qobject_cast<QtMenu *>(parent());
@@ -79,7 +89,6 @@ void QtMenuBase::setVisualItem(QQuickItem *item)
m_visualItem = item;
}
-
/*!
\qmltype MenuSeparator
\instantiates QtMenuSeparator
@@ -206,6 +215,12 @@ QtMenuItem::~QtMenuItem()
unbindFromAction(m_action);
}
+void QtMenuItem::setParentMenu(QtMenu *parentMenu)
+{
+ QtMenuBase::setParentMenu(parentMenu);
+ connect(this, SIGNAL(triggered()), parentMenu, SLOT(updateSelectedIndex()));
+}
+
void QtMenuItem::bindToAction(QtAction *action)
{
m_action = action;
@@ -289,11 +304,6 @@ void QtMenuItem::setAction(QtAction *a)
emit actionChanged();
}
-QtMenu *QtMenuItem::parentMenu() const
-{
- return qobject_cast<QtMenu *>(parent());
-}
-
QString QtMenuItem::text() const
{
return m_action ? m_action->text() : QString();