aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls/qquicktheme.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2015-04-24 00:40:49 +0200
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2015-04-23 23:11:53 +0000
commit2df3b1b930e3d151e14ace3f464b9caeadff0b04 (patch)
treef5071bf92b2f97507a26643fc7906f1fb440efcd /src/imports/controls/qquicktheme.cpp
parent1190d5c95846db8dbb6676c97a30befebb640076 (diff)
Add Theme::disabledColor
Change-Id: I8bfc5a89aa75addd4cb1a5c0d5b58ea8b2bcf67c Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/imports/controls/qquicktheme.cpp')
-rw-r--r--src/imports/controls/qquicktheme.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/imports/controls/qquicktheme.cpp b/src/imports/controls/qquicktheme.cpp
index 476379e3..a816b077 100644
--- a/src/imports/controls/qquicktheme.cpp
+++ b/src/imports/controls/qquicktheme.cpp
@@ -67,6 +67,10 @@ QT_BEGIN_NAMESPACE
*/
/*!
+ \qmlattachedproperty color QtQuickControls2::Theme::disabledColor
+*/
+
+/*!
\qmlattachedproperty color QtQuickControls2::Theme::focusColor
*/
@@ -214,6 +218,7 @@ public:
explicitAccentColor(false),
explicitBackgroundColor(false),
explicitBaseColor(false),
+ explicitDisabledColor(false),
explicitFocusColor(false),
explicitFrameColor(false),
explicitPressColor(false),
@@ -231,6 +236,7 @@ public:
void setAccentColor(const QColor &color, Method method);
void setBackgroundColor(const QColor &color, Method method);
void setBaseColor(const QColor &color, Method method);
+ void setDisabledColor(const QColor &color, Method method);
void setFocusColor(const QColor &color, Method method);
void setFrameColor(const QColor &color, Method method);
void setPressColor(const QColor &color, Method method);
@@ -257,6 +263,7 @@ public:
bool explicitAccentColor;
bool explicitBackgroundColor;
bool explicitBaseColor;
+ bool explicitDisabledColor;
bool explicitFocusColor;
bool explicitFrameColor;
bool explicitPressColor;
@@ -315,6 +322,21 @@ void QQuickThemePrivate::setBaseColor(const QColor &color, Method method)
}
}
+void QQuickThemePrivate::setDisabledColor(const QColor &color, Method method)
+{
+ Q_Q(QQuickTheme);
+ if (!explicitDisabledColor || method != Inherit) {
+ explicitDisabledColor = method == Explicit;
+ if (data.disabledColor() != color) {
+ data.setDisabledColor(color);
+ emit q->disabledColorChanged();
+
+ foreach (QQuickTheme *child, childThemes)
+ child->d_func()->setDisabledColor(color, Inherit);
+ }
+ }
+}
+
void QQuickThemePrivate::setFocusColor(const QColor &color, Method method)
{
Q_Q(QQuickTheme);
@@ -485,6 +507,7 @@ void QQuickThemePrivate::inherit(QQuickTheme *theme)
setAccentColor(theme->accentColor(), Inherit);
setBackgroundColor(theme->backgroundColor(), Inherit);
setBaseColor(theme->baseColor(), QQuickThemePrivate::Inherit);
+ setDisabledColor(theme->disabledColor(), QQuickThemePrivate::Inherit);
setFocusColor(theme->focusColor(), Inherit);
setFrameColor(theme->frameColor(), Inherit);
setPressColor(theme->pressColor(), Inherit);
@@ -625,6 +648,24 @@ void QQuickTheme::resetBaseColor()
d->setBaseColor(d->resolve().baseColor(), QQuickThemePrivate::Implicit);
}
+QColor QQuickTheme::disabledColor() const
+{
+ Q_D(const QQuickTheme);
+ return d->data.disabledColor();
+}
+
+void QQuickTheme::setDisabledColor(const QColor &color)
+{
+ Q_D(QQuickTheme);
+ d->setDisabledColor(color, QQuickThemePrivate::Explicit);
+}
+
+void QQuickTheme::resetDisabledColor()
+{
+ Q_D(QQuickTheme);
+ d->setDisabledColor(d->resolve().disabledColor(), QQuickThemePrivate::Implicit);
+}
+
QColor QQuickTheme::focusColor() const
{
Q_D(const QQuickTheme);