39 Q_PROPERTY(QVariant model READ model WRITE setModel NOTIFY modelChanged)
40 Q_PROPERTY(QQuickPath *path READ path WRITE setPath NOTIFY pathChanged)
41 Q_PROPERTY(
int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged)
42 Q_PROPERTY(QQuickItem *currentItem READ currentItem NOTIFY currentItemChanged)
43 Q_PROPERTY(qreal offset READ offset WRITE setOffset NOTIFY offsetChanged)
45 Q_PROPERTY(QQmlComponent *highlight READ highlight WRITE setHighlight NOTIFY highlightChanged)
46 Q_PROPERTY(QQuickItem *highlightItem READ highlightItem NOTIFY highlightItemChanged)
48 Q_PROPERTY(qreal preferredHighlightBegin READ preferredHighlightBegin WRITE setPreferredHighlightBegin NOTIFY preferredHighlightBeginChanged)
49 Q_PROPERTY(qreal preferredHighlightEnd READ preferredHighlightEnd WRITE setPreferredHighlightEnd NOTIFY preferredHighlightEndChanged)
50 Q_PROPERTY(HighlightRangeMode highlightRangeMode READ highlightRangeMode WRITE setHighlightRangeMode NOTIFY highlightRangeModeChanged)
51 Q_PROPERTY(
int highlightMoveDuration READ highlightMoveDuration WRITE setHighlightMoveDuration NOTIFY highlightMoveDurationChanged)
53 Q_PROPERTY(qreal dragMargin READ dragMargin WRITE setDragMargin NOTIFY dragMarginChanged)
54 Q_PROPERTY(qreal maximumFlickVelocity READ maximumFlickVelocity WRITE setMaximumFlickVelocity NOTIFY maximumFlickVelocityChanged)
55 Q_PROPERTY(qreal flickDeceleration READ flickDeceleration WRITE setFlickDeceleration NOTIFY flickDecelerationChanged)
56 Q_PROPERTY(
bool interactive READ isInteractive WRITE setInteractive NOTIFY interactiveChanged)
58 Q_PROPERTY(
bool moving READ isMoving NOTIFY movingChanged)
59 Q_PROPERTY(
bool flicking READ isFlicking NOTIFY flickingChanged)
60 Q_PROPERTY(
bool dragging READ isDragging NOTIFY draggingChanged)
62 Q_PROPERTY(
int count READ count NOTIFY countChanged)
63 Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged)
64 Q_PROPERTY(
int pathItemCount READ pathItemCount WRITE setPathItemCount RESET resetPathItemCount NOTIFY pathItemCountChanged)
65 Q_PROPERTY(SnapMode snapMode READ snapMode WRITE setSnapMode NOTIFY snapModeChanged)
66 Q_PROPERTY(MovementDirection movementDirection READ movementDirection WRITE setMovementDirection NOTIFY movementDirectionChanged REVISION(2, 7))
68 Q_PROPERTY(
int cacheItemCount READ cacheItemCount WRITE setCacheItemCount NOTIFY cacheItemCountChanged)
69 QML_NAMED_ELEMENT(PathView)
70 QML_ADDED_IN_VERSION(2, 0)
71 QML_ATTACHED(QQuickPathViewAttached)
74 QQuickPathView(QQuickItem *parent =
nullptr);
75 virtual ~QQuickPathView();
77 QVariant model()
const;
78 void setModel(
const QVariant &);
80 QQuickPath *path()
const;
81 void setPath(QQuickPath *);
83 int currentIndex()
const;
84 void setCurrentIndex(
int idx);
86 QQuickItem *currentItem()
const;
89 void setOffset(qreal offset);
91 QQmlComponent *highlight()
const;
92 void setHighlight(QQmlComponent *highlight);
93 QQuickItem *highlightItem()
const;
95 enum HighlightRangeMode { NoHighlightRange, ApplyRange, StrictlyEnforceRange };
96 Q_ENUM(HighlightRangeMode)
97 HighlightRangeMode highlightRangeMode()
const;
98 void setHighlightRangeMode(HighlightRangeMode mode);
100 qreal preferredHighlightBegin()
const;
101 void setPreferredHighlightBegin(qreal);
103 qreal preferredHighlightEnd()
const;
104 void setPreferredHighlightEnd(qreal);
106 int highlightMoveDuration()
const;
107 void setHighlightMoveDuration(
int);
109 qreal dragMargin()
const;
110 void setDragMargin(qreal margin);
112 qreal flickDeceleration()
const;
113 void setFlickDeceleration(qreal dec);
115 qreal maximumFlickVelocity()
const;
116 void setMaximumFlickVelocity(qreal);
118 bool isInteractive()
const;
119 void setInteractive(
bool);
121 bool isMoving()
const;
122 bool isFlicking()
const;
123 bool isDragging()
const;
127 QQmlComponent *delegate()
const;
128 void setDelegate(QQmlComponent *);
130 int pathItemCount()
const;
131 void setPathItemCount(
int);
132 void resetPathItemCount();
134 int cacheItemCount()
const;
135 void setCacheItemCount(
int);
137 enum SnapMode { NoSnap, SnapToItem, SnapOneItem };
139 SnapMode snapMode()
const;
140 void setSnapMode(SnapMode mode);
142 enum MovementDirection { Shortest, Negative, Positive };
143 Q_ENUM(MovementDirection)
144 MovementDirection movementDirection()
const;
145 void setMovementDirection(MovementDirection dir);
147 enum PositionMode { Beginning, Center, End, Contain=4, SnapPosition };
149 Q_INVOKABLE
void positionViewAtIndex(
int index,
int mode);
150 Q_INVOKABLE
int indexAt(qreal x, qreal y)
const;
151 Q_INVOKABLE QQuickItem *itemAt(qreal x, qreal y)
const;
152 Q_REVISION(2, 13) Q_INVOKABLE QQuickItem *itemAtIndex(
int index)
const;
154 static QQuickPathViewAttached *qmlAttachedProperties(QObject *);
157 void incrementCurrentIndex();
158 void decrementCurrentIndex();
161 void currentIndexChanged();
162 void currentItemChanged();
163 void offsetChanged();
167 void preferredHighlightBeginChanged();
168 void preferredHighlightEndChanged();
169 void highlightRangeModeChanged();
170 void dragMarginChanged();
171 void snapPositionChanged();
172 void delegateChanged();
173 void pathItemCountChanged();
174 void maximumFlickVelocityChanged();
175 void flickDecelerationChanged();
176 void interactiveChanged();
177 void movingChanged();
178 void flickingChanged();
179 void draggingChanged();
180 void highlightChanged();
181 void highlightItemChanged();
182 void highlightMoveDurationChanged();
183 void movementStarted();
184 void movementEnded();
185 Q_REVISION(2, 7)
void movementDirectionChanged();
190 void snapModeChanged();
191 void cacheItemCountChanged();
194 void updatePolish() override;
195 void mousePressEvent(QMouseEvent *event) override;
196 void mouseMoveEvent(QMouseEvent *event) override;
197 void mouseReleaseEvent(QMouseEvent *) override;
198 bool childMouseEventFilter(QQuickItem *, QEvent *) override;
199 void mouseUngrabEvent() override;
200 void componentComplete() override;
205 void movementEnding();
206 void modelUpdated(
const QQmlChangeSet &changeSet,
bool reset);
207 void createdItem(
int index, QObject *item);
208 void initItem(
int index, QObject *item);
209 void destroyingItem(QObject *item);
213 friend class QQuickPathViewAttached;
214 Q_DISABLE_COPY(QQuickPathView)
215 Q_DECLARE_PRIVATE(QQuickPathView)