3#include <QtQuickShapes/private/qquickshape_p.h>
4#include <QtCore/QPointer>
5#include "qml_material/control/progress_indicator.hpp"
9class ProgressIndicatorShape :
public QQuickShape {
12 Q_PROPERTY(ProgressIndicator* source READ source WRITE setSource NOTIFY sourceChanged FINAL)
13 Q_PROPERTY(
bool circular MEMBER m_circular NOTIFY appearanceChanged FINAL)
14 Q_PROPERTY(
bool legacyRadius MEMBER m_legacyRadius NOTIFY appearanceChanged FINAL)
15 Q_PROPERTY(
bool wavy MEMBER m_wavy NOTIFY appearanceChanged FINAL)
16 Q_PROPERTY(qreal strokeWidth MEMBER m_stroke NOTIFY appearanceChanged FINAL)
17 Q_PROPERTY(QColor strokeColor MEMBER m_color NOTIFY appearanceChanged FINAL)
18 Q_PROPERTY(QColor trackColor MEMBER m_track NOTIFY appearanceChanged FINAL)
20 QVariantList indicators READ indicators WRITE setIndicators NOTIFY appearanceChanged FINAL)
21 Q_PROPERTY(qreal startAngle MEMBER m_start NOTIFY appearanceChanged FINAL)
22 Q_PROPERTY(qreal endAngle MEMBER m_end NOTIFY appearanceChanged FINAL)
23 Q_PROPERTY(qreal inactiveStartAngle MEMBER m_trackStart NOTIFY appearanceChanged FINAL)
24 Q_PROPERTY(qreal inactiveSweepAngle MEMBER m_trackSweep NOTIFY appearanceChanged FINAL)
25 Q_PROPERTY(qreal waveLength MEMBER m_wavelength NOTIFY appearanceChanged FINAL)
26 Q_PROPERTY(qreal waveAmplitude MEMBER m_amplitude NOTIFY appearanceChanged FINAL)
27 Q_PROPERTY(qreal phase MEMBER m_phase NOTIFY appearanceChanged FINAL)
29 explicit ProgressIndicatorShape(QQuickItem* parent =
nullptr);
30 ProgressIndicator* source()
const {
return m_source; }
31 void setSource(ProgressIndicator* source);
32 QVariantList indicators()
const {
return m_indicators; }
33 void setIndicators(QVariantList indicators);
34 Q_INVOKABLE QPointF drawLine(qreal startFraction, qreal endFraction, qreal gapSize)
const;
35 Q_SIGNAL
void sourceChanged();
36 Q_SIGNAL
void appearanceChanged();
39 void componentComplete()
override;
40 void geometryChange(
const QRectF& now,
const QRectF& old)
override;
41 void updatePolish()
override;
46 ProgressIndicatorState standaloneState()
const;
47 QPointer<ProgressIndicator> m_source;
48 QList<QMetaObject::Connection> m_connections;
49 QList<QMetaObject::Connection> m_indicatorConnections;
50 ProgressIndicatorGeometry m_geometry;
51 QList<QQuickShapePath*> m_paths;
53 bool m_circular =
false;
54 bool m_legacyRadius =
false;
57 QColor m_color = Qt::black;
58 QColor m_track = Qt::transparent;
59 QVariantList m_indicators;
62 qreal m_trackStart = 0;
63 qreal m_trackSweep = 0;
64 qreal m_wavelength = 30;
65 qreal m_amplitude = 3;