aboutsummaryrefslogtreecommitdiffstats
path: root/src
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
parent1190d5c95846db8dbb6676c97a30befebb640076 (diff)
Add Theme::disabledColor
Change-Id: I8bfc5a89aa75addd4cb1a5c0d5b58ea8b2bcf67c Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/imports/controls/qquicktheme.cpp41
-rw-r--r--src/imports/controls/qquicktheme_p.h6
-rw-r--r--src/imports/controls/qquickthemedata.cpp1
-rw-r--r--src/imports/controls/qquickthemedata_p.h4
-rw-r--r--src/imports/controls/theme.json1
5 files changed, 53 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);
diff --git a/src/imports/controls/qquicktheme_p.h b/src/imports/controls/qquicktheme_p.h
index f443c311..f3e3d38c 100644
--- a/src/imports/controls/qquicktheme_p.h
+++ b/src/imports/controls/qquicktheme_p.h
@@ -63,6 +63,7 @@ class QQuickTheme : public QObject
Q_PROPERTY(QColor accentColor READ accentColor WRITE setAccentColor RESET resetAccentColor NOTIFY accentColorChanged FINAL)
Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor RESET resetBackgroundColor NOTIFY backgroundColorChanged FINAL)
Q_PROPERTY(QColor baseColor READ baseColor WRITE setBaseColor RESET resetBaseColor NOTIFY baseColorChanged FINAL)
+ Q_PROPERTY(QColor disabledColor READ disabledColor WRITE setDisabledColor RESET resetDisabledColor NOTIFY disabledColorChanged FINAL)
Q_PROPERTY(QColor focusColor READ focusColor WRITE setFocusColor RESET resetFocusColor NOTIFY focusColorChanged FINAL)
Q_PROPERTY(QColor frameColor READ frameColor WRITE setFrameColor RESET resetFrameColor NOTIFY frameColorChanged FINAL)
Q_PROPERTY(QColor pressColor READ pressColor WRITE setPressColor RESET resetPressColor NOTIFY pressColorChanged FINAL)
@@ -88,6 +89,10 @@ public:
void setAccentColor(const QColor &color);
void resetAccentColor();
+ QColor disabledColor() const;
+ void setDisabledColor(const QColor &color);
+ void resetDisabledColor();
+
QColor backgroundColor() const;
void setBackgroundColor(const QColor &color);
void resetBackgroundColor();
@@ -144,6 +149,7 @@ Q_SIGNALS:
void accentColorChanged();
void backgroundColorChanged();
void baseColorChanged();
+ void disabledColorChanged();
void focusColorChanged();
void frameColorChanged();
void pressColorChanged();
diff --git a/src/imports/controls/qquickthemedata.cpp b/src/imports/controls/qquickthemedata.cpp
index 73070231..637a5643 100644
--- a/src/imports/controls/qquickthemedata.cpp
+++ b/src/imports/controls/qquickthemedata.cpp
@@ -84,6 +84,7 @@ bool QQuickThemeData::load(const QString &filePath)
d->accentColor = readColorValue(theme.value(QStringLiteral("accentColor")), QColor("#7bc258"));
d->backgroundColor = readColorValue(theme.value(QStringLiteral("backgroundColor")), QColor("#ffffff"));
d->baseColor = readColorValue(theme.value(QStringLiteral("baseColor")), QColor("#eeeeee"));
+ d->disabledColor = readColorValue(theme.value(QStringLiteral("disabledColor")), QColor("#c2c2c2"));
d->focusColor = readColorValue(theme.value(QStringLiteral("focusColor")), QColor("#45a7d7"));
d->frameColor = readColorValue(theme.value(QStringLiteral("frameColor")), QColor("#bdbebf"));
d->pressColor = readColorValue(theme.value(QStringLiteral("pressColor")), QColor("#33333333"));
diff --git a/src/imports/controls/qquickthemedata_p.h b/src/imports/controls/qquickthemedata_p.h
index 5b590735..c86ad5ee 100644
--- a/src/imports/controls/qquickthemedata_p.h
+++ b/src/imports/controls/qquickthemedata_p.h
@@ -70,6 +70,9 @@ public:
QColor baseColor() const { return d->baseColor; }
void setBaseColor(const QColor &color) { d->baseColor = color; }
+ QColor disabledColor() const { return d->disabledColor; }
+ void setDisabledColor(const QColor &color) { d->disabledColor = color; }
+
QColor focusColor() const { return d->focusColor; }
void setFocusColor(const QColor &color) { d->focusColor = color; }
@@ -108,6 +111,7 @@ private:
QColor accentColor;
QColor baseColor;
QColor backgroundColor;
+ QColor disabledColor;
QColor focusColor;
QColor frameColor;
QColor pressColor;
diff --git a/src/imports/controls/theme.json b/src/imports/controls/theme.json
index a1a79969..43b029f2 100644
--- a/src/imports/controls/theme.json
+++ b/src/imports/controls/theme.json
@@ -2,6 +2,7 @@
"accentColor": "#7bc258",
"backgroundColor": "#ffffff",
"baseColor": "#eeeeee",
+ "disabledColor": "#c2c2c2",
"focusColor": "#45a7d7",
"frameColor": "#bdbebf",
"pressColor": "#33333333",