summaryrefslogtreecommitdiffstats
path: root/src/datavisualizationqml2/declarativescatter.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/declarativescatter.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/declarativescatter.cpp')
-rw-r--r--src/datavisualizationqml2/declarativescatter.cpp55
1 files changed, 44 insertions, 11 deletions
diff --git a/src/datavisualizationqml2/declarativescatter.cpp b/src/datavisualizationqml2/declarativescatter.cpp
index 7c201301..1a05c425 100644
--- a/src/datavisualizationqml2/declarativescatter.cpp
+++ b/src/datavisualizationqml2/declarativescatter.cpp
@@ -40,7 +40,6 @@ DeclarativeScatter::DeclarativeScatter(QQuickItem *parent)
// Create the shared component on the main GUI thread.
m_shared = new Scatter3DController(boundingRect().toRect());
setSharedController(m_shared);
- m_shared->setActiveDataProxy(new QItemModelScatterDataProxy);
QObject::connect(m_shared, &Scatter3DController::selectedItemIndexChanged, this,
&DeclarativeScatter::selectedItemIndexChanged);
@@ -81,16 +80,6 @@ void DeclarativeScatter::setObjectColor(const QColor &baseColor)
m_shared->setObjectColor(baseColor);
}
-QScatterDataProxy *DeclarativeScatter::dataProxy() const
-{
- return static_cast<QScatterDataProxy *>(m_shared->activeDataProxy());
-}
-
-void DeclarativeScatter::setDataProxy(QScatterDataProxy *dataProxy)
-{
- m_shared->setActiveDataProxy(dataProxy);
-}
-
Q3DValueAxis *DeclarativeScatter::axisX() const
{
return static_cast<Q3DValueAxis *>(m_shared->axisX());
@@ -180,4 +169,48 @@ int DeclarativeScatter::selectedItemIndex() const
return m_shared->selectedItemIndex();
}
+QQmlListProperty<QScatter3DSeries> DeclarativeScatter::seriesList()
+{
+ return QQmlListProperty<QScatter3DSeries>(this, this,
+ &DeclarativeScatter::appendSeriesFunc,
+ &DeclarativeScatter::countSeriesFunc,
+ &DeclarativeScatter::atSeriesFunc,
+ &DeclarativeScatter::clearSeriesFunc);
+}
+
+void DeclarativeScatter::appendSeriesFunc(QQmlListProperty<QScatter3DSeries> *list, QScatter3DSeries *series)
+{
+ reinterpret_cast<DeclarativeScatter *>(list->data)->addSeries(series);
+}
+
+int DeclarativeScatter::countSeriesFunc(QQmlListProperty<QScatter3DSeries> *list)
+{
+ return reinterpret_cast<DeclarativeScatter *>(list->data)->m_shared->scatterSeriesList().size();
+}
+
+QScatter3DSeries *DeclarativeScatter::atSeriesFunc(QQmlListProperty<QScatter3DSeries> *list, int index)
+{
+ return reinterpret_cast<DeclarativeScatter *>(list->data)->m_shared->scatterSeriesList().at(index);
+}
+
+void DeclarativeScatter::clearSeriesFunc(QQmlListProperty<QScatter3DSeries> *list)
+{
+ DeclarativeScatter *declScatter = reinterpret_cast<DeclarativeScatter *>(list->data);
+ QList<QScatter3DSeries *> realList = declScatter->m_shared->scatterSeriesList();
+ int count = realList.size();
+ for (int i = 0; i < count; i++)
+ declScatter->removeSeries(realList.at(i));
+}
+
+void DeclarativeScatter::addSeries(QScatter3DSeries *series)
+{
+ m_shared->addSeries(series);
+}
+
+void DeclarativeScatter::removeSeries(QScatter3DSeries *series)
+{
+ m_shared->removeSeries(series);
+ series->setParent(this); // Reparent as removing will leave series parentless
+}
+
QT_DATAVISUALIZATION_END_NAMESPACE