aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickmenu_p_p.h
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-06-01 23:36:57 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-06-13 09:34:39 +0000
commit92fcd0a3fb2ee0d1ba242607c1aa5a29864d3650 (patch)
treee55ace5afc75cfaa17f2571fda8cfae2d8f4e9f8 /src/quicktemplates2/qquickmenu_p_p.h
parent23a80af1b5d31621bf1d342706c9541dd5273b86 (diff)
Add support for cascading sub-menus
This commit adds initial support for cascading sub-menus by allowing one to nest declarative Menu declarations. A follow-up commit adds support for adding, inserting, and removing menus programmatically. [ChangeLog][Controls][Menu] Added support for cascading sub-menus. Task-number: QTBUG-60351 Change-Id: I0eee4f74d92a97c09333fcc4348b019782448535 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickmenu_p_p.h')
-rw-r--r--src/quicktemplates2/qquickmenu_p_p.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/quicktemplates2/qquickmenu_p_p.h b/src/quicktemplates2/qquickmenu_p_p.h
index b9e0512b..9fd10779 100644
--- a/src/quicktemplates2/qquickmenu_p_p.h
+++ b/src/quicktemplates2/qquickmenu_p_p.h
@@ -51,11 +51,11 @@
#include <QtCore/qvector.h>
#include <QtCore/qpointer.h>
+#include <QtQuickTemplates2/private/qquickmenu_p.h>
#include <QtQuickTemplates2/private/qquickpopup_p_p.h>
QT_BEGIN_NAMESPACE
-class QQuickMenu;
class QQuickAction;
class QQmlComponent;
class QQmlObjectModel;
@@ -68,10 +68,20 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickMenuPrivate : public QQuickPopupPri
public:
QQuickMenuPrivate();
+ static QQuickMenuPrivate *get(QQuickMenu *menu)
+ {
+ return menu->d_func();
+ }
+
QQuickItem *itemAt(int index) const;
void insertItem(int index, QQuickItem *item);
void moveItem(int from, int to);
void removeItem(int index, QQuickItem *item);
+
+ QQuickItem *beginCreateItem();
+ void completeCreateItem();
+
+ QQuickItem *createItem(QQuickMenu *menu);
QQuickItem *createItem(QQuickAction *action);
void resizeItem(QQuickItem *item);
@@ -83,10 +93,16 @@ public:
void itemDestroyed(QQuickItem *item) override;
void itemGeometryChanged(QQuickItem *, QQuickGeometryChange change, const QRectF &diff) override;
+ bool blockInput(QQuickItem *item, const QPointF &point) const override;
+
void onItemPressed();
void onItemHovered();
+ void onItemTriggered();
void onItemActiveFocusChanged();
+ void openSubMenu(QQuickMenuItem *item, bool activate);
+ void closeSubMenu(QQuickMenu *subMenu);
+
int currentIndex() const;
void setCurrentIndex(int index);
@@ -95,6 +111,9 @@ public:
static QObject *contentData_at(QQmlListProperty<QObject> *prop, int index);
static void contentData_clear(QQmlListProperty<QObject> *prop);
+ bool cascade;
+ qreal overlap;
+ QPointer<QQuickMenu> parentMenu;
QPointer<QQuickMenuItem> currentItem;
QQuickItem *contentItem; // TODO: cleanup
QVector<QObject *> contentData;