summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMika Salmela <mika.salmela@qt.io>2016-11-29 16:02:18 +0200
committerMika Salmela <mika.salmela@qt.io>2016-11-29 14:06:06 +0000
commit4913ce866f9dcd7763edd7cec8880bca8a7eea76 (patch)
tree6b3a2fe1990d1e8d39ad8c8801ca39527b0d0720 /src
parenta78f8d6bef57dd4283094a52551705ee02909970 (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')
-rw-r--r--src/datavisualization/data/qbar3dseries.cpp2
-rw-r--r--src/datavisualization/data/qscatter3dseries.cpp2
-rw-r--r--src/datavisualization/data/qsurface3dseries.cpp2
-rw-r--r--src/datavisualization/engine/bars3dcontroller.cpp7
-rw-r--r--src/datavisualization/engine/scatter3dcontroller.cpp7
-rw-r--r--src/datavisualization/engine/surface3dcontroller.cpp7
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;