diff options
Diffstat (limited to 'src/datavisualizationqml2/declarativeseries_p.h')
-rw-r--r-- | src/datavisualizationqml2/declarativeseries_p.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/datavisualizationqml2/declarativeseries_p.h b/src/datavisualizationqml2/declarativeseries_p.h index 6f5885c3..c9c3dc7a 100644 --- a/src/datavisualizationqml2/declarativeseries_p.h +++ b/src/datavisualizationqml2/declarativeseries_p.h @@ -33,10 +33,17 @@ #include "qbar3dseries.h" #include "qscatter3dseries.h" #include "qsurface3dseries.h" +#include "colorgradient_p.h" #include <QQmlListProperty> QT_DATAVISUALIZATION_BEGIN_NAMESPACE +enum GradientType { + GradientTypeBase, + GradientTypeSingle, + GradientTypeMulti +}; + class DeclarativeBar3DSeries : public QBar3DSeries { Q_OBJECT @@ -44,6 +51,9 @@ class DeclarativeBar3DSeries : public QBar3DSeries // selectedBar property is overloaded to use QPointF instead of QPoint to work around qml bug // where Qt.point(0, 0) can't be assigned due to error "Cannot assign QPointF to QPoint". Q_PROPERTY(QPointF selectedBar READ selectedBar WRITE setSelectedBar NOTIFY selectedBarChanged) + Q_PROPERTY(ColorGradient *baseGradient READ baseGradient WRITE setBaseGradient NOTIFY baseGradientChanged) + Q_PROPERTY(ColorGradient *singleHighlightGradient READ singleHighlightGradient WRITE setSingleHighlightGradient NOTIFY singleHighlightGradientChanged) + Q_PROPERTY(ColorGradient *multiHighlightGradient READ multiHighlightGradient WRITE setMultiHighlightGradient NOTIFY multiHighlightGradientChanged) Q_CLASSINFO("DefaultProperty", "seriesChildren") public: DeclarativeBar3DSeries(QObject *parent = 0); @@ -56,14 +66,37 @@ public: QPointF selectedBar() const; Q_INVOKABLE QPointF invalidSelectionPosition() const; + void setBaseGradient(ColorGradient *gradient); + ColorGradient *baseGradient() const; + void setSingleHighlightGradient(ColorGradient *gradient); + ColorGradient *singleHighlightGradient() const; + void setMultiHighlightGradient(ColorGradient *gradient); + ColorGradient *multiHighlightGradient() const; + +public slots: + void handleBaseGradientUpdate(); + void handleSingleHighlightGradientUpdate(); + void handleMultiHighlightGradientUpdate(); + signals: void selectedBarChanged(QPointF position); + void baseGradientChanged(ColorGradient *gradient); + void singleHighlightGradientChanged(ColorGradient *gradient); + void multiHighlightGradientChanged(ColorGradient *gradient); + +private: + ColorGradient *m_baseGradient; // Not owned + ColorGradient *m_singleHighlightGradient; // Not owned + ColorGradient *m_multiHighlightGradient; // Not owned }; class DeclarativeScatter3DSeries : public QScatter3DSeries { Q_OBJECT Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren) + Q_PROPERTY(ColorGradient *baseGradient READ baseGradient WRITE setBaseGradient NOTIFY baseGradientChanged) + Q_PROPERTY(ColorGradient *singleHighlightGradient READ singleHighlightGradient WRITE setSingleHighlightGradient NOTIFY singleHighlightGradientChanged) + Q_PROPERTY(ColorGradient *multiHighlightGradient READ multiHighlightGradient WRITE setMultiHighlightGradient NOTIFY multiHighlightGradientChanged) Q_CLASSINFO("DefaultProperty", "seriesChildren") public: DeclarativeScatter3DSeries(QObject *parent = 0); @@ -71,6 +104,28 @@ public: QQmlListProperty<QObject> seriesChildren(); static void appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element); + + void setBaseGradient(ColorGradient *gradient); + ColorGradient *baseGradient() const; + void setSingleHighlightGradient(ColorGradient *gradient); + ColorGradient *singleHighlightGradient() const; + void setMultiHighlightGradient(ColorGradient *gradient); + ColorGradient *multiHighlightGradient() const; + +public slots: + void handleBaseGradientUpdate(); + void handleSingleHighlightGradientUpdate(); + void handleMultiHighlightGradientUpdate(); + +signals: + void baseGradientChanged(ColorGradient *gradient); + void singleHighlightGradientChanged(ColorGradient *gradient); + void multiHighlightGradientChanged(ColorGradient *gradient); + +private: + ColorGradient *m_baseGradient; // Not owned + ColorGradient *m_singleHighlightGradient; // Not owned + ColorGradient *m_multiHighlightGradient; // Not owned }; class DeclarativeSurface3DSeries : public QSurface3DSeries @@ -78,6 +133,9 @@ class DeclarativeSurface3DSeries : public QSurface3DSeries Q_OBJECT Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren) Q_PROPERTY(QPointF selectedPoint READ selectedPoint WRITE setSelectedPoint NOTIFY selectedPointChanged) + Q_PROPERTY(ColorGradient *baseGradient READ baseGradient WRITE setBaseGradient NOTIFY baseGradientChanged) + Q_PROPERTY(ColorGradient *singleHighlightGradient READ singleHighlightGradient WRITE setSingleHighlightGradient NOTIFY singleHighlightGradientChanged) + Q_PROPERTY(ColorGradient *multiHighlightGradient READ multiHighlightGradient WRITE setMultiHighlightGradient NOTIFY multiHighlightGradientChanged) Q_CLASSINFO("DefaultProperty", "seriesChildren") public: DeclarativeSurface3DSeries(QObject *parent = 0); @@ -90,8 +148,28 @@ public: QQmlListProperty<QObject> seriesChildren(); static void appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element); + void setBaseGradient(ColorGradient *gradient); + ColorGradient *baseGradient() const; + void setSingleHighlightGradient(ColorGradient *gradient); + ColorGradient *singleHighlightGradient() const; + void setMultiHighlightGradient(ColorGradient *gradient); + ColorGradient *multiHighlightGradient() const; + +public slots: + void handleBaseGradientUpdate(); + void handleSingleHighlightGradientUpdate(); + void handleMultiHighlightGradientUpdate(); + signals: void selectedPointChanged(QPointF position); + void baseGradientChanged(ColorGradient *gradient); + void singleHighlightGradientChanged(ColorGradient *gradient); + void multiHighlightGradientChanged(ColorGradient *gradient); + +private: + ColorGradient *m_baseGradient; // Not owned + ColorGradient *m_singleHighlightGradient; // Not owned + ColorGradient *m_multiHighlightGradient; // Not owned }; QT_DATAVISUALIZATION_END_NAMESPACE |