summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/theme
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-11-22 11:07:24 +0200
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-11-22 12:27:29 +0200
commit6ecfae79d976a6d9b352b82b4a8f9d8fb7bf2564 (patch)
tree21213f31f6a1037c31fda15a94662d6e21b8f783 /src/datavisualization/theme
parentfe2e12ffd7bb495634a66dc9c3e0d0fcbcfeb0df (diff)
Theme dirty bits implemented
Task-number: QTRD-2625 Change-Id: Ifea7f85a142bb4ef085da61668d1c8038a285c16 Change-Id: Ifea7f85a142bb4ef085da61668d1c8038a285c16 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/theme')
-rw-r--r--src/datavisualization/theme/q3dtheme.cpp17
-rw-r--r--src/datavisualization/theme/q3dtheme.h2
-rw-r--r--src/datavisualization/theme/q3dtheme_p.h43
-rw-r--r--src/datavisualization/theme/thememanager.cpp399
-rw-r--r--src/datavisualization/theme/thememanager_p.h17
5 files changed, 330 insertions, 148 deletions
diff --git a/src/datavisualization/theme/q3dtheme.cpp b/src/datavisualization/theme/q3dtheme.cpp
index 8aba6b48..e43eb52d 100644
--- a/src/datavisualization/theme/q3dtheme.cpp
+++ b/src/datavisualization/theme/q3dtheme.cpp
@@ -49,6 +49,7 @@ Q3DTheme::~Q3DTheme()
void Q3DTheme::setBaseColor(const QColor &color)
{
if (d_ptr->m_baseColor != color) {
+ d_ptr->m_dirtyBits.baseColorDirty = true;
d_ptr->m_baseColor = color;
emit baseColorChanged(color);
}
@@ -62,6 +63,7 @@ QColor Q3DTheme::baseColor() const
void Q3DTheme::setBackgroundColor(const QColor &color)
{
if (d_ptr->m_backgroundColor != color) {
+ d_ptr->m_dirtyBits.backgroundColorDirty = true;
d_ptr->m_backgroundColor = color;
emit backgroundColorChanged(color);
}
@@ -75,6 +77,7 @@ QColor Q3DTheme::backgroundColor() const
void Q3DTheme::setWindowColor(const QColor &color)
{
if (d_ptr->m_windowColor != color) {
+ d_ptr->m_dirtyBits.windowColorDirty = true;
d_ptr->m_windowColor = color;
emit windowColorChanged(color);
}
@@ -88,6 +91,7 @@ QColor Q3DTheme::windowColor() const
void Q3DTheme::setTextColor(const QColor &color)
{
if (d_ptr->m_textColor != color) {
+ d_ptr->m_dirtyBits.textColorDirty = true;
d_ptr->m_textColor = color;
emit textColorChanged(color);
}
@@ -101,6 +105,7 @@ QColor Q3DTheme::textColor() const
void Q3DTheme::setTextBackgroundColor(const QColor &color)
{
if (d_ptr->m_textBackgroundColor != color) {
+ d_ptr->m_dirtyBits.textBackgroundColorDirty = true;
d_ptr->m_textBackgroundColor = color;
emit textBackgroundColorChanged(color);
}
@@ -114,6 +119,7 @@ QColor Q3DTheme::textBackgroundColor() const
void Q3DTheme::setGridLineColor(const QColor &color)
{
if (d_ptr->m_gridLineColor != color) {
+ d_ptr->m_dirtyBits.gridLineColorDirty = true;
d_ptr->m_gridLineColor = color;
emit gridLineColorChanged(color);
}
@@ -127,6 +133,7 @@ QColor Q3DTheme::gridLineColor() const
void Q3DTheme::setSingleHighlightColor(const QColor &color)
{
if (d_ptr->m_singleHighlightColor != color) {
+ d_ptr->m_dirtyBits.singleHighlightColorDirty = true;
d_ptr->m_singleHighlightColor = color;
emit singleHighlightColorChanged(color);
}
@@ -140,6 +147,7 @@ QColor Q3DTheme::singleHighlightColor() const
void Q3DTheme::setMultiHighlightColor(const QColor &color)
{
if (d_ptr->m_multiHighlightColor != color) {
+ d_ptr->m_dirtyBits.multiHighlightColorDirty = true;
d_ptr->m_multiHighlightColor = color;
emit multiHighlightColorChanged(color);
}
@@ -153,6 +161,7 @@ QColor Q3DTheme::multiHighlightColor() const
void Q3DTheme::setLightColor(const QColor &color)
{
if (d_ptr->m_lightColor != color) {
+ d_ptr->m_dirtyBits.lightColorDirty = true;
d_ptr->m_lightColor = color;
emit lightColorChanged(color);
}
@@ -167,6 +176,7 @@ QColor Q3DTheme::lightColor() const
void Q3DTheme::setBaseGradient(const QLinearGradient &gradient)
{
if (d_ptr->m_baseGradient != gradient) {
+ d_ptr->m_dirtyBits.baseGradientDirty = true;
d_ptr->m_baseGradient = gradient;
emit baseGradientChanged(gradient);
}
@@ -180,6 +190,7 @@ QLinearGradient Q3DTheme::baseGradient() const
void Q3DTheme::setSingleHighlightGradient(const QLinearGradient &gradient)
{
if (d_ptr->m_singleHighlightGradient != gradient) {
+ d_ptr->m_dirtyBits.singleHighlightGradientDirty = true;
d_ptr->m_singleHighlightGradient = gradient;
emit singleHighlightGradientChanged(gradient);
}
@@ -193,6 +204,7 @@ QLinearGradient Q3DTheme::singleHighlightGradient() const
void Q3DTheme::setMultiHighlightGradient(const QLinearGradient &gradient)
{
if (d_ptr->m_multiHighlightGradient != gradient) {
+ d_ptr->m_dirtyBits.multiHighlightGradientDirty = true;
d_ptr->m_multiHighlightGradient = gradient;
emit multiHighlightGradientChanged(gradient);
}
@@ -206,6 +218,7 @@ QLinearGradient Q3DTheme::multiHighlightGradient() const
void Q3DTheme::setLightStrength(float strength)
{
if (d_ptr->m_lightStrength != strength) {
+ d_ptr->m_dirtyBits.lightStrengthDirty = true;
d_ptr->m_lightStrength = strength;
emit lightStrengthChanged(strength);
}
@@ -219,6 +232,7 @@ float Q3DTheme::lightStrength() const
void Q3DTheme::setAmbientLightStrength(float strength)
{
if (d_ptr->m_ambientLightStrength != strength) {
+ d_ptr->m_dirtyBits.ambientLightStrengthDirty = true;
d_ptr->m_ambientLightStrength = strength;
emit ambientLightStrengthChanged(strength);
}
@@ -232,6 +246,7 @@ float Q3DTheme::ambientLightStrength() const
void Q3DTheme::setHighlightLightStrength(float strength)
{
if (d_ptr->m_highlightLightStrength != strength) {
+ d_ptr->m_dirtyBits.highlightLightStrengthDirty = true;
d_ptr->m_highlightLightStrength = strength;
emit highlightLightStrengthChanged(strength);
}
@@ -245,6 +260,7 @@ float Q3DTheme::highlightLightStrength() const
void Q3DTheme::setLabelBorderEnabled(bool enabled)
{
if (d_ptr->m_labelBorders != enabled) {
+ d_ptr->m_dirtyBits.labelBorderEnabledDirty = true;
d_ptr->m_labelBorders = enabled;
emit labelBorderEnabledChanged(enabled);
}
@@ -258,6 +274,7 @@ bool Q3DTheme::isLabelBorderEnabled() const
void Q3DTheme::setColorStyle(QDataVis::ColorStyle style)
{
if (d_ptr->m_colorStyle != style) {
+ d_ptr->m_dirtyBits.colorStyleDirty = true;
d_ptr->m_colorStyle = style;
emit colorStyleChanged(style);
}
diff --git a/src/datavisualization/theme/q3dtheme.h b/src/datavisualization/theme/q3dtheme.h
index 8d42e6cf..4cea4341 100644
--- a/src/datavisualization/theme/q3dtheme.h
+++ b/src/datavisualization/theme/q3dtheme.h
@@ -136,6 +136,8 @@ protected:
QObject *parent = 0);
QScopedPointer<Q3DThemePrivate> d_ptr;
+ friend class ThemeManager;
+
private:
Q_DISABLE_COPY(Q3DTheme)
};
diff --git a/src/datavisualization/theme/q3dtheme_p.h b/src/datavisualization/theme/q3dtheme_p.h
index ae4bdbe4..ca3108c8 100644
--- a/src/datavisualization/theme/q3dtheme_p.h
+++ b/src/datavisualization/theme/q3dtheme_p.h
@@ -37,6 +37,47 @@ class QLinearGradient;
QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+struct Q3DThemeDirtyBitField {
+ bool baseColorDirty : 1;
+ bool backgroundColorDirty : 1;
+ bool windowColorDirty : 1;
+ bool textColorDirty : 1;
+ bool textBackgroundColorDirty : 1;
+ bool gridLineColorDirty : 1;
+ bool singleHighlightColorDirty : 1;
+ bool multiHighlightColorDirty : 1;
+ bool lightColorDirty : 1;
+ bool baseGradientDirty : 1;
+ bool singleHighlightGradientDirty : 1;
+ bool multiHighlightGradientDirty : 1;
+ bool lightStrengthDirty : 1;
+ bool ambientLightStrengthDirty : 1;
+ bool highlightLightStrengthDirty : 1;
+ bool labelBorderEnabledDirty : 1;
+ bool colorStyleDirty : 1;
+
+ Q3DThemeDirtyBitField()
+ : baseColorDirty(false),
+ backgroundColorDirty(false),
+ windowColorDirty(false),
+ textColorDirty(false),
+ textBackgroundColorDirty(false),
+ gridLineColorDirty(false),
+ singleHighlightColorDirty(false),
+ multiHighlightColorDirty(false),
+ lightColorDirty(false),
+ baseGradientDirty(false),
+ singleHighlightGradientDirty(false),
+ multiHighlightGradientDirty(false),
+ lightStrengthDirty(false),
+ ambientLightStrengthDirty(false),
+ highlightLightStrengthDirty(false),
+ labelBorderEnabledDirty(false),
+ colorStyleDirty(false)
+ {
+ }
+};
+
class Q3DThemePrivate : public QObject
{
Q_OBJECT
@@ -48,6 +89,8 @@ public:
public:
QDataVis::Theme m_themeId;
+ Q3DThemeDirtyBitField m_dirtyBits;
+
QColor m_baseColor;
QColor m_heightColor;
QColor m_depthColor;
diff --git a/src/datavisualization/theme/thememanager.cpp b/src/datavisualization/theme/thememanager.cpp
index 5102fddf..168409b3 100644
--- a/src/datavisualization/theme/thememanager.cpp
+++ b/src/datavisualization/theme/thememanager.cpp
@@ -17,6 +17,7 @@
****************************************************************************/
#include "thememanager_p.h"
+#include "q3dtheme_p.h"
QT_DATAVISUALIZATION_BEGIN_NAMESPACE
@@ -64,36 +65,36 @@ void ThemeManager::connectThemeSignals()
// TODO: Implement receiving end for the commented ones (QTRD-2538)
connect(m_theme.data(), &Q3DTheme::baseColorChanged,
m_controller, &Abstract3DController::setObjectColor);
-// connect(m_theme.data(), &Q3DTheme::backgroundColorChanged,
-// m_controller, &Abstract3DController::setBackgroundColorColor);
-// connect(m_theme.data(), &Q3DTheme::windowColorChanged,
-// m_controller, &Abstract3DController::setWindowColor);
-// connect(m_theme.data(), &Q3DTheme::textColorChanged,
-// m_controller, &Abstract3DController::setTextColor);
-// connect(m_theme.data(), &Q3DTheme::textBackgroundColorChanged,
-// m_controller, &Abstract3DController::setTextBackgroundColor);
-// connect(m_theme.data(), &Q3DTheme::gridLineColorChanged,
-// m_controller, &Abstract3DController::setGridLineColor);
+ // connect(m_theme.data(), &Q3DTheme::backgroundColorChanged,
+ // m_controller, &Abstract3DController::setBackgroundColorColor);
+ // connect(m_theme.data(), &Q3DTheme::windowColorChanged,
+ // m_controller, &Abstract3DController::setWindowColor);
+ // connect(m_theme.data(), &Q3DTheme::textColorChanged,
+ // m_controller, &Abstract3DController::setTextColor);
+ // connect(m_theme.data(), &Q3DTheme::textBackgroundColorChanged,
+ // m_controller, &Abstract3DController::setTextBackgroundColor);
+ // connect(m_theme.data(), &Q3DTheme::gridLineColorChanged,
+ // m_controller, &Abstract3DController::setGridLineColor);
connect(m_theme.data(), &Q3DTheme::singleHighlightColorChanged,
m_controller, &Abstract3DController::setSingleHighlightColor);
connect(m_theme.data(), &Q3DTheme::multiHighlightColorChanged,
m_controller, &Abstract3DController::setMultiHighlightColor);
-// connect(m_theme.data(), &Q3DTheme::lightColorChanged,
-// m_controller, &Abstract3DController::setLightColor);
+ // connect(m_theme.data(), &Q3DTheme::lightColorChanged,
+ // m_controller, &Abstract3DController::setLightColor);
connect(m_theme.data(), &Q3DTheme::baseGradientChanged,
m_controller, &Abstract3DController::setObjectGradient);
connect(m_theme.data(), &Q3DTheme::singleHighlightGradientChanged,
m_controller, &Abstract3DController::setSingleHighlightGradient);
connect(m_theme.data(), &Q3DTheme::multiHighlightGradientChanged,
m_controller, &Abstract3DController::setMultiHighlightGradient);
-// connect(m_theme.data(), &Q3DTheme::lightStrengthChanged,
-// m_controller, &Abstract3DController::setLightStrength);
-// connect(m_theme.data(), &Q3DTheme::ambientLightStrengthChanged,
-// m_controller, &Abstract3DController::setAmbientLightStrength);
-// connect(m_theme.data(), &Q3DTheme::highlightLightStrengthChanged,
-// m_controller, &Abstract3DController::setHighlightLightStrength);
-// connect(m_theme.data(), &Q3DTheme::labelBorderEnabledChanged,
-// m_controller, &Abstract3DController::setLabelBorderEnabled);
+ // connect(m_theme.data(), &Q3DTheme::lightStrengthChanged,
+ // m_controller, &Abstract3DController::setLightStrength);
+ // connect(m_theme.data(), &Q3DTheme::ambientLightStrengthChanged,
+ // m_controller, &Abstract3DController::setAmbientLightStrength);
+ // connect(m_theme.data(), &Q3DTheme::highlightLightStrengthChanged,
+ // m_controller, &Abstract3DController::setHighlightLightStrength);
+ // connect(m_theme.data(), &Q3DTheme::labelBorderEnabledChanged,
+ // m_controller, &Abstract3DController::setLabelBorderEnabled);
connect(m_theme.data(), &Q3DTheme::colorStyleChanged,
m_controller, &Abstract3DController::setColorStyle);
@@ -107,19 +108,19 @@ void ThemeManager::useTheme(QDataVis::Theme type)
switch (type) {
case QDataVis::ThemeQt: {
- m_theme->setBaseColor(QColor(QRgb(0x80c342)));
- m_theme->setBackgroundColor(QColor(QRgb(0xffffff)));
- m_theme->setWindowColor(QColor(QRgb(0xffffff)));
- m_theme->setTextColor(QColor(QRgb(0x35322f)));
- m_theme->setTextBackgroundColor(QColor(0xff, 0xff, 0xff, 0x99));
- m_theme->setGridLineColor(QColor(QRgb(0xd7d6d5)));
- m_theme->setSingleHighlightColor(QColor(QRgb(0x14aaff)));
- m_theme->setMultiHighlightColor(QColor(QRgb(0x6400aa)));
- m_theme->setLightStrength(5.0f);
- m_theme->setAmbientLightStrength(0.5f);
- m_theme->setHighlightLightStrength(5.0f);
- m_theme->setLabelBorderEnabled(true);
- m_theme->setColorStyle(QDataVis::ColorStyleUniform);
+ setBaseColor(QColor(QRgb(0x80c342)));
+ setBackgroundColor(QColor(QRgb(0xffffff)));
+ setWindowColor(QColor(QRgb(0xffffff)));
+ setTextColor(QColor(QRgb(0x35322f)));
+ setTextBackgroundColor(QColor(0xff, 0xff, 0xff, 0x99));
+ setGridLineColor(QColor(QRgb(0xd7d6d5)));
+ setSingleHighlightColor(QColor(QRgb(0x14aaff)));
+ setMultiHighlightColor(QColor(QRgb(0x6400aa)));
+ setLightStrength(5.0f);
+ setAmbientLightStrength(0.5f);
+ setHighlightLightStrength(5.0f);
+ setLabelBorderEnabled(true);
+ setColorStyle(QDataVis::ColorStyleUniform);
gradient = QLinearGradient(qreal(gradientTextureWidth),
qreal(gradientTextureHeight),
0.0, 0.0);
@@ -128,36 +129,36 @@ void ThemeManager::useTheme(QDataVis::Theme type)
color.setBlue(0x42 * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0x80c342)));
- m_theme->setBaseGradient(gradient);
+ setBaseGradient(gradient);
color.setRed(0x14 * 0.7);
color.setGreen(0xaa * 0.7);
color.setBlue(0xff * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0x14aaff)));
- m_theme->setSingleHighlightGradient(gradient);
+ setSingleHighlightGradient(gradient);
color.setRed(0x64 * 0.7);
color.setGreen(0x00);
color.setBlue(0xaa * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0x6400aa)));
- m_theme->setMultiHighlightGradient(gradient);
+ setMultiHighlightGradient(gradient);
break;
}
case QDataVis::ThemePrimaryColors: {
- m_theme->setBaseColor(QColor(QRgb(0xffe400)));
- m_theme->setBackgroundColor(QColor(QRgb(0xffffff)));
- m_theme->setWindowColor(QColor(QRgb(0xffffff)));
- m_theme->setTextColor(QColor(QRgb(0x000000)));
- m_theme->setTextBackgroundColor(QColor(0xff, 0xff, 0xff, 0x99));
- m_theme->setGridLineColor(QColor(QRgb(0xd7d6d5)));
- m_theme->setSingleHighlightColor(QColor(QRgb(0x27beee)));
- m_theme->setMultiHighlightColor(QColor(QRgb(0xee1414)));
- m_theme->setLightStrength(5.0f);
- m_theme->setAmbientLightStrength(0.5f);
- m_theme->setHighlightLightStrength(5.0f);
- m_theme->setLabelBorderEnabled(false);
- m_theme->setColorStyle(QDataVis::ColorStyleUniform);
+ setBaseColor(QColor(QRgb(0xffe400)));
+ setBackgroundColor(QColor(QRgb(0xffffff)));
+ setWindowColor(QColor(QRgb(0xffffff)));
+ setTextColor(QColor(QRgb(0x000000)));
+ setTextBackgroundColor(QColor(0xff, 0xff, 0xff, 0x99));
+ setGridLineColor(QColor(QRgb(0xd7d6d5)));
+ setSingleHighlightColor(QColor(QRgb(0x27beee)));
+ setMultiHighlightColor(QColor(QRgb(0xee1414)));
+ setLightStrength(5.0f);
+ setAmbientLightStrength(0.5f);
+ setHighlightLightStrength(5.0f);
+ setLabelBorderEnabled(false);
+ setColorStyle(QDataVis::ColorStyleUniform);
gradient = QLinearGradient(qreal(gradientTextureWidth),
qreal(gradientTextureHeight),
0.0, 0.0);
@@ -166,36 +167,36 @@ void ThemeManager::useTheme(QDataVis::Theme type)
color.setBlue(0x00);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0xffe400)));
- m_theme->setBaseGradient(gradient);
+ setBaseGradient(gradient);
color.setRed(0x27 * 0.7);
color.setGreen(0xbe * 0.7);
color.setBlue(0xee * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0x27beee)));
- m_theme->setSingleHighlightGradient(gradient);
+ setSingleHighlightGradient(gradient);
color.setRed(0xee * 0.7);
color.setGreen(0x14 * 0.7);
color.setBlue(0x14 * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0xee1414)));
- m_theme->setMultiHighlightGradient(gradient);
+ setMultiHighlightGradient(gradient);
break;
}
case QDataVis::ThemeDigia: {
- m_theme->setBaseColor(QColor(QRgb(0xcccccc)));
- m_theme->setBackgroundColor(QColor(QRgb(0xffffff)));
- m_theme->setWindowColor(QColor(QRgb(0xffffff)));
- m_theme->setTextColor(QColor(QRgb(0x000000)));
- m_theme->setTextBackgroundColor(QColor(0xff, 0xff, 0xff, 0x80));
- m_theme->setGridLineColor(QColor(QRgb(0xd7d6d5)));
- m_theme->setSingleHighlightColor(QColor(QRgb(0xfa0000)));
- m_theme->setMultiHighlightColor(QColor(QRgb(0x555555)));
- m_theme->setLightStrength(5.0f);
- m_theme->setAmbientLightStrength(0.5f);
- m_theme->setHighlightLightStrength(5.0f);
- m_theme->setLabelBorderEnabled(false);
- m_theme->setColorStyle(QDataVis::ColorStyleObjectGradient);
+ setBaseColor(QColor(QRgb(0xcccccc)));
+ setBackgroundColor(QColor(QRgb(0xffffff)));
+ setWindowColor(QColor(QRgb(0xffffff)));
+ setTextColor(QColor(QRgb(0x000000)));
+ setTextBackgroundColor(QColor(0xff, 0xff, 0xff, 0x80));
+ setGridLineColor(QColor(QRgb(0xd7d6d5)));
+ setSingleHighlightColor(QColor(QRgb(0xfa0000)));
+ setMultiHighlightColor(QColor(QRgb(0x555555)));
+ setLightStrength(5.0f);
+ setAmbientLightStrength(0.5f);
+ setHighlightLightStrength(5.0f);
+ setLabelBorderEnabled(false);
+ setColorStyle(QDataVis::ColorStyleObjectGradient);
gradient = QLinearGradient(qreal(gradientTextureWidth),
qreal(gradientTextureHeight),
0.0, 0.0);
@@ -204,36 +205,36 @@ void ThemeManager::useTheme(QDataVis::Theme type)
color.setBlue(0xcc * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0xcccccc)));
- m_theme->setBaseGradient(gradient);
+ setBaseGradient(gradient);
color.setRed(0xfa * 0.7);
color.setGreen(0x00);
color.setBlue(0x00);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0xfa0000)));
- m_theme->setSingleHighlightGradient(gradient);
+ setSingleHighlightGradient(gradient);
color.setRed(0x55 * 0.7);
color.setGreen(0x55 * 0.7);
color.setBlue(0x55 * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0x555555)));
- m_theme->setMultiHighlightGradient(gradient);
+ setMultiHighlightGradient(gradient);
break;
}
case QDataVis::ThemeStoneMoss: {
- m_theme->setBaseColor(QColor(QRgb(0xbeb32b)));
- m_theme->setBackgroundColor(QColor(QRgb(0x4d4d4f)));
- m_theme->setWindowColor(QColor(QRgb(0x4d4d4f)));
- m_theme->setTextColor(QColor(QRgb(0xffffff)));
- m_theme->setTextBackgroundColor(QColor(0x4d, 0x4d, 0x4f, 0xcd));
- m_theme->setGridLineColor(QColor(QRgb(0x3e3e40)));
- m_theme->setSingleHighlightColor(QColor(QRgb(0xfbf6d6)));
- m_theme->setMultiHighlightColor(QColor(QRgb(0x442f20)));
- m_theme->setLightStrength(5.0f);
- m_theme->setAmbientLightStrength(0.5f);
- m_theme->setHighlightLightStrength(5.0f);
- m_theme->setLabelBorderEnabled(true);
- m_theme->setColorStyle(QDataVis::ColorStyleUniform);
+ setBaseColor(QColor(QRgb(0xbeb32b)));
+ setBackgroundColor(QColor(QRgb(0x4d4d4f)));
+ setWindowColor(QColor(QRgb(0x4d4d4f)));
+ setTextColor(QColor(QRgb(0xffffff)));
+ setTextBackgroundColor(QColor(0x4d, 0x4d, 0x4f, 0xcd));
+ setGridLineColor(QColor(QRgb(0x3e3e40)));
+ setSingleHighlightColor(QColor(QRgb(0xfbf6d6)));
+ setMultiHighlightColor(QColor(QRgb(0x442f20)));
+ setLightStrength(5.0f);
+ setAmbientLightStrength(0.5f);
+ setHighlightLightStrength(5.0f);
+ setLabelBorderEnabled(true);
+ setColorStyle(QDataVis::ColorStyleUniform);
gradient = QLinearGradient(qreal(gradientTextureWidth),
qreal(gradientTextureHeight),
0.0, 0.0);
@@ -242,36 +243,36 @@ void ThemeManager::useTheme(QDataVis::Theme type)
color.setBlue(0x2b * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0xbeb32b)));
- m_theme->setBaseGradient(gradient);
+ setBaseGradient(gradient);
color.setRed(0xfb* 0.7);
color.setGreen(0xf6 * 0.7);
color.setBlue(0xd6 * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0xfbf6d6)));
- m_theme->setSingleHighlightGradient(gradient);
+ setSingleHighlightGradient(gradient);
color.setRed(0x44 * 0.7);
color.setGreen(0x2f * 0.7);
color.setBlue(0x20 * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0x442f20)));
- m_theme->setMultiHighlightGradient(gradient);
+ setMultiHighlightGradient(gradient);
break;
}
case QDataVis::ThemeArmyBlue: {
- m_theme->setBaseColor(QColor(QRgb(0x495f76)));
- m_theme->setBackgroundColor(QColor(QRgb(0xd5d6d7)));
- m_theme->setWindowColor(QColor(QRgb(0xd5d6d7)));
- m_theme->setTextColor(QColor(QRgb(0x000000)));
- m_theme->setTextBackgroundColor(QColor(0xd5, 0xd6, 0xd7, 0xcd));
- m_theme->setGridLineColor(QColor(QRgb(0xaeadac)));
- m_theme->setSingleHighlightColor(QColor(QRgb(0x2aa2f9)));
- m_theme->setMultiHighlightColor(QColor(QRgb(0x103753)));
- m_theme->setLightStrength(5.0f);
- m_theme->setAmbientLightStrength(0.5f);
- m_theme->setHighlightLightStrength(5.0f);
- m_theme->setLabelBorderEnabled(false);
- m_theme->setColorStyle(QDataVis::ColorStyleObjectGradient);
+ setBaseColor(QColor(QRgb(0x495f76)));
+ setBackgroundColor(QColor(QRgb(0xd5d6d7)));
+ setWindowColor(QColor(QRgb(0xd5d6d7)));
+ setTextColor(QColor(QRgb(0x000000)));
+ setTextBackgroundColor(QColor(0xd5, 0xd6, 0xd7, 0xcd));
+ setGridLineColor(QColor(QRgb(0xaeadac)));
+ setSingleHighlightColor(QColor(QRgb(0x2aa2f9)));
+ setMultiHighlightColor(QColor(QRgb(0x103753)));
+ setLightStrength(5.0f);
+ setAmbientLightStrength(0.5f);
+ setHighlightLightStrength(5.0f);
+ setLabelBorderEnabled(false);
+ setColorStyle(QDataVis::ColorStyleObjectGradient);
gradient = QLinearGradient(qreal(gradientTextureWidth),
qreal(gradientTextureHeight),
0.0, 0.0);
@@ -280,36 +281,36 @@ void ThemeManager::useTheme(QDataVis::Theme type)
color.setBlue(0x76 * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0x495f76)));
- m_theme->setBaseGradient(gradient);
+ setBaseGradient(gradient);
color.setRed(0x2a * 0.7);
color.setGreen(0xa2 * 0.7);
color.setBlue(0xf9 * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0x2aa2f9)));
- m_theme->setSingleHighlightGradient(gradient);
+ setSingleHighlightGradient(gradient);
color.setRed(0x10 * 0.7);
color.setGreen(0x37 * 0.7);
color.setBlue(0x53 * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0x103753)));
- m_theme->setMultiHighlightGradient(gradient);
+ setMultiHighlightGradient(gradient);
break;
}
case QDataVis::ThemeRetro: {
- m_theme->setBaseColor(QColor(QRgb(0x533b23)));
- m_theme->setBackgroundColor(QColor(QRgb(0xe9e2ce)));
- m_theme->setWindowColor(QColor(QRgb(0xe9e2ce)));
- m_theme->setTextColor(QColor(QRgb(0x000000)));
- m_theme->setTextBackgroundColor(QColor(0xe9, 0xe2, 0xce, 0xc0));
- m_theme->setGridLineColor(QColor(QRgb(0xd0c0b0)));
- m_theme->setSingleHighlightColor(QColor(QRgb(0x8ea317)));
- m_theme->setMultiHighlightColor(QColor(QRgb(0xc25708)));
- m_theme->setLightStrength(5.0f);
- m_theme->setAmbientLightStrength(0.5f);
- m_theme->setHighlightLightStrength(5.0f);
- m_theme->setLabelBorderEnabled(false);
- m_theme->setColorStyle(QDataVis::ColorStyleObjectGradient);
+ setBaseColor(QColor(QRgb(0x533b23)));
+ setBackgroundColor(QColor(QRgb(0xe9e2ce)));
+ setWindowColor(QColor(QRgb(0xe9e2ce)));
+ setTextColor(QColor(QRgb(0x000000)));
+ setTextBackgroundColor(QColor(0xe9, 0xe2, 0xce, 0xc0));
+ setGridLineColor(QColor(QRgb(0xd0c0b0)));
+ setSingleHighlightColor(QColor(QRgb(0x8ea317)));
+ setMultiHighlightColor(QColor(QRgb(0xc25708)));
+ setLightStrength(5.0f);
+ setAmbientLightStrength(0.5f);
+ setHighlightLightStrength(5.0f);
+ setLabelBorderEnabled(false);
+ setColorStyle(QDataVis::ColorStyleObjectGradient);
gradient = QLinearGradient(qreal(gradientTextureWidth),
qreal(gradientTextureHeight),
0.0, 0.0);
@@ -318,36 +319,36 @@ void ThemeManager::useTheme(QDataVis::Theme type)
color.setBlue(0x23 * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0x533b23)));
- m_theme->setBaseGradient(gradient);
+ setBaseGradient(gradient);
color.setRed(0x8e * 0.7);
color.setGreen(0xa3 * 0.7);
color.setBlue(0x17 * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0x8ea317)));
- m_theme->setSingleHighlightGradient(gradient);
+ setSingleHighlightGradient(gradient);
color.setRed(0xc2 * 0.7);
color.setGreen(0x57 * 0.7);
color.setBlue(0x08 * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0xc25708)));
- m_theme->setMultiHighlightGradient(gradient);
+ setMultiHighlightGradient(gradient);
break;
}
case QDataVis::ThemeEbony: {
- m_theme->setBaseColor(QColor(QRgb(0xffffff)));
- m_theme->setBackgroundColor(QColor(QRgb(0x000000)));
- m_theme->setWindowColor(QColor(QRgb(0x000000)));
- m_theme->setTextColor(QColor(QRgb(0xaeadac)));
- m_theme->setTextBackgroundColor(QColor(0x00, 0x00, 0x00, 0xcd));
- m_theme->setGridLineColor(QColor(QRgb(0x35322f)));
- m_theme->setSingleHighlightColor(QColor(QRgb(0xf5dc0d)));
- m_theme->setMultiHighlightColor(QColor(QRgb(0xd72222)));
- m_theme->setLightStrength(5.0f);
- m_theme->setAmbientLightStrength(0.5f);
- m_theme->setHighlightLightStrength(5.0f);
- m_theme->setLabelBorderEnabled(false);
- m_theme->setColorStyle(QDataVis::ColorStyleUniform);
+ setBaseColor(QColor(QRgb(0xffffff)));
+ setBackgroundColor(QColor(QRgb(0x000000)));
+ setWindowColor(QColor(QRgb(0x000000)));
+ setTextColor(QColor(QRgb(0xaeadac)));
+ setTextBackgroundColor(QColor(0x00, 0x00, 0x00, 0xcd));
+ setGridLineColor(QColor(QRgb(0x35322f)));
+ setSingleHighlightColor(QColor(QRgb(0xf5dc0d)));
+ setMultiHighlightColor(QColor(QRgb(0xd72222)));
+ setLightStrength(5.0f);
+ setAmbientLightStrength(0.5f);
+ setHighlightLightStrength(5.0f);
+ setLabelBorderEnabled(false);
+ setColorStyle(QDataVis::ColorStyleUniform);
gradient = QLinearGradient(qreal(gradientTextureWidth),
qreal(gradientTextureHeight),
0.0, 0.0);
@@ -356,36 +357,36 @@ void ThemeManager::useTheme(QDataVis::Theme type)
color.setBlue(0xff * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0xffffff)));
- m_theme->setBaseGradient(gradient);
+ setBaseGradient(gradient);
color.setRed(0xf5 * 0.7);
color.setGreen(0xdc * 0.7);
color.setBlue(0x0d * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0xf5dc0d)));
- m_theme->setSingleHighlightGradient(gradient);
+ setSingleHighlightGradient(gradient);
color.setRed(0x72 * 0.7);
color.setGreen(0x22 * 0.7);
color.setBlue(0x22 * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0xd72222)));
- m_theme->setMultiHighlightGradient(gradient);
+ setMultiHighlightGradient(gradient);
break;
}
case QDataVis::ThemeIsabelle: {
- m_theme->setBaseColor(QColor(QRgb(0xf9d900)));
- m_theme->setBackgroundColor(QColor(QRgb(0x000000)));
- m_theme->setWindowColor(QColor(QRgb(0x000000)));
- m_theme->setTextColor(QColor(QRgb(0xaeadac)));
- m_theme->setTextBackgroundColor(QColor(0x00, 0x00, 0x00, 0xc0));
- m_theme->setGridLineColor(QColor(QRgb(0x35322f)));
- m_theme->setSingleHighlightColor(QColor(QRgb(0xfff7cc)));
- m_theme->setMultiHighlightColor(QColor(QRgb(0xde0a0a)));
- m_theme->setLightStrength(5.0f);
- m_theme->setAmbientLightStrength(0.5f);
- m_theme->setHighlightLightStrength(5.0f);
- m_theme->setLabelBorderEnabled(false);
- m_theme->setColorStyle(QDataVis::ColorStyleUniform);
+ setBaseColor(QColor(QRgb(0xf9d900)));
+ setBackgroundColor(QColor(QRgb(0x000000)));
+ setWindowColor(QColor(QRgb(0x000000)));
+ setTextColor(QColor(QRgb(0xaeadac)));
+ setTextBackgroundColor(QColor(0x00, 0x00, 0x00, 0xc0));
+ setGridLineColor(QColor(QRgb(0x35322f)));
+ setSingleHighlightColor(QColor(QRgb(0xfff7cc)));
+ setMultiHighlightColor(QColor(QRgb(0xde0a0a)));
+ setLightStrength(5.0f);
+ setAmbientLightStrength(0.5f);
+ setHighlightLightStrength(5.0f);
+ setLabelBorderEnabled(false);
+ setColorStyle(QDataVis::ColorStyleUniform);
gradient = QLinearGradient(qreal(gradientTextureWidth),
qreal(gradientTextureHeight),
0.0, 0.0);
@@ -394,19 +395,19 @@ void ThemeManager::useTheme(QDataVis::Theme type)
color.setBlue(0x00);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0xf9d900)));
- m_theme->setBaseGradient(gradient);
+ setBaseGradient(gradient);
color.setRed(0xff * 0.7);
color.setGreen(0xf7 * 0.7);
color.setBlue(0xcc * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0xfff7cc)));
- m_theme->setSingleHighlightGradient(gradient);
+ setSingleHighlightGradient(gradient);
color.setRed(0xde * 0.7);
color.setGreen(0x0a * 0.7);
color.setBlue(0x0a * 0.7);
gradient.setColorAt(0.0, color);
gradient.setColorAt(1.0, QColor(QRgb(0xde0a0a)));
- m_theme->setMultiHighlightGradient(gradient);
+ setMultiHighlightGradient(gradient);
break;
}
default:
@@ -414,4 +415,106 @@ void ThemeManager::useTheme(QDataVis::Theme type)
}
}
+void ThemeManager::setBaseColor(const QColor &color)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.baseColorDirty)
+ m_theme->setBaseColor(color);
+}
+
+void ThemeManager::setBackgroundColor(const QColor &color)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.backgroundColorDirty)
+ m_theme->setBackgroundColor(color);
+}
+
+void ThemeManager::setWindowColor(const QColor &color)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.windowColorDirty)
+ m_theme->setWindowColor(color);
+}
+
+void ThemeManager::setTextColor(const QColor &color)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.textColorDirty)
+ m_theme->setTextColor(color);
+}
+
+void ThemeManager::setTextBackgroundColor(const QColor &color)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.textBackgroundColorDirty)
+ m_theme->setTextBackgroundColor(color);
+}
+
+void ThemeManager::setGridLineColor(const QColor &color)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.gridLineColorDirty)
+ m_theme->setGridLineColor(color);
+}
+
+void ThemeManager::setSingleHighlightColor(const QColor &color)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.singleHighlightColorDirty)
+ m_theme->setSingleHighlightColor(color);
+}
+
+void ThemeManager::setMultiHighlightColor(const QColor &color)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.multiHighlightColorDirty)
+ m_theme->setMultiHighlightColor(color);
+}
+
+void ThemeManager::setLightColor(const QColor &color)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.lightColorDirty)
+ m_theme->setLightColor(color);
+}
+
+void ThemeManager::setBaseGradient(const QLinearGradient &gradient)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.baseGradientDirty)
+ m_theme->setBaseGradient(gradient);
+}
+
+void ThemeManager::setSingleHighlightGradient(const QLinearGradient &gradient)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.singleHighlightGradientDirty)
+ m_theme->setSingleHighlightGradient(gradient);
+}
+
+void ThemeManager::setMultiHighlightGradient(const QLinearGradient &gradient)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.multiHighlightGradientDirty)
+ m_theme->setMultiHighlightGradient(gradient);
+}
+
+void ThemeManager::setLightStrength(float strength)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.lightStrengthDirty)
+ m_theme->setLightStrength(strength);
+}
+
+void ThemeManager::setAmbientLightStrength(float strength)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.ambientLightStrengthDirty)
+ m_theme->setAmbientLightStrength(strength);
+}
+
+void ThemeManager::setHighlightLightStrength(float strength)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.highlightLightStrengthDirty)
+ m_theme->setHighlightLightStrength(strength);
+}
+
+void ThemeManager::setLabelBorderEnabled(bool enabled)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.labelBorderEnabledDirty)
+ m_theme->setLabelBorderEnabled(enabled);
+}
+
+void ThemeManager::setColorStyle(QDataVis::ColorStyle style)
+{
+ if (!m_theme->d_ptr->m_dirtyBits.colorStyleDirty)
+ m_theme->setColorStyle(style);
+}
+
QT_DATAVISUALIZATION_END_NAMESPACE
diff --git a/src/datavisualization/theme/thememanager_p.h b/src/datavisualization/theme/thememanager_p.h
index 0b05dc9b..26ae6282 100644
--- a/src/datavisualization/theme/thememanager_p.h
+++ b/src/datavisualization/theme/thememanager_p.h
@@ -48,6 +48,23 @@ public:
protected:
void connectThemeSignals();
void useTheme(QDataVis::Theme type);
+ void setBaseColor(const QColor &color);
+ void setBackgroundColor(const QColor &color);
+ void setWindowColor(const QColor &color);
+ void setTextColor(const QColor &color);
+ void setTextBackgroundColor(const QColor &color);
+ void setGridLineColor(const QColor &color);
+ void setSingleHighlightColor(const QColor &color);
+ void setMultiHighlightColor(const QColor &color);
+ void setLightColor(const QColor &color);
+ void setBaseGradient(const QLinearGradient &gradient);
+ void setSingleHighlightGradient(const QLinearGradient &gradient);
+ void setMultiHighlightGradient(const QLinearGradient &gradient);
+ void setLightStrength(float strength);
+ void setAmbientLightStrength(float strength);
+ void setHighlightLightStrength(float strength);
+ void setLabelBorderEnabled(bool enabled);
+ void setColorStyle(QDataVis::ColorStyle style);
private:
QScopedPointer<Q3DTheme> m_theme;