diff options
Diffstat (limited to 'src/controls/qtmenuitem.cpp')
| -rw-r--r-- | src/controls/qtmenuitem.cpp | 24 |
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(); |
