summaryrefslogtreecommitdiffstats
path: root/src/datavisualizationqml2/declarativesurface.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-11 13:22:54 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-15 08:24:15 +0200
commit999ffa01d20f75a457da62d41c0fabfc32e5e1bb (patch)
treec5267f6831d5ff61444f85b2110f7150e20d3451 /src/datavisualizationqml2/declarativesurface.cpp
parentbbb874d0591215164b2030db60dc9d6a95f4c8fe (diff)
Basic multiseries support
Task-number: QTRD-2548 Change-Id: Iba324c0e8be56f2b3f8f6c6a992883c134a51a9d Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com> Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src/datavisualizationqml2/declarativesurface.cpp')
-rw-r--r--src/datavisualizationqml2/declarativesurface.cpp67
1 files changed, 44 insertions, 23 deletions
diff --git a/src/datavisualizationqml2/declarativesurface.cpp b/src/datavisualizationqml2/declarativesurface.cpp
index 853d0d59..25f27f16 100644
--- a/src/datavisualizationqml2/declarativesurface.cpp
+++ b/src/datavisualizationqml2/declarativesurface.cpp
@@ -41,9 +41,6 @@ DeclarativeSurface::DeclarativeSurface(QQuickItem *parent)
m_shared = new Surface3DController(boundingRect().toRect());
setSharedController(m_shared);
- QItemModelSurfaceDataProxy *proxy = new QItemModelSurfaceDataProxy;
- m_shared->setActiveDataProxy(proxy);
-
QObject::connect(m_shared, &Surface3DController::smoothSurfaceEnabledChanged, this,
&DeclarativeSurface::smoothSurfaceEnabledChanged);
QObject::connect(m_shared, &Surface3DController::selectedPointChanged, this,
@@ -88,16 +85,6 @@ QSGNode *DeclarativeSurface::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeDa
return node;
}
-void DeclarativeSurface::setDataProxy(QSurfaceDataProxy *dataProxy)
-{
- m_shared->setActiveDataProxy(dataProxy);
-}
-
-QSurfaceDataProxy *DeclarativeSurface::dataProxy() const
-{
- return static_cast<QSurfaceDataProxy *>(m_shared->activeDataProxy());
-}
-
Q3DValueAxis *DeclarativeSurface::axisX() const
{
return static_cast<Q3DValueAxis *>(m_shared->axisX());
@@ -138,16 +125,6 @@ bool DeclarativeSurface::isSmoothSurfaceEnabled() const
return m_shared->smoothSurface();
}
-void DeclarativeSurface::setSurfaceVisible(bool visible)
-{
- m_shared->setSurfaceVisible(visible);
-}
-
-bool DeclarativeSurface::isSurfaceVisible() const
-{
- return m_shared->surfaceVisible();
-}
-
void DeclarativeSurface::setSurfaceGridEnabled(bool enabled)
{
m_shared->setSurfaceGrid(enabled);
@@ -211,4 +188,48 @@ void DeclarativeSurface::setControllerGradient(const ColorGradient &gradient)
m_shared->setGradient(newGradient);
}
+QQmlListProperty<QSurface3DSeries> DeclarativeSurface::seriesList()
+{
+ return QQmlListProperty<QSurface3DSeries>(this, this,
+ &DeclarativeSurface::appendSeriesFunc,
+ &DeclarativeSurface::countSeriesFunc,
+ &DeclarativeSurface::atSeriesFunc,
+ &DeclarativeSurface::clearSeriesFunc);
+}
+
+void DeclarativeSurface::appendSeriesFunc(QQmlListProperty<QSurface3DSeries> *list, QSurface3DSeries *series)
+{
+ reinterpret_cast<DeclarativeSurface *>(list->data)->addSeries(series);
+}
+
+int DeclarativeSurface::countSeriesFunc(QQmlListProperty<QSurface3DSeries> *list)
+{
+ return reinterpret_cast<DeclarativeSurface *>(list->data)->m_shared->surfaceSeriesList().size();
+}
+
+QSurface3DSeries *DeclarativeSurface::atSeriesFunc(QQmlListProperty<QSurface3DSeries> *list, int index)
+{
+ return reinterpret_cast<DeclarativeSurface *>(list->data)->m_shared->surfaceSeriesList().at(index);
+}
+
+void DeclarativeSurface::clearSeriesFunc(QQmlListProperty<QSurface3DSeries> *list)
+{
+ DeclarativeSurface *declSurface = reinterpret_cast<DeclarativeSurface *>(list->data);
+ QList<QSurface3DSeries *> realList = declSurface->m_shared->surfaceSeriesList();
+ int count = realList.size();
+ for (int i = 0; i < count; i++)
+ declSurface->removeSeries(realList.at(i));
+}
+
+void DeclarativeSurface::addSeries(QSurface3DSeries *series)
+{
+ m_shared->addSeries(series);
+}
+
+void DeclarativeSurface::removeSeries(QSurface3DSeries *series)
+{
+ m_shared->removeSeries(series);
+ series->setParent(this); // Reparent as removing will leave series parentless
+}
+
QT_DATAVISUALIZATION_END_NAMESPACE