summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/abstract3drenderer.cpp
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-11-28 13:58:02 +0200
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-11-28 14:02:07 +0200
commit5c4592ea5bb3a4c98a5fe1846c8b3082bd33e678 (patch)
tree0f3e4094c0443c7a93821a9f87dcdbc4393277ac /src/datavisualization/engine/abstract3drenderer.cpp
parenta7e8a3279547dbea4b5343f44f3b7563c0212f1e (diff)
Theme sync
Task-number: QTRD-2538 Change-Id: I12dfb562dc59ae1df3b5127f0f675a3796ba3f00 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/abstract3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/abstract3drenderer.cpp49
1 files changed, 12 insertions, 37 deletions
diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp
index 118f7b13..50e56ce5 100644
--- a/src/datavisualization/engine/abstract3drenderer.cpp
+++ b/src/datavisualization/engine/abstract3drenderer.cpp
@@ -24,6 +24,7 @@
#include "q3dcamera_p.h"
#include "q3dlight_p.h"
#include "qabstract3dseries_p.h"
+#include "q3dtheme_p.h"
Q_DECLARE_METATYPE(QtDataVisualization::QDataVis::ShadowQuality)
@@ -32,16 +33,12 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
Abstract3DRenderer::Abstract3DRenderer(Abstract3DController *controller)
: QObject(0),
m_hasNegativeValues(false),
- m_cachedTheme(),
- m_cachedFont(QFont(QStringLiteral("Arial"))),
- m_cachedLabelBackground(false),
- m_drawer(new Drawer(m_cachedTheme, m_cachedFont, m_cachedLabelBackground)),
+ m_cachedTheme(new Q3DTheme()),
+ m_drawer(new Drawer(m_cachedTheme)),
m_cachedBoundingRect(QRect(0, 0, 0, 0)),
m_cachedShadowQuality(QDataVis::ShadowQualityMedium),
m_autoScaleAdjustment(1.0f),
m_cachedSelectionMode(QDataVis::SelectionNone),
- m_cachedIsGridEnabled(false),
- m_cachedIsBackgroundEnabled(false),
m_cachedColorStyle(QDataVis::ColorStyleUniform),
m_objectGradientTexture(0),
m_singleHighlightGradientTexture(0),
@@ -166,12 +163,15 @@ void Abstract3DRenderer::updatePosition(const QRect &boundingRect)
void Abstract3DRenderer::updateTheme(Q3DTheme *theme)
{
- m_cachedTheme = theme;
+ // Synchronize the controller theme with renderer
+ bool changed = theme->d_ptr->sync(*m_cachedTheme->d_ptr);
- m_drawer->setTheme(m_cachedTheme);
-
- // Re-initialize shaders
- reInitShaders();
+ if (changed) {
+ // Update drawer if sync changed something
+ m_drawer->setTheme(m_cachedTheme);
+ // Re-initialize shaders
+ reInitShaders();
+ }
}
void Abstract3DRenderer::updateScene(Q3DScene *scene)
@@ -196,10 +196,8 @@ void Abstract3DRenderer::updateScene(Q3DScene *scene)
}
}
- // Synchronize the controller scene to that of the renderer, and vice versa.
- // Controller scene had priority if both have changed same values.
+ // Synchronize the controller scene with renderer
scene->d_ptr->sync(*m_cachedScene->d_ptr);
- m_cachedScene->d_ptr->sync(*scene->d_ptr);
}
void Abstract3DRenderer::reInitShaders()
@@ -252,19 +250,6 @@ void Abstract3DRenderer::handleShadowQualityChange()
#endif
}
-void Abstract3DRenderer::updateFont(const QFont &font)
-{
- m_cachedFont = font;
- m_drawer->setFont(font);
-}
-
-void Abstract3DRenderer::updateLabelBackgroundEnabled(bool enabled)
-{
- qDebug() << __FUNCTION__ << enabled;
- m_cachedLabelBackground = enabled;
- m_drawer->setLabelBackground(enabled);
-}
-
void Abstract3DRenderer::updateMeshFileName(const QString &objFileName)
{
if (objFileName != m_cachedObjFile) {
@@ -279,16 +264,6 @@ void Abstract3DRenderer::updateSelectionMode(QDataVis::SelectionFlags mode)
m_selectionDirty = true;
}
-void Abstract3DRenderer::updateGridEnabled(bool enable)
-{
- m_cachedIsGridEnabled = enable;
-}
-
-void Abstract3DRenderer::updateBackgroundEnabled(bool enable)
-{
- m_cachedIsBackgroundEnabled = enable;
-}
-
void Abstract3DRenderer::handleResize()
{
if (m_cachedBoundingRect.width() == 0 || m_cachedBoundingRect.height() == 0)