summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/controls/qquickmenu.cpp2
-rw-r--r--src/controls/qquickmenupopupwindow.cpp11
-rw-r--r--src/controls/qquickmenupopupwindow_p.h7
3 files changed, 16 insertions, 4 deletions
diff --git a/src/controls/qquickmenu.cpp b/src/controls/qquickmenu.cpp
index 85bb44968..b55675236 100644
--- a/src/controls/qquickmenu.cpp
+++ b/src/controls/qquickmenu.cpp
@@ -421,7 +421,7 @@ void QQuickMenu::__popup(const QRectF &targetRect, int atItemIndex, MenuType men
m_platformMenu->setMenuType(QPlatformMenu::MenuType(menuType));
m_platformMenu->showPopup(parentWindow, globalTargetRect.toRect(), atItem ? atItem->platformItem() : 0);
} else {
- m_popupWindow = new QQuickMenuPopupWindow();
+ m_popupWindow = new QQuickMenuPopupWindow(this);
if (visualItem())
m_popupWindow->setParentItem(visualItem());
else
diff --git a/src/controls/qquickmenupopupwindow.cpp b/src/controls/qquickmenupopupwindow.cpp
index 520639799..f57199081 100644
--- a/src/controls/qquickmenupopupwindow.cpp
+++ b/src/controls/qquickmenupopupwindow.cpp
@@ -41,12 +41,14 @@
#include <qquickitem.h>
#include <QtGui/QScreen>
#include <QtQuick/QQuickRenderControl>
+#include "qquickmenu_p.h"
QT_BEGIN_NAMESPACE
-QQuickMenuPopupWindow::QQuickMenuPopupWindow() :
+QQuickMenuPopupWindow::QQuickMenuPopupWindow(QQuickMenu *menu) :
m_itemAt(0),
- m_logicalParentWindow(0)
+ m_logicalParentWindow(0),
+ m_menu(menu)
{
}
@@ -144,4 +146,9 @@ void QQuickMenuPopupWindow::exposeEvent(QExposeEvent *e)
QQuickPopupWindow::exposeEvent(e);
}
+QQuickMenu *QQuickMenuPopupWindow::menu() const
+{
+ return m_menu;
+}
+
QT_END_NAMESPACE
diff --git a/src/controls/qquickmenupopupwindow_p.h b/src/controls/qquickmenupopupwindow_p.h
index 3f8c29d15..517ba6a0d 100644
--- a/src/controls/qquickmenupopupwindow_p.h
+++ b/src/controls/qquickmenupopupwindow_p.h
@@ -41,11 +41,13 @@
QT_BEGIN_NAMESPACE
+class QQuickMenu;
+
class QQuickMenuPopupWindow : public QQuickPopupWindow
{
Q_OBJECT
public:
- QQuickMenuPopupWindow();
+ QQuickMenuPopupWindow(QQuickMenu *menu);
void setItemAt(QQuickItem *menuItem);
void setParentWindow(QWindow *effectiveParentWindow, QQuickWindow *parentWindow);
@@ -53,6 +55,8 @@ public:
void setParentItem(QQuickItem *);
+ QQuickMenu *menu() const;
+
protected Q_SLOTS:
void updateSize();
void updatePosition();
@@ -65,6 +69,7 @@ private:
QPointF m_oldItemPos;
QPointF m_initialPos;
QQuickWindow *m_logicalParentWindow;
+ QQuickMenu *m_menu;
};
QT_END_NAMESPACE