summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-11-22 09:27:38 +0200
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-11-22 09:36:32 +0200
commit4588556895bc14803e3ad884e89eb988b751e6be (patch)
treee0032ad35ba353990272c411732d58d1fc1097aa
parent3ce4ae10e54e9c5d73826f4d6f8c5e442ac2d525 (diff)
Gradients and colors defined for all built-in themes
Task-number: QTRD-2608 Change-Id: Ib6c3b4ec697efc238db9776b3f71c11a0d099c57 Change-Id: Ib6c3b4ec697efc238db9776b3f71c11a0d099c57 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
-rw-r--r--src/datavisualization/engine/abstract3dcontroller.cpp22
-rw-r--r--src/datavisualization/theme/thememanager.cpp134
-rw-r--r--tests/barstest/chart.cpp30
-rw-r--r--tests/barstest/chart.h1
-rw-r--r--tests/barstest/main.cpp8
5 files changed, 158 insertions, 37 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp
index afe0b124..e185d322 100644
--- a/src/datavisualization/engine/abstract3dcontroller.cpp
+++ b/src/datavisualization/engine/abstract3dcontroller.cpp
@@ -684,6 +684,18 @@ void Abstract3DController::setZoomLevel(int zoomLevel)
void Abstract3DController::setColorStyle(QDataVis::ColorStyle style)
{
+ if (style != m_colorStyle || m_changeTracker.themeChanged) {
+ Q3DTheme *theme = m_themeManager->theme();
+ if (style == QDataVis::ColorStyleUniform) {
+ setObjectColor(theme->baseColor());
+ setSingleHighlightColor(theme->singleHighlightColor());
+ setMultiHighlightColor(theme->multiHighlightColor());
+ } else {
+ setObjectGradient(theme->baseGradient());
+ setSingleHighlightGradient(theme->singleHighlightGradient());
+ setMultiHighlightGradient(theme->multiHighlightGradient());
+ }
+ }
if (style != m_colorStyle) {
m_colorStyle = style;
m_changeTracker.colorStyleChanged = true;
@@ -795,16 +807,6 @@ void Abstract3DController::setTheme(Q3DTheme *theme)
m_changeTracker.themeChanged = true;
// TODO: set all colors/styles here (QTRD-2538)
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);
}
}
diff --git a/src/datavisualization/theme/thememanager.cpp b/src/datavisualization/theme/thememanager.cpp
index 57682958..5102fddf 100644
--- a/src/datavisualization/theme/thememanager.cpp
+++ b/src/datavisualization/theme/thememanager.cpp
@@ -102,6 +102,9 @@ void ThemeManager::connectThemeSignals()
void ThemeManager::useTheme(QDataVis::Theme type)
{
+ QColor color;
+ QLinearGradient gradient;
+
switch (type) {
case QDataVis::ThemeQt: {
m_theme->setBaseColor(QColor(QRgb(0x80c342)));
@@ -117,6 +120,27 @@ void ThemeManager::useTheme(QDataVis::Theme type)
m_theme->setHighlightLightStrength(5.0f);
m_theme->setLabelBorderEnabled(true);
m_theme->setColorStyle(QDataVis::ColorStyleUniform);
+ gradient = QLinearGradient(qreal(gradientTextureWidth),
+ qreal(gradientTextureHeight),
+ 0.0, 0.0);
+ color.setRed(0x80 * 0.7);
+ color.setGreen(0xc3 * 0.7);
+ color.setBlue(0x42 * 0.7);
+ gradient.setColorAt(0.0, color);
+ gradient.setColorAt(1.0, QColor(QRgb(0x80c342)));
+ m_theme->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);
+ 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);
break;
}
@@ -134,10 +158,32 @@ void ThemeManager::useTheme(QDataVis::Theme type)
m_theme->setHighlightLightStrength(5.0f);
m_theme->setLabelBorderEnabled(false);
m_theme->setColorStyle(QDataVis::ColorStyleUniform);
+ gradient = QLinearGradient(qreal(gradientTextureWidth),
+ qreal(gradientTextureHeight),
+ 0.0, 0.0);
+ color.setRed(0xff * 0.7);
+ color.setGreen(0xe4 * 0.7);
+ color.setBlue(0x00);
+ gradient.setColorAt(0.0, color);
+ gradient.setColorAt(1.0, QColor(QRgb(0xffe400)));
+ m_theme->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);
+ 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);
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)));
@@ -150,10 +196,9 @@ void ThemeManager::useTheme(QDataVis::Theme type)
m_theme->setHighlightLightStrength(5.0f);
m_theme->setLabelBorderEnabled(false);
m_theme->setColorStyle(QDataVis::ColorStyleObjectGradient);
- QLinearGradient gradient = QLinearGradient(qreal(gradientTextureWidth),
- qreal(gradientTextureHeight),
- 0.0, 0.0);
- QColor color;
+ gradient = QLinearGradient(qreal(gradientTextureWidth),
+ qreal(gradientTextureHeight),
+ 0.0, 0.0);
color.setRed(0xcc * 0.7);
color.setGreen(0xcc * 0.7);
color.setBlue(0xcc * 0.7);
@@ -189,10 +234,32 @@ void ThemeManager::useTheme(QDataVis::Theme type)
m_theme->setHighlightLightStrength(5.0f);
m_theme->setLabelBorderEnabled(true);
m_theme->setColorStyle(QDataVis::ColorStyleUniform);
+ gradient = QLinearGradient(qreal(gradientTextureWidth),
+ qreal(gradientTextureHeight),
+ 0.0, 0.0);
+ color.setRed(0xbe * 0.7);
+ color.setGreen(0xb3 * 0.7);
+ color.setBlue(0x2b * 0.7);
+ gradient.setColorAt(0.0, color);
+ gradient.setColorAt(1.0, QColor(QRgb(0xbeb32b)));
+ m_theme->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);
+ 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);
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)));
@@ -205,10 +272,9 @@ void ThemeManager::useTheme(QDataVis::Theme type)
m_theme->setHighlightLightStrength(5.0f);
m_theme->setLabelBorderEnabled(false);
m_theme->setColorStyle(QDataVis::ColorStyleObjectGradient);
- QLinearGradient gradient = QLinearGradient(qreal(gradientTextureWidth),
- qreal(gradientTextureHeight),
- 0.0, 0.0);
- QColor color;
+ gradient = QLinearGradient(qreal(gradientTextureWidth),
+ qreal(gradientTextureHeight),
+ 0.0, 0.0);
color.setRed(0x49 * 0.7);
color.setGreen(0x5f * 0.7);
color.setBlue(0x76 * 0.7);
@@ -231,6 +297,7 @@ void ThemeManager::useTheme(QDataVis::Theme type)
}
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)));
@@ -243,10 +310,9 @@ void ThemeManager::useTheme(QDataVis::Theme type)
m_theme->setHighlightLightStrength(5.0f);
m_theme->setLabelBorderEnabled(false);
m_theme->setColorStyle(QDataVis::ColorStyleObjectGradient);
- QLinearGradient gradient = QLinearGradient(qreal(gradientTextureWidth),
- qreal(gradientTextureHeight),
- 0.0, 0.0);
- QColor color;
+ gradient = QLinearGradient(qreal(gradientTextureWidth),
+ qreal(gradientTextureHeight),
+ 0.0, 0.0);
color.setRed(0x53 * 0.7);
color.setGreen(0x3b * 0.7);
color.setBlue(0x23 * 0.7);
@@ -282,6 +348,27 @@ void ThemeManager::useTheme(QDataVis::Theme type)
m_theme->setHighlightLightStrength(5.0f);
m_theme->setLabelBorderEnabled(false);
m_theme->setColorStyle(QDataVis::ColorStyleUniform);
+ gradient = QLinearGradient(qreal(gradientTextureWidth),
+ qreal(gradientTextureHeight),
+ 0.0, 0.0);
+ color.setRed(0xff * 0.7);
+ color.setGreen(0xff * 0.7);
+ color.setBlue(0xff * 0.7);
+ gradient.setColorAt(0.0, color);
+ gradient.setColorAt(1.0, QColor(QRgb(0xffffff)));
+ m_theme->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);
+ 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);
break;
}
@@ -299,8 +386,31 @@ void ThemeManager::useTheme(QDataVis::Theme type)
m_theme->setHighlightLightStrength(5.0f);
m_theme->setLabelBorderEnabled(false);
m_theme->setColorStyle(QDataVis::ColorStyleUniform);
+ gradient = QLinearGradient(qreal(gradientTextureWidth),
+ qreal(gradientTextureHeight),
+ 0.0, 0.0);
+ color.setRed(0xf9 * 0.7);
+ color.setGreen(0xd9 * 0.7);
+ color.setBlue(0x00);
+ gradient.setColorAt(0.0, color);
+ gradient.setColorAt(1.0, QColor(QRgb(0xf9d900)));
+ m_theme->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);
+ 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);
break;
}
+ default:
+ break;
}
}
diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp
index 14990640..bd99168f 100644
--- a/tests/barstest/chart.cpp
+++ b/tests/barstest/chart.cpp
@@ -672,6 +672,16 @@ void GraphModifier::setMaxY(int max)
m_maxval = max;
}
+void GraphModifier::changeColorStyle()
+{
+ int style = m_graph->theme()->colorStyle();
+
+ if (++style > QDataVis::ColorStyleRangeGradient)
+ style = QDataVis::ColorStyleUniform;
+
+ m_graph->theme()->setColorStyle(QDataVis::ColorStyle(style));
+}
+
void GraphModifier::useOwnTheme()
{
Q3DTheme *theme = new Q3DTheme();
@@ -727,19 +737,9 @@ void GraphModifier::setGradient()
multiHighlightGradient.setColorAt(0.25, Qt::darkYellow);
multiHighlightGradient.setColorAt(0.0, Qt::darkGray);
- m_graph->setBarColor(Qt::green);
- m_graph->setSingleHighlightColor(Qt::white);
- m_graph->setMultiHighlightColor(Qt::cyan);
-
- m_graph->setBarGradient(barGradient);
- m_graph->setSingleHighlightGradient(singleHighlightGradient);
- m_graph->setMultiHighlightGradient(multiHighlightGradient);
-
- QDataVis::ColorStyle oldStyle = m_graph->colorStyle();
- if (oldStyle == QDataVis::ColorStyleUniform)
- m_graph->setColorStyle(QDataVis::ColorStyleObjectGradient);
- else if (oldStyle == QDataVis::ColorStyleObjectGradient)
- m_graph->setColorStyle(QDataVis::ColorStyleRangeGradient);
- if (oldStyle == QDataVis::ColorStyleRangeGradient)
- m_graph->setColorStyle(QDataVis::ColorStyleUniform);
+ m_graph->theme()->setBaseGradient(barGradient);
+ m_graph->theme()->setSingleHighlightGradient(singleHighlightGradient);
+ m_graph->theme()->setMultiHighlightGradient(multiHighlightGradient);
+
+ m_graph->theme()->setColorStyle(QDataVis::ColorStyleObjectGradient);
}
diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h
index 7db8f1bd..2b323a2f 100644
--- a/tests/barstest/chart.h
+++ b/tests/barstest/chart.h
@@ -77,6 +77,7 @@ public:
void createMassiveArray();
void useOwnTheme();
void changeBaseColor(const QColor &color);
+ void changeColorStyle();
public slots:
void flipViews();
diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp
index 2644cae9..5bfa26a3 100644
--- a/tests/barstest/main.cpp
+++ b/tests/barstest/main.cpp
@@ -131,6 +131,11 @@ int main(int argc, char **argv)
flipViewsButton->setText(QStringLiteral("Flip views"));
flipViewsButton->setEnabled(true);
+
+ QPushButton *changeColorStyleButton = new QPushButton(widget);
+ changeColorStyleButton->setText(QStringLiteral("Change color style"));
+ changeColorStyleButton->setEnabled(true);
+
QPushButton *ownThemeButton = new QPushButton(widget);
ownThemeButton->setText(QStringLiteral("Use own theme"));
ownThemeButton->setEnabled(true);
@@ -276,6 +281,7 @@ int main(int argc, char **argv)
vLayout->addWidget(releaseAxesButton, 0, Qt::AlignTop);
vLayout->addWidget(releaseProxiesButton, 1, Qt::AlignTop);
vLayout->addWidget(flipViewsButton, 0, Qt::AlignTop);
+ vLayout->addWidget(changeColorStyleButton, 0, Qt::AlignTop);
vLayout->addWidget(ownThemeButton, 0, Qt::AlignTop);
vLayout->addWidget(colorDialog, 0, Qt::AlignTop);
vLayout->addWidget(gradientBtoYPB, 1, Qt::AlignTop);
@@ -370,6 +376,8 @@ int main(int argc, char **argv)
QObject::connect(flipViewsButton, &QPushButton::clicked, modifier,
&GraphModifier::flipViews);
+ QObject::connect(changeColorStyleButton, &QPushButton::clicked, modifier,
+ &GraphModifier::changeColorStyle);
QObject::connect(ownThemeButton, &QPushButton::clicked, modifier,
&GraphModifier::useOwnTheme);
QObject::connect(colorDialog, &QColorDialog::currentColorChanged, modifier,