summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/datavisualization/CMakeLists.txt1
-rw-r--r--src/datavisualization/engine/abstract3dcontroller.cpp9
-rw-r--r--src/datavisualization/engine/abstract3dcontroller_p.h2
-rw-r--r--src/datavisualizationqml2/abstractdeclarative.cpp1
-rw-r--r--src/datavisualizationqml2/abstractdeclarative_p.h2
5 files changed, 13 insertions, 2 deletions
diff --git a/src/datavisualization/CMakeLists.txt b/src/datavisualization/CMakeLists.txt
index 2496aa69..5c7d5594 100644
--- a/src/datavisualization/CMakeLists.txt
+++ b/src/datavisualization/CMakeLists.txt
@@ -84,6 +84,7 @@ qt_internal_add_module(DataVisualization
input
theme
utils
+ ../datavisualizationqml2
PUBLIC_LIBRARIES
Qt::Core
Qt::Gui
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp
index 3481f4eb..5ed62ca9 100644
--- a/src/datavisualization/engine/abstract3dcontroller.cpp
+++ b/src/datavisualization/engine/abstract3dcontroller.cpp
@@ -27,6 +27,7 @@
**
****************************************************************************/
+#include "abstractdeclarative_p.h"
#include "abstract3dcontroller_p.h"
#include "qabstract3daxis_p.h"
#include "qvalue3daxis_p.h"
@@ -692,12 +693,16 @@ void Abstract3DController::handleThemeTypeChanged(Q3DTheme::Theme theme)
{
Q_UNUSED(theme);
+ if (!m_qml)
+ return;
+
// Changing theme type is logically equivalent of changing the entire theme
// object, so reset all attached series to the new theme.
-
+ bool force = m_qml->isReady();
Q3DTheme *activeTheme = m_themeManager->activeTheme();
for (int i = 0; i < m_seriesList.size(); i++)
- m_seriesList.at(i)->d_ptr->resetToTheme(*activeTheme, i, true);
+ m_seriesList.at(i)->d_ptr->resetToTheme(*activeTheme, i, force);
+
markSeriesVisualsDirty();
}
diff --git a/src/datavisualization/engine/abstract3dcontroller_p.h b/src/datavisualization/engine/abstract3dcontroller_p.h
index 5a99ecfc..916b3e1e 100644
--- a/src/datavisualization/engine/abstract3dcontroller_p.h
+++ b/src/datavisualization/engine/abstract3dcontroller_p.h
@@ -56,6 +56,7 @@ QT_FORWARD_DECLARE_CLASS(QOpenGLFramebufferObject)
QT_BEGIN_NAMESPACE
+class AbstractDeclarative;
class Abstract3DRenderer;
class QAbstract3DSeries;
class ThemeManager;
@@ -225,6 +226,7 @@ protected:
qreal m_margin;
QMutex m_renderMutex;
+ AbstractDeclarative *m_qml = nullptr;
explicit Abstract3DController(QRect initialViewport, Q3DScene *scene, QObject *parent = 0);
diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp
index d0830f70..ccc03d19 100644
--- a/src/datavisualizationqml2/abstractdeclarative.cpp
+++ b/src/datavisualizationqml2/abstractdeclarative.cpp
@@ -293,6 +293,7 @@ void AbstractDeclarative::setSharedController(Abstract3DController *controller)
{
Q_ASSERT(controller);
m_controller = controller;
+ m_controller->m_qml = this;
if (!m_controller->isOpenGLES())
m_samples = 4;
diff --git a/src/datavisualizationqml2/abstractdeclarative_p.h b/src/datavisualizationqml2/abstractdeclarative_p.h
index f0ebf4cf..dd560150 100644
--- a/src/datavisualizationqml2/abstractdeclarative_p.h
+++ b/src/datavisualizationqml2/abstractdeclarative_p.h
@@ -231,6 +231,8 @@ public:
QMutex *mutex() { return &m_mutex; }
+ bool isReady() { return isComponentComplete(); }
+
public Q_SLOTS:
virtual void handleAxisXChanged(QAbstract3DAxis *axis) = 0;
virtual void handleAxisYChanged(QAbstract3DAxis *axis) = 0;