diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-01-22 18:40:13 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-01-22 18:40:13 +0100 |
commit | c608ec825410a9287f544a2ae3ce8154424e767d (patch) | |
tree | 39ee3d73d1e970bf808ecb9f1af8affc124199e1 /src/plugins/accessible/widgets/qaccessiblemenu.cpp | |
parent | f5c6a5d06ba7b303f2999dd7a103c29282abfaa6 (diff) | |
parent | 15a32435561a668e69764d12edfa2b5c564c6505 (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
src/corelib/io/qsavefile_p.h
src/corelib/tools/qregularexpression.cpp
src/gui/util/qvalidator.cpp
src/gui/util/qvalidator.h
Change-Id: I58fdf0358bd86e2fad5d9ad0556f3d3f1f535825
Diffstat (limited to 'src/plugins/accessible/widgets/qaccessiblemenu.cpp')
-rw-r--r-- | src/plugins/accessible/widgets/qaccessiblemenu.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/plugins/accessible/widgets/qaccessiblemenu.cpp b/src/plugins/accessible/widgets/qaccessiblemenu.cpp index c7dcee78f0..e467ef50bd 100644 --- a/src/plugins/accessible/widgets/qaccessiblemenu.cpp +++ b/src/plugins/accessible/widgets/qaccessiblemenu.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the plugins of the Qt Toolkit. @@ -104,9 +104,16 @@ QAccessibleInterface *QAccessibleMenu::child(int index) const QAccessibleInterface *QAccessibleMenu::parent() const { - QWidget *parent = menu()->parentWidget(); - if (qobject_cast<QMenu*>(parent) || qobject_cast<QMenuBar*>(parent)) { - return new QAccessibleMenuItem(parent, menu()->menuAction()); + if (QAction *menuAction = menu()->menuAction()) { + QList<QWidget *> parentCandidates; + parentCandidates << menu()->parentWidget(); + parentCandidates << menuAction->associatedWidgets(); + foreach (QWidget *w, parentCandidates) { + if (qobject_cast<QMenu*>(w) || qobject_cast<QMenuBar*>(w)) { + if (w->actions().indexOf(menuAction) != -1) + return new QAccessibleMenuItem(w, menuAction); + } + } } return QAccessibleWidget::parent(); } |