diff options
Diffstat (limited to 'src/quicktemplates2/qquickstackview_p_p.h')
-rw-r--r-- | src/quicktemplates2/qquickstackview_p_p.h | 83 |
1 files changed, 15 insertions, 68 deletions
diff --git a/src/quicktemplates2/qquickstackview_p_p.h b/src/quicktemplates2/qquickstackview_p_p.h index 8a6b594d..ca610153 100644 --- a/src/quicktemplates2/qquickstackview_p_p.h +++ b/src/quicktemplates2/qquickstackview_p_p.h @@ -52,54 +52,14 @@ #include <QtQuickTemplates2/private/qquickcontrol_p_p.h> #include <QtQuick/private/qquickitemviewtransition_p.h> #include <QtQuick/private/qquickitemchangelistener_p.h> -#include <QtQml/private/qv4persistent_p.h> +#include <QtQml/private/qv4value_p.h> +#include <QtCore/qset.h> QT_BEGIN_NAMESPACE -class QQmlContext; -class QQmlComponent; +class QQuickStackElement; struct QQuickStackTransition; -class QQuickStackElement : public QQuickItemViewTransitionableItem, public QQuickItemChangeListener -{ - QQuickStackElement(); - -public: - ~QQuickStackElement(); - - static QQuickStackElement *fromString(const QString &str, QQuickStackView *view); - static QQuickStackElement *fromObject(QObject *object, QQuickStackView *view); - - bool load(QQuickStackView *parent); - void incubate(QObject *object); - void initialize(); - - void setIndex(int index); - void setView(QQuickStackView *view); - void setStatus(QQuickStackView::Status status); - - void transitionNextReposition(QQuickItemViewTransitioner *transitioner, QQuickItemViewTransitioner::TransitionType type, bool asTarget); - bool prepareTransition(QQuickItemViewTransitioner *transitioner, const QRectF &viewBounds); - void startTransition(QQuickItemViewTransitioner *transitioner, QQuickStackView::Status status); - - void itemDestroyed(QQuickItem *item) override; - - int index; - bool init; - bool removal; - bool ownItem; - bool ownComponent; - bool widthValid; - bool heightValid; - QQmlContext *context; - QQmlComponent *component; - QQuickStackView *view; - QPointer<QQuickItem> originalParent; - QQuickStackView::Status status; - QV4::PersistentValue properties; - QV4::PersistentValue qmlCallingContext; -}; - class QQuickStackViewPrivate : public QQuickControlPrivate, public QQuickItemViewTransitionChangeListener { Q_DECLARE_PUBLIC(QQuickStackView) @@ -112,7 +72,7 @@ public: return view->d_func(); } - void setCurrentItem(QQuickItem *item); + void setCurrentItem(QQuickStackElement *element); QList<QQuickStackElement *> parseElements(QQmlV4Function *args, int from = 0); QQuickStackElement *findElement(QQuickItem *item) const; @@ -133,44 +93,31 @@ public: bool busy; QVariant initialItem; QQuickItem *currentItem; - QList<QQuickStackElement*> removals; + QSet<QQuickStackElement*> removing; + QList<QQuickStackElement*> removed; QStack<QQuickStackElement *> elements; QQuickItemViewTransitioner *transitioner; }; -struct QQuickStackTransition -{ - static QQuickStackTransition popExit(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view); - static QQuickStackTransition popEnter(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view); - - static QQuickStackTransition pushExit(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view); - static QQuickStackTransition pushEnter(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view); - - static QQuickStackTransition replaceExit(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view); - static QQuickStackTransition replaceEnter(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view); - - bool target; - QQuickStackView::Status status; - QQuickItemViewTransitioner::TransitionType type; - QRectF viewBounds; - QQuickStackElement *element; - QQuickTransition *transition; -}; - -class QQuickStackAttachedPrivate : public QObjectPrivate, public QQuickItemChangeListener +class QQuickStackViewAttachedPrivate : public QObjectPrivate, public QQuickItemChangeListener { - Q_DECLARE_PUBLIC(QQuickStackAttached) + Q_DECLARE_PUBLIC(QQuickStackViewAttached) public: - QQuickStackAttachedPrivate() : element(nullptr) { } + QQuickStackViewAttachedPrivate() + : explicitVisible(false), + element(nullptr) + { + } - static QQuickStackAttachedPrivate *get(QQuickStackAttached *attached) + static QQuickStackViewAttachedPrivate *get(QQuickStackViewAttached *attached) { return attached->d_func(); } void itemParentChanged(QQuickItem *item, QQuickItem *parent); + bool explicitVisible; QQuickStackElement *element; }; |