diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/controls/qquickmenu.cpp | 2 | ||||
| -rw-r--r-- | src/controls/qquickmenupopupwindow.cpp | 11 | ||||
| -rw-r--r-- | src/controls/qquickmenupopupwindow_p.h | 7 |
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 |
