diff options
| author | Gabriel de Dietrich <gabriel.dedietrich@digia.com> | 2013-02-25 14:40:24 +0100 |
|---|---|---|
| committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-02-25 15:43:37 +0100 |
| commit | 7cf9b32258c0c1b11cc12693f6feef7dc9d13ef7 (patch) | |
| tree | ba7334c3f36c0a0de1320356836f1b3bfda14544 /src/controls/qtmenuitem.cpp | |
| parent | ea4a6d3c095b62e1afb4ccf5125f1280f172e30e (diff) | |
Menu: Fix 'selectedIndex' update on item trigger
This demanded some code refactoring, and the introduction
of the parent menu property. Updated auto-tests too.
Change-Id: I3d9070b0a1a76d6c174ccf13965d30413f23aadd
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
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(); |
