diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-11-11 13:22:54 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-11-15 08:24:15 +0200 |
commit | 999ffa01d20f75a457da62d41c0fabfc32e5e1bb (patch) | |
tree | c5267f6831d5ff61444f85b2110f7150e20d3451 /src/datavisualizationqml2/declarativescatter.cpp | |
parent | bbb874d0591215164b2030db60dc9d6a95f4c8fe (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.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 |