diff options
Diffstat (limited to 'src/datavisualizationqml2/declarativescatter.cpp')
-rw-r--r-- | src/datavisualizationqml2/declarativescatter.cpp | 55 |
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 |