diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-12-09 10:49:49 +0200 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-12-10 09:01:45 +0200 |
commit | 3573055abe42ff283d011d8550bc8495156338a1 (patch) | |
tree | bb45d4f7e32a0c63329d9f52639081162b34e17e /src/datavisualizationqml2/declarativeseries_p.h | |
parent | 22557b312570cbefde584466a28f2b9bfcc570ba (diff) |
Move series specific visual elements to series, part 4
Colors to series
- Multiselection labels in bar slices still buggy
- Selection in bars doesn't work correctly if not all
series have items in that grid
Task-number: QTRD-2557
Change-Id: Icd38428e5337a26b8410476104bb1f1f784cdc7f
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
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 |