diff options
author | Mika Salmela <mika.salmela@qt.io> | 2016-11-29 16:02:18 +0200 |
---|---|---|
committer | Mika Salmela <mika.salmela@qt.io> | 2016-11-29 14:06:06 +0000 |
commit | 4913ce866f9dcd7763edd7cec8880bca8a7eea76 (patch) | |
tree | 6b3a2fe1990d1e8d39ad8c8801ca39527b0d0720 /src | |
parent | a78f8d6bef57dd4283094a52551705ee02909970 (diff) |
Handle data proxy change on the controller
Adds a connection to controllers to react dataProxyChange signal.
Task-number: QTBUG-57291
Change-Id: Ia9ad6880418ec861381e1a5363ce38f8d0bda2e8
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src')
6 files changed, 24 insertions, 3 deletions
diff --git a/src/datavisualization/data/qbar3dseries.cpp b/src/datavisualization/data/qbar3dseries.cpp index 04aa218b..a89b1f3f 100644 --- a/src/datavisualization/data/qbar3dseries.cpp +++ b/src/datavisualization/data/qbar3dseries.cpp @@ -326,6 +326,8 @@ void QBar3DSeriesPrivate::connectControllerAndProxy(Abstract3DController *newCon &Bars3DController::handleDataRowLabelsChanged); QObject::connect(barDataProxy, &QBarDataProxy::columnLabelsChanged, controller, &Bars3DController::handleDataColumnLabelsChanged); + QObject::connect(qptr(), &QBar3DSeries::dataProxyChanged, controller, + &Bars3DController::handleArrayReset); } } diff --git a/src/datavisualization/data/qscatter3dseries.cpp b/src/datavisualization/data/qscatter3dseries.cpp index a674fa02..54873485 100644 --- a/src/datavisualization/data/qscatter3dseries.cpp +++ b/src/datavisualization/data/qscatter3dseries.cpp @@ -306,6 +306,8 @@ void QScatter3DSeriesPrivate::connectControllerAndProxy(Abstract3DController *ne controller, &Scatter3DController::handleItemsRemoved); QObject::connect(scatterDataProxy, &QScatterDataProxy::itemsInserted, controller, &Scatter3DController::handleItemsInserted); + QObject::connect(qptr(), &QScatter3DSeries::dataProxyChanged, + controller, &Scatter3DController::handleArrayReset); } } diff --git a/src/datavisualization/data/qsurface3dseries.cpp b/src/datavisualization/data/qsurface3dseries.cpp index e2d1b03d..2e8e121d 100644 --- a/src/datavisualization/data/qsurface3dseries.cpp +++ b/src/datavisualization/data/qsurface3dseries.cpp @@ -440,6 +440,8 @@ void QSurface3DSeriesPrivate::connectControllerAndProxy(Abstract3DController *ne &Surface3DController::handleRowsInserted); QObject::connect(surfaceDataProxy, &QSurfaceDataProxy::itemChanged, controller, &Surface3DController::handleItemChanged); + QObject::connect(qptr(), &QSurface3DSeries::dataProxyChanged, controller, + &Surface3DController::handleArrayReset); } } diff --git a/src/datavisualization/engine/bars3dcontroller.cpp b/src/datavisualization/engine/bars3dcontroller.cpp index 1cfc4e64..6b304026 100644 --- a/src/datavisualization/engine/bars3dcontroller.cpp +++ b/src/datavisualization/engine/bars3dcontroller.cpp @@ -147,7 +147,12 @@ void Bars3DController::synchDataToRenderer() void Bars3DController::handleArrayReset() { - QBar3DSeries *series = static_cast<QBarDataProxy *>(sender())->series(); + QBar3DSeries *series; + if (qobject_cast<QBarDataProxy *>(sender())) + series = static_cast<QBarDataProxy *>(sender())->series(); + else + series = static_cast<QBar3DSeries *>(sender()); + if (series->isVisible()) { adjustAxisRanges(); m_isDataDirty = true; diff --git a/src/datavisualization/engine/scatter3dcontroller.cpp b/src/datavisualization/engine/scatter3dcontroller.cpp index 46249c3c..6fc29b20 100644 --- a/src/datavisualization/engine/scatter3dcontroller.cpp +++ b/src/datavisualization/engine/scatter3dcontroller.cpp @@ -135,7 +135,12 @@ QList<QScatter3DSeries *> Scatter3DController::scatterSeriesList() void Scatter3DController::handleArrayReset() { - QScatter3DSeries *series = static_cast<QScatterDataProxy *>(sender())->series(); + QScatter3DSeries *series; + if (qobject_cast<QScatterDataProxy *>(sender())) + series = static_cast<QScatterDataProxy *>(sender())->series(); + else + series = static_cast<QScatter3DSeries *>(sender()); + if (series->isVisible()) { adjustAxisRanges(); m_isDataDirty = true; diff --git a/src/datavisualization/engine/surface3dcontroller.cpp b/src/datavisualization/engine/surface3dcontroller.cpp index 28327086..1a140a5c 100644 --- a/src/datavisualization/engine/surface3dcontroller.cpp +++ b/src/datavisualization/engine/surface3dcontroller.cpp @@ -321,7 +321,12 @@ void Surface3DController::clearSelection() void Surface3DController::handleArrayReset() { - QSurface3DSeries *series = static_cast<QSurfaceDataProxy *>(sender())->series(); + QSurface3DSeries *series; + if (qobject_cast<QSurfaceDataProxy *>(sender())) + series = static_cast<QSurfaceDataProxy *>(sender())->series(); + else + series = static_cast<QSurface3DSeries *>(sender()); + if (series->isVisible()) { adjustAxisRanges(); m_isDataDirty = true; |