diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/controls/qquickmenu.cpp | 3 | ||||
| -rw-r--r-- | src/controls/qquickmenu_p.h | 6 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/controls/qquickmenu.cpp b/src/controls/qquickmenu.cpp index 385db3c0b..f1c4e24b2 100644 --- a/src/controls/qquickmenu.cpp +++ b/src/controls/qquickmenu.cpp @@ -388,7 +388,7 @@ void QQuickMenu::popup() __popup(mousePos.x(), mousePos.y()); } -void QQuickMenu::__popup(qreal x, qreal y, int atItemIndex) +void QQuickMenu::__popup(qreal x, qreal y, int atItemIndex, MenuType menuType) { if (popupVisible()) { __closeMenu(); @@ -415,6 +415,7 @@ void QQuickMenu::__popup(qreal x, qreal y, int atItemIndex) screenPosition.rx() -= qMax(static_cast<qreal>(m_minimumWidth), m_menuContentItem->width()); screenPosition = visualItem()->mapToScene(screenPosition); } + m_platformMenu->setMenuType(QPlatformMenu::MenuType(menuType)); m_platformMenu->showPopup(parentWindow, screenPosition.toPoint(), atItem ? atItem->platformItem() : 0); } else { m_popupWindow = new QQuickMenuPopupWindow(); diff --git a/src/controls/qquickmenu_p.h b/src/controls/qquickmenu_p.h index 73f5c5050..f20a87343 100644 --- a/src/controls/qquickmenu_p.h +++ b/src/controls/qquickmenu_p.h @@ -75,8 +75,12 @@ class QQuickMenu : public QQuickMenuText Q_PROPERTY(qreal __yOffset READ yOffset WRITE setYOffset) Q_PROPERTY(QQuickAction *__action READ action CONSTANT) Q_PROPERTY(QRect __popupGeometry READ popupGeometry NOTIFY __popupGeometryChanged) + Q_ENUMS(MenuType) public: + // MenuType must stay in sync with QPlatformMenu::MenuType + enum MenuType { DefaultMenu = 0, EditMenu }; + Q_INVOKABLE void popup(); Q_INVOKABLE QQuickMenuItem *addItem(QString); Q_INVOKABLE QQuickMenuItem *insertItem(int, QString); @@ -87,7 +91,7 @@ public: Q_INVOKABLE void removeItem(QQuickMenuBase *); Q_INVOKABLE void clear(); - Q_INVOKABLE void __popup(qreal x, qreal y, int atActionIndex = -1); + Q_INVOKABLE void __popup(qreal x, qreal y, int atActionIndex = -1, MenuType menuType = DefaultMenu); public Q_SLOTS: void __closeMenu(); |
