diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-09-25 14:25:22 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-09-26 07:42:37 +0300 |
commit | bb0e49c6bc7e4e650fc84366ff51ee47c8e5c530 (patch) | |
tree | 9d171a1dc51cd690e7edcd4cf7e4da442dc01ba2 /src/datavisualizationqml2/declarativesurface_p.h | |
parent | d44ecd0b27e591429893e4b870713e245a3c46f9 (diff) |
Implement ColorGradient for qml
Reimplementation of qml's Gradient type, which unfortunately cannot be
used by 3rd party modules, as the implementation classes are private.
Task-number: QTRD-2328
Change-Id: Ib984b07f6771d26a9e37fd5f78016b7ba0bd7ce0
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualizationqml2/declarativesurface_p.h')
-rw-r--r-- | src/datavisualizationqml2/declarativesurface_p.h | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/datavisualizationqml2/declarativesurface_p.h b/src/datavisualizationqml2/declarativesurface_p.h index 29db1a44..6ba52146 100644 --- a/src/datavisualizationqml2/declarativesurface_p.h +++ b/src/datavisualizationqml2/declarativesurface_p.h @@ -35,6 +35,7 @@ #include "declarativesurface_p.h" #include "q3dvalueaxis.h" #include "qsurfacedataproxy.h" +#include "colorgradient_p.h" #include <QAbstractItemModel> #include <QQuickItem> @@ -52,14 +53,12 @@ class DeclarativeSurface : public AbstractDeclarative Q_PROPERTY(Q3DValueAxis *axisZ READ axisZ WRITE setAxisZ) Q_PROPERTY(bool smoothSurfaceEnabled READ isSmoothSurfaceEnabled WRITE setSmoothSurfaceEnabled) Q_PROPERTY(bool surfaceGridEnabled READ isSurfaceGridEnabled WRITE setSurfaceGridEnabled) - Q_PROPERTY(QLinearGradient gradient READ gradient WRITE setGradient) + Q_PROPERTY(ColorGradient *gradient READ gradient WRITE setGradient) public: explicit DeclarativeSurface(QQuickItem *parent = 0); ~DeclarativeSurface(); - Q_INVOKABLE void setGradientColorAt(qreal pos, const QColor &color); - QSurfaceDataProxy *dataProxy() const; void setDataProxy(QSurfaceDataProxy *dataProxy); @@ -76,14 +75,21 @@ public: void setSurfaceGridEnabled(bool enabled); bool isSurfaceGridEnabled() const; - void setGradient(const QLinearGradient &gradient); - QLinearGradient gradient() const; + void setGradient(ColorGradient *gradient); + ColorGradient *gradient() const; + protected: + void handleGradientUpdate(); + QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *); private: Surface3DController *m_shared; + + void setControllerGradient(const ColorGradient &gradient); + QSize m_initialisedSize; + ColorGradient *m_gradient; // Not owned }; QT_DATAVISUALIZATION_END_NAMESPACE |