summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSami Varanka <sami.varanka@qt.io>2021-05-12 13:03:07 +0300
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-05-18 10:18:16 +0000
commit9802dbcf01236da02f79f270535093fb53fabb5a (patch)
tree4f4d14c69b8905b5f52069565e4046a3acce6272 /src
parentb315cb478add70e746b5f625c94702d12b64d77c (diff)
Fix Gradients don't show
Added pointer to graph in Abstract3DController. Controller can use that pointer to check whether the graph is ready when receiving a themetypeChanged signal. Added manual test for gradients. Fixes: QTBUG-93506 Change-Id: I13df962b807feb615e3267f580ef57dd62a0b058 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> (cherry picked from commit c9768c1e2440e52976c3456a9a4d302edf49f56a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
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;