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 /src/datavisualizationqml2 | |
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 'src/datavisualizationqml2')
-rw-r--r-- | src/datavisualizationqml2/declarativetheme.cpp | 15 | ||||
-rw-r--r-- | src/datavisualizationqml2/declarativetheme_p.h | 11 |
2 files changed, 23 insertions, 3 deletions
diff --git a/src/datavisualizationqml2/declarativetheme.cpp b/src/datavisualizationqml2/declarativetheme.cpp index 6c804397..c494052a 100644 --- a/src/datavisualizationqml2/declarativetheme.cpp +++ b/src/datavisualizationqml2/declarativetheme.cpp @@ -150,6 +150,19 @@ ColorGradient *DeclarativeTheme3D::multiHighlightGradient() const return m_multiHLGradient; } +void DeclarativeTheme3D::classBegin() +{ + // Turn off predefined type forcing for the duration of initial class construction + // so that predefined type customization can be done. + d_ptr->setForcePredefinedType(false); +} + +void DeclarativeTheme3D::componentComplete() +{ + d_ptr->setForcePredefinedType(true); +} + + void DeclarativeTheme3D::setThemeGradient(ColorGradient *gradient, GradientType type) { QLinearGradient newGradient = convertGradient(gradient); @@ -217,7 +230,7 @@ void DeclarativeTheme3D::addColor(DeclarativeColor *color) QList<DeclarativeColor *> DeclarativeTheme3D::colorList() { if (m_colors.isEmpty()) { - // Create dummy ThemeColors from theme's gradients + // Create dummy ThemeColors from theme's colors m_dummyColors = true; QList<QColor> list = Q3DTheme::baseColors(); foreach (QColor item, list) { diff --git a/src/datavisualizationqml2/declarativetheme_p.h b/src/datavisualizationqml2/declarativetheme_p.h index 79c1f5c9..0ec0d1ef 100644 --- a/src/datavisualizationqml2/declarativetheme_p.h +++ b/src/datavisualizationqml2/declarativetheme_p.h @@ -32,13 +32,16 @@ #include "datavisualizationglobal_p.h" #include "declarativecolor_p.h" #include "colorgradient_p.h" -#include "q3dtheme.h" +#include "q3dtheme_p.h" + +#include <QtQml/qqmlparserstatus.h> QT_DATAVISUALIZATION_BEGIN_NAMESPACE -class DeclarativeTheme3D : public Q3DTheme +class DeclarativeTheme3D : public Q3DTheme, public QQmlParserStatus { Q_OBJECT + Q_INTERFACES(QQmlParserStatus) Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren) Q_PROPERTY(QQmlListProperty<DeclarativeColor> baseColors READ baseColors) Q_PROPERTY(QQmlListProperty<ColorGradient> baseGradients READ baseGradients) @@ -73,6 +76,10 @@ public: void setMultiHighlightGradient(ColorGradient *gradient); ColorGradient *multiHighlightGradient() const; + // From QQmlParserStatus + virtual void classBegin(); + virtual void componentComplete(); + signals: void singleHighlightGradientChanged(ColorGradient *gradient); void multiHighlightGradientChanged(ColorGradient *gradient); |