diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-07 10:46:26 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-07 13:18:41 +0200 |
commit | 8566d712a87d9e3a78be15b6bd3498c2cf8afe57 (patch) | |
tree | 6ae292f0fd8c870d997db6d208a531da5f9320f0 /tests/barstest | |
parent | aa842c39480aa5b95f704c97b8b3acc821144883 (diff) |
Fix setting theme type
Now reset the theme properties immediately to new theme type, instead
of waiting for the theme activation. Also make changing theme type
later work consistently.
Task-number: QTRD-2750
Change-Id: I970d69587623119df33ad2a825fbc12367804eae
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'tests/barstest')
-rw-r--r-- | tests/barstest/chart.cpp | 18 | ||||
-rw-r--r-- | tests/barstest/chart.h | 1 |
2 files changed, 7 insertions, 12 deletions
diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 5c36607e..73f0074c 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -64,7 +64,8 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_negativeValuesOn(false), m_useNullInputHandler(false), m_defaultInputHandler(0), - m_ownTheme(0) + m_ownTheme(0), + m_builtinTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)) { // Generate generic labels QStringList genericColumnLabels; @@ -117,7 +118,7 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_graph->addAxis(m_genericRowAxis); m_graph->addAxis(m_genericColumnAxis); - m_graph->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)); + m_graph->setActiveTheme(m_builtinTheme); m_graph->setShadowQuality(QDataVis::ShadowQualitySoftMedium); m_temperatureData->setItemLabelFormat(QStringLiteral("1: @valueTitle for @colLabel @rowLabel: @valueLabel")); @@ -578,11 +579,9 @@ void GraphModifier::changeTheme() static int theme = Q3DTheme::ThemeQt; Q3DTheme *currentTheme = m_graph->activeTheme(); - if (currentTheme != m_ownTheme) { - m_graph->releaseTheme(currentTheme); - delete currentTheme; - } - m_graph->setActiveTheme(new Q3DTheme((Q3DTheme::Theme)theme)); + m_builtinTheme->setType(Q3DTheme::Theme(theme)); + if (currentTheme == m_ownTheme) + m_graph->setActiveTheme(m_builtinTheme); switch (theme) { case Q3DTheme::ThemeQt: @@ -851,11 +850,6 @@ void GraphModifier::useOwnTheme() m_ownTheme->setWindowColor(QColor(QRgb(0xffffff))); } - Q3DTheme *currentTheme = m_graph->activeTheme(); - if (currentTheme != m_ownTheme) { - m_graph->releaseTheme(currentTheme); - delete currentTheme; - } m_graph->setActiveTheme(m_ownTheme); m_colorDialog->open(); diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index 3948ca8f..77b10093 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -130,6 +130,7 @@ private: bool m_useNullInputHandler; QAbstract3DInputHandler *m_defaultInputHandler; Q3DTheme *m_ownTheme; + Q3DTheme *m_builtinTheme; }; #endif |