summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-01-13 10:07:04 +0200
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-01-13 10:12:49 +0200
commitd85201ec4aa738232e4ef085b78114c744cbcaa1 (patch)
tree4c64d96739892b7a5f5b2b19b5179634fac9b9be
parent99d7cbbb8887382ea17dcbeb90a8d768bb9ebdb5 (diff)
Base color/gradient disconnection
Task-number: QTRD-2758 Change-Id: I3dabbef0d37ad6e8cb7835ef5ef54ba29e23b272 Change-Id: I3dabbef0d37ad6e8cb7835ef5ef54ba29e23b272 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
-rw-r--r--src/datavisualizationqml2/declarativetheme.cpp18
-rw-r--r--src/datavisualizationqml2/declarativetheme_p.h1
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();