summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/abstract3dcontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/engine/abstract3dcontroller.cpp')
-rw-r--r--src/datavisualization/engine/abstract3dcontroller.cpp49
1 files changed, 28 insertions, 21 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp
index 7f87ac7c..afe0b124 100644
--- a/src/datavisualization/engine/abstract3dcontroller.cpp
+++ b/src/datavisualization/engine/abstract3dcontroller.cpp
@@ -28,6 +28,7 @@
#include "qabstract3dinputhandler_p.h"
#include "qtouch3dinputhandler.h"
#include "qabstract3dseries_p.h"
+#include "thememanager_p.h"
#include <QThread>
@@ -36,7 +37,7 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
Abstract3DController::Abstract3DController(QRect boundRect, QObject *parent) :
QObject(parent),
m_boundingRect(boundRect.x(), boundRect.y(), boundRect.width(), boundRect.height()),
- m_theme(),
+ m_themeManager(new ThemeManager(this)),
m_font(QFont(QStringLiteral("Arial"))),
m_selectionMode(QDataVis::SelectionItem),
m_shadowQuality(QDataVis::ShadowQualityMedium),
@@ -55,7 +56,7 @@ Abstract3DController::Abstract3DController(QRect boundRect, QObject *parent) :
m_renderPending(false)
{
// Set initial theme
- setTheme(QDataVis::ThemeQt);
+ setTheme(new Q3DTheme(QDataVis::ThemeQt));
// Populate the scene
m_scene->activeLight()->setPosition(defaultLightPos);
@@ -142,7 +143,7 @@ void Abstract3DController::synchDataToRenderer()
// TODO: Renderer doesn't need to know the theme, so remove this bit entirely (QTRD-2538)
if (m_changeTracker.themeChanged) {
- m_renderer->updateTheme(m_theme);
+ m_renderer->updateTheme(m_themeManager->theme());
m_changeTracker.themeChanged = false;
}
@@ -786,25 +787,31 @@ QLinearGradient Abstract3DController::multiHighlightGradient() const
return m_multiHighlightGradient;
}
-void Abstract3DController::setTheme(QDataVis::Theme theme)
+void Abstract3DController::setTheme(Q3DTheme *theme)
{
- if (theme != m_theme.theme()) {
- m_theme.useTheme(theme);
+ if (theme != m_themeManager->theme()) {
+ m_themeManager->setTheme(theme);
+ QDataVis::ColorStyle colorStyle = theme->colorStyle();
m_changeTracker.themeChanged = true;
// TODO: set all colors/styles here (QTRD-2538)
- setColorStyle(QDataVis::ColorStyleUniform);
- setObjectColor(m_theme.m_baseColor);
- setSingleHighlightColor(m_theme.m_singleHighlightColor);
- setMultiHighlightColor(m_theme.m_multiHighlightColor);
+ setColorStyle(colorStyle);
+ if (colorStyle == QDataVis::ColorStyleUniform) {
+ setObjectColor(theme->baseColor());
+ setSingleHighlightColor(theme->singleHighlightColor());
+ setMultiHighlightColor(theme->multiHighlightColor());
+ } else {
+ setObjectGradient(theme->baseGradient());
+ setSingleHighlightGradient(theme->singleHighlightGradient());
+ setMultiHighlightGradient(theme->multiHighlightGradient());
+ }
emit themeChanged(theme);
- emitNeedRender();
}
}
-Theme Abstract3DController::theme()
+Q3DTheme *Abstract3DController::theme() const
{
- return m_theme;
+ return m_themeManager->theme();
}
void Abstract3DController::setFont(const QFont &font)
@@ -817,7 +824,7 @@ void Abstract3DController::setFont(const QFont &font)
}
}
-QFont Abstract3DController::font()
+QFont Abstract3DController::font() const
{
return m_font;
}
@@ -832,7 +839,7 @@ void Abstract3DController::setSelectionMode(QDataVis::SelectionFlags mode)
}
}
-QDataVis::SelectionFlags Abstract3DController::selectionMode()
+QDataVis::SelectionFlags Abstract3DController::selectionMode() const
{
return m_selectionMode;
}
@@ -847,7 +854,7 @@ void Abstract3DController::setShadowQuality(QDataVis::ShadowQuality quality)
}
}
-QDataVis::ShadowQuality Abstract3DController::shadowQuality()
+QDataVis::ShadowQuality Abstract3DController::shadowQuality() const
{
return m_shadowQuality;
}
@@ -862,7 +869,7 @@ void Abstract3DController::setLabelStyle(QDataVis::LabelStyle style)
}
}
-QDataVis::LabelStyle Abstract3DController::labelStyle()
+QDataVis::LabelStyle Abstract3DController::labelStyle() const
{
return m_labelStyle;
}
@@ -877,7 +884,7 @@ void Abstract3DController::setBackgroundEnabled(bool enable)
}
}
-bool Abstract3DController::backgroundEnabled()
+bool Abstract3DController::backgroundEnabled() const
{
return m_isBackgroundEnabled;
}
@@ -892,12 +899,12 @@ void Abstract3DController::setGridEnabled(bool enable)
}
}
-bool Abstract3DController::gridEnabled()
+bool Abstract3DController::gridEnabled() const
{
return m_isGridEnabled;
}
-bool Abstract3DController::isSlicingActive()
+bool Abstract3DController::isSlicingActive() const
{
return m_scene->isSlicingActive();
}
@@ -918,7 +925,7 @@ void Abstract3DController::setMeshFileName(const QString &fileName)
}
}
-QString Abstract3DController::meshFileName()
+QString Abstract3DController::meshFileName() const
{
return m_objFile;
}