diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-01-13 10:07:04 +0200 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-01-13 10:12:49 +0200 |
commit | d85201ec4aa738232e4ef085b78114c744cbcaa1 (patch) | |
tree | 4c64d96739892b7a5f5b2b19b5179634fac9b9be /src | |
parent | 99d7cbbb8887382ea17dcbeb90a8d768bb9ebdb5 (diff) |
Base color/gradient disconnection
Task-number: QTRD-2758
Change-Id: I3dabbef0d37ad6e8cb7835ef5ef54ba29e23b272
Change-Id: I3dabbef0d37ad6e8cb7835ef5ef54ba29e23b272
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/datavisualizationqml2/declarativetheme.cpp | 18 | ||||
-rw-r--r-- | src/datavisualizationqml2/declarativetheme_p.h | 1 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/datavisualizationqml2/declarativetheme.cpp b/src/datavisualizationqml2/declarativetheme.cpp index c494052a..850b2200 100644 --- a/src/datavisualizationqml2/declarativetheme.cpp +++ b/src/datavisualizationqml2/declarativetheme.cpp @@ -29,6 +29,7 @@ DeclarativeTheme3D::DeclarativeTheme3D(QObject *parent) m_dummyGradients(false), m_dummyColors(false) { + connect(this, &Q3DTheme::typeChanged, this, &DeclarativeTheme3D::handleTypeChange); } DeclarativeTheme3D::~DeclarativeTheme3D() @@ -48,6 +49,23 @@ void DeclarativeTheme3D::appendSeriesChildren(QQmlListProperty<QObject> *list, Q // Nothing to do, seriesChildren is there only to enable scoping gradient items in Theme3D item. } +void DeclarativeTheme3D::handleTypeChange(Theme themeType) +{ + Q_UNUSED(themeType) + + // Theme changed, disconnect base color/gradient connections + if (!m_colors.isEmpty()) { + foreach (DeclarativeColor *item, m_colors) + disconnect(item, 0, this, 0); + m_colors.clear(); + } + if (!m_gradients.isEmpty()) { + foreach (ColorGradient *item, m_gradients) + disconnect(item, 0, this, 0); + m_gradients.clear(); + } +} + void DeclarativeTheme3D::handleBaseColorUpdate() { int colorCount = m_colors.size(); diff --git a/src/datavisualizationqml2/declarativetheme_p.h b/src/datavisualizationqml2/declarativetheme_p.h index 0ec0d1ef..031ab4bb 100644 --- a/src/datavisualizationqml2/declarativetheme_p.h +++ b/src/datavisualizationqml2/declarativetheme_p.h @@ -85,6 +85,7 @@ signals: void multiHighlightGradientChanged(ColorGradient *gradient); protected: + void handleTypeChange(Theme themeType); void handleBaseColorUpdate(); void handleBaseGradientUpdate(); void handleSingleHLGradientUpdate(); |