diff options
Diffstat (limited to 'src/datavisualizationqml2/declarativebars.cpp')
-rw-r--r-- | src/datavisualizationqml2/declarativebars.cpp | 57 |
1 files changed, 44 insertions, 13 deletions
diff --git a/src/datavisualizationqml2/declarativebars.cpp b/src/datavisualizationqml2/declarativebars.cpp index 9f2af06b..cf74d444 100644 --- a/src/datavisualizationqml2/declarativebars.cpp +++ b/src/datavisualizationqml2/declarativebars.cpp @@ -45,9 +45,6 @@ DeclarativeBars::DeclarativeBars(QQuickItem *parent) &DeclarativeBars::selectedBarChanged); QObject::connect(m_shared, &Abstract3DController::meshFileNameChanged, this, &DeclarativeBars::meshFileNameChanged); - - QItemModelBarDataProxy *proxy = new QItemModelBarDataProxy; - m_shared->setActiveDataProxy(proxy); } DeclarativeBars::~DeclarativeBars() @@ -83,16 +80,6 @@ void DeclarativeBars::setBarColor(const QColor &baseColor) m_shared->setObjectColor(baseColor); } -void DeclarativeBars::setDataProxy(QBarDataProxy *dataProxy) -{ - m_shared->setActiveDataProxy(dataProxy); -} - -QBarDataProxy *DeclarativeBars::dataProxy() const -{ - return static_cast<QBarDataProxy *>(m_shared->activeDataProxy()); -} - Q3DCategoryAxis *DeclarativeBars::rowAxis() const { return static_cast<Q3DCategoryAxis *>(m_shared->axisX()); @@ -221,4 +208,48 @@ QPointF DeclarativeBars::selectedBar() const return QPointF(m_shared->selectedBar()); } +QQmlListProperty<QBar3DSeries> DeclarativeBars::seriesList() +{ + return QQmlListProperty<QBar3DSeries>(this, this, + &DeclarativeBars::appendSeriesFunc, + &DeclarativeBars::countSeriesFunc, + &DeclarativeBars::atSeriesFunc, + &DeclarativeBars::clearSeriesFunc); +} + +void DeclarativeBars::appendSeriesFunc(QQmlListProperty<QBar3DSeries> *list, QBar3DSeries *series) +{ + reinterpret_cast<DeclarativeBars *>(list->data)->addSeries(series); +} + +int DeclarativeBars::countSeriesFunc(QQmlListProperty<QBar3DSeries> *list) +{ + return reinterpret_cast<DeclarativeBars *>(list->data)->m_shared->barSeriesList().size(); +} + +QBar3DSeries *DeclarativeBars::atSeriesFunc(QQmlListProperty<QBar3DSeries> *list, int index) +{ + return reinterpret_cast<DeclarativeBars *>(list->data)->m_shared->barSeriesList().at(index); +} + +void DeclarativeBars::clearSeriesFunc(QQmlListProperty<QBar3DSeries> *list) +{ + DeclarativeBars *declBars = reinterpret_cast<DeclarativeBars *>(list->data); + QList<QBar3DSeries *> realList = declBars->m_shared->barSeriesList(); + int count = realList.size(); + for (int i = 0; i < count; i++) + declBars->removeSeries(realList.at(i)); +} + +void DeclarativeBars::addSeries(QBar3DSeries *series) +{ + m_shared->addSeries(series); +} + +void DeclarativeBars::removeSeries(QBar3DSeries *series) +{ + m_shared->removeSeries(series); + series->setParent(this); // Reparent as removing will leave series parentless +} + QT_DATAVISUALIZATION_END_NAMESPACE |