summaryrefslogtreecommitdiffstats
path: root/src/datavisualizationqml2/declarativescatter.cpp
diff options
context:
space:
mode:
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