From 929df0fa5039dce6430ca695d95c5094844aa647 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Tue, 22 Dec 2015 22:40:54 +0100 Subject: Universal: add support for user-defined accent colors Change-Id: I23863519269deddb3a6007657fc93e83f33be842 Task-number: QTBUG-50103 Reviewed-by: Mitch Curtis --- .../controls/doc/src/qtlabscontrols-universal.qdoc | 9 +- src/imports/controls/universal/BusyIndicator.qml | 2 +- src/imports/controls/universal/Button.qml | 2 +- src/imports/controls/universal/CheckBox.qml | 4 +- src/imports/controls/universal/ComboBox.qml | 2 +- src/imports/controls/universal/ItemDelegate.qml | 2 +- src/imports/controls/universal/Label.qml | 2 +- src/imports/controls/universal/MenuItem.qml | 2 +- src/imports/controls/universal/ProgressBar.qml | 4 +- src/imports/controls/universal/RadioButton.qml | 2 +- src/imports/controls/universal/RangeSlider.qml | 6 +- src/imports/controls/universal/Slider.qml | 4 +- src/imports/controls/universal/SpinBox.qml | 8 +- src/imports/controls/universal/Switch.qml | 4 +- src/imports/controls/universal/TextArea.qml | 4 +- src/imports/controls/universal/TextField.qml | 4 +- src/imports/controls/universal/ToolButton.qml | 2 +- .../controls/universal/qquickuniversalstyle.cpp | 118 ++++++++++++--------- .../controls/universal/qquickuniversalstyle_p.h | 12 +-- 19 files changed, 108 insertions(+), 85 deletions(-) (limited to 'src') diff --git a/src/imports/controls/doc/src/qtlabscontrols-universal.qdoc b/src/imports/controls/doc/src/qtlabscontrols-universal.qdoc index bc6538bf..3c616d84 100644 --- a/src/imports/controls/doc/src/qtlabscontrols-universal.qdoc +++ b/src/imports/controls/doc/src/qtlabscontrols-universal.qdoc @@ -37,7 +37,7 @@ \section1 Attached Properties \list - \li \l {accent-attached-prop}{\b accent} : enumeration + \li \l {accent-attached-prop}{\b accent} : color \li \l {theme-attached-prop}{\b theme} : enumeration \endlist @@ -126,12 +126,15 @@ \section1 Attached Property Documentation - \styleproperty {Universal.accent} {enumeration} {accent-attached-prop} + \styleproperty {Universal.accent} {color} {accent-attached-prop} \target accent-attached-prop This attached property holds the accent color of the theme. The property can be attached to any window or item. The value is propagated to children. - Available accents: + Even though the accent can be any \l {colorbasictypedocs}{color}, it is + recommended to use one of the pre-defined accents that have been designed + to work well with the rest of the Universal style palette: + \value Universal.Lime Lime (#A4C400) \value Universal.Green Green (#60A917) \value Universal.Emerald Emerald (#008A00) diff --git a/src/imports/controls/universal/BusyIndicator.qml b/src/imports/controls/universal/BusyIndicator.qml index 3e0e1f89..4a62b800 100644 --- a/src/imports/controls/universal/BusyIndicator.qml +++ b/src/imports/controls/universal/BusyIndicator.qml @@ -55,7 +55,7 @@ T.BusyIndicator { readonly property real size: Math.min(control.availableWidth, control.availableHeight) count: size < 60 ? 5 : 6 // "Small" vs. "Large" - color: control.Universal.accentColor + color: control.Universal.accent ProgressRingAnimator { target: ring diff --git a/src/imports/controls/universal/Button.qml b/src/imports/controls/universal/Button.qml index 6ed57700..c18f0a25 100644 --- a/src/imports/controls/universal/Button.qml +++ b/src/imports/controls/universal/Button.qml @@ -78,7 +78,7 @@ T.Button { implicitHeight: 32 color: control.pressed ? control.Universal.baseMediumLowColor : - control.enabled && (control.highlighted || control.checked) ? control.Universal.accentColor : + control.enabled && (control.highlighted || control.checked) ? control.Universal.accent : control.Universal.baseLowColor } //! [background] diff --git a/src/imports/controls/universal/CheckBox.qml b/src/imports/controls/universal/CheckBox.qml index 6bb6bc36..07321a9c 100644 --- a/src/imports/controls/universal/CheckBox.qml +++ b/src/imports/controls/universal/CheckBox.qml @@ -65,10 +65,10 @@ T.CheckBox { color: !control.enabled ? "transparent" : control.pressed && control.checkState !== Qt.PartiallyChecked ? control.Universal.baseMediumColor : - control.checkState === Qt.Checked ? control.Universal.accentColor : "transparent" + control.checkState === Qt.Checked ? control.Universal.accent : "transparent" border.color: !control.enabled ? control.Universal.baseLowColor : control.pressed ? control.Universal.baseMediumColor : - control.checked ? control.Universal.accentColor : control.Universal.baseMediumHighColor + control.checked ? control.Universal.accent : control.Universal.baseMediumHighColor border.width: 2 // CheckBoxBorderThemeThickness Image { diff --git a/src/imports/controls/universal/ComboBox.qml b/src/imports/controls/universal/ComboBox.qml index 38b9a8fa..4e73321e 100644 --- a/src/imports/controls/universal/ComboBox.qml +++ b/src/imports/controls/universal/ComboBox.qml @@ -97,7 +97,7 @@ T.ComboBox { height: parent.height - 4 visible: control.activeFocus && (control.focusReason === Qt.TabFocusReason || control.focusReason === Qt.BacktabFocusReason) - color: control.Universal.accentColor + color: control.Universal.accent opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6 } diff --git a/src/imports/controls/universal/ItemDelegate.qml b/src/imports/controls/universal/ItemDelegate.qml index a5330059..2def5f79 100644 --- a/src/imports/controls/universal/ItemDelegate.qml +++ b/src/imports/controls/universal/ItemDelegate.qml @@ -93,7 +93,7 @@ T.ItemDelegate { width: parent.width height: parent.height visible: control.activeFocus || control.highlighted - color: control.Universal.accentColor + color: control.Universal.accent opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6 } diff --git a/src/imports/controls/universal/Label.qml b/src/imports/controls/universal/Label.qml index ee51c8cd..0484959e 100644 --- a/src/imports/controls/universal/Label.qml +++ b/src/imports/controls/universal/Label.qml @@ -42,6 +42,6 @@ T.Label { id: control color: !control.enabled ? Universal.baseLowColor : Universal.baseHighColor - linkColor: Universal.accentColor + linkColor: Universal.accent renderType: Text.NativeRendering } diff --git a/src/imports/controls/universal/MenuItem.qml b/src/imports/controls/universal/MenuItem.qml index 2bf7ccc6..fa8b3529 100644 --- a/src/imports/controls/universal/MenuItem.qml +++ b/src/imports/controls/universal/MenuItem.qml @@ -94,7 +94,7 @@ T.MenuItem { height: parent.height - 2 visible: control.activeFocus - color: control.Universal.accentColor + color: control.Universal.accent opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6 } } diff --git a/src/imports/controls/universal/ProgressBar.qml b/src/imports/controls/universal/ProgressBar.qml index 14fd9bd7..df837fef 100644 --- a/src/imports/controls/universal/ProgressBar.qml +++ b/src/imports/controls/universal/ProgressBar.qml @@ -55,7 +55,7 @@ T.ProgressBar { height: control.availableHeight scale: control.mirrored ? -1 : 1 - color: control.Universal.accentColor + color: control.Universal.accent ProgressStrip { id: strip @@ -65,7 +65,7 @@ T.ProgressBar { clip: control.indeterminate visible: control.indeterminate - color: control.Universal.accentColor + color: control.Universal.accent ProgressStripAnimator { target: strip diff --git a/src/imports/controls/universal/RadioButton.qml b/src/imports/controls/universal/RadioButton.qml index a5d7d09e..04cd3dcc 100644 --- a/src/imports/controls/universal/RadioButton.qml +++ b/src/imports/controls/universal/RadioButton.qml @@ -80,7 +80,7 @@ T.RadioButton { color: "transparent" border.width: 2 // RadioButtonBorderThemeThickness border.color: !control.enabled ? control.Universal.baseLowColor : - control.pressed ? control.Universal.baseMediumColor : control.Universal.accentColor + control.pressed ? control.Universal.baseMediumColor : control.Universal.accent } Rectangle { diff --git a/src/imports/controls/universal/RangeSlider.qml b/src/imports/controls/universal/RangeSlider.qml index 285a04a7..f01c06ed 100644 --- a/src/imports/controls/universal/RangeSlider.qml +++ b/src/imports/controls/universal/RangeSlider.qml @@ -63,7 +63,7 @@ T.RangeSlider { y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height)) radius: 4 - color: control.first.pressed ? control.Universal.chromeHighColor : control.enabled ? control.Universal.accentColor : control.Universal.chromeDisabledHighColor + color: control.first.pressed ? control.Universal.chromeHighColor : control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor } //! [firstHandle] @@ -78,7 +78,7 @@ T.RangeSlider { y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height)) radius: 4 - color: control.second.pressed ? control.Universal.chromeHighColor : control.enabled ? control.Universal.accentColor : control.Universal.chromeDisabledHighColor + color: control.second.pressed ? control.Universal.chromeHighColor : control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor } //! [secondHandle] @@ -111,7 +111,7 @@ T.RangeSlider { width: parent.horizontal ? control.second.position * parent.width - control.first.position * parent.width : 2 // SliderTrackThemeHeight height: !parent.horizontal ? control.second.position * parent.height - control.first.position * parent.height : 2 // SliderTrackThemeHeight - color: control.enabled ? control.Universal.accentColor : control.Universal.chromeDisabledHighColor + color: control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor } } //! [track] diff --git a/src/imports/controls/universal/Slider.qml b/src/imports/controls/universal/Slider.qml index ec1e0ed1..66357c6e 100644 --- a/src/imports/controls/universal/Slider.qml +++ b/src/imports/controls/universal/Slider.qml @@ -63,7 +63,7 @@ T.Slider { y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height)) radius: 4 - color: control.pressed ? control.Universal.chromeHighColor : control.enabled ? control.Universal.accentColor : control.Universal.chromeDisabledHighColor + color: control.pressed ? control.Universal.chromeHighColor : control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor } //! [handle] @@ -96,7 +96,7 @@ T.Slider { width: parent.horizontal ? control.position * parent.width : 2 // SliderTrackThemeHeight height: !parent.horizontal ? control.position * parent.height : 2 // SliderTrackThemeHeight - color: control.enabled ? control.Universal.accentColor : control.Universal.chromeDisabledHighColor + color: control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor } } //! [track] diff --git a/src/imports/controls/universal/SpinBox.qml b/src/imports/controls/universal/SpinBox.qml index e68015b4..a081cc23 100644 --- a/src/imports/controls/universal/SpinBox.qml +++ b/src/imports/controls/universal/SpinBox.qml @@ -73,7 +73,7 @@ T.SpinBox { font: control.font color: !enabled ? control.Universal.chromeDisabledLowColor : activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.baseHighColor - selectionColor: control.Universal.accentColor + selectionColor: control.Universal.accent selectedTextColor: control.Universal.chromeWhiteColor horizontalAlignment: Qt.AlignHCenter verticalAlignment: TextInput.AlignVCenter @@ -96,7 +96,7 @@ T.SpinBox { width: parent.width - 4 height: parent.height - 8 color: !control.up.pressed ? "transparent" : - control.activeFocus ? control.Universal.accentColor + control.activeFocus ? control.Universal.accent : control.Universal.chromeDisabledLowColor } @@ -121,7 +121,7 @@ T.SpinBox { width: parent.width - 4 height: parent.height - 8 color: !control.down.pressed ? "transparent" : - control.activeFocus ? control.Universal.accentColor + control.activeFocus ? control.Universal.accent : control.Universal.chromeDisabledLowColor } @@ -141,7 +141,7 @@ T.SpinBox { border.width: 2 // TextControlBorderThemeThickness border.color: !control.enabled ? control.Universal.baseLowColor : - control.activeFocus ? control.Universal.accentColor : control.Universal.chromeDisabledLowColor + control.activeFocus ? control.Universal.accent : control.Universal.chromeDisabledLowColor color: control.enabled ? control.Universal.altHighColor : control.Universal.baseLowColor } //! [background] diff --git a/src/imports/controls/universal/Switch.qml b/src/imports/controls/universal/Switch.qml index ef078a1e..ca33e121 100644 --- a/src/imports/controls/universal/Switch.qml +++ b/src/imports/controls/universal/Switch.qml @@ -65,9 +65,9 @@ T.Switch { radius: 10 color: !control.enabled ? "transparent" : control.pressed ? control.Universal.baseMediumColor : - control.checked ? control.Universal.accentColor : "transparent" + control.checked ? control.Universal.accent : "transparent" border.color: !control.enabled ? control.Universal.baseLowColor : - control.checked && !control.pressed ? control.Universal.accentColor : control.Universal.baseMediumColor + control.checked && !control.pressed ? control.Universal.accent : control.Universal.baseMediumColor border.width: 2 Rectangle { diff --git a/src/imports/controls/universal/TextArea.qml b/src/imports/controls/universal/TextArea.qml index ec319b86..72b69cb9 100644 --- a/src/imports/controls/universal/TextArea.qml +++ b/src/imports/controls/universal/TextArea.qml @@ -58,7 +58,7 @@ T.TextArea { color: !enabled ? Universal.chromeDisabledLowColor : activeFocus ? Universal.chromeBlackHighColor : Universal.baseHighColor - selectionColor: Universal.accentColor + selectionColor: Universal.accent selectedTextColor: Universal.chromeWhiteColor renderType: Text.NativeRendering @@ -87,7 +87,7 @@ T.TextArea { border.width: 2 // TextControlBorderThemeThickness border.color: !control.enabled ? control.Universal.baseLowColor : - control.activeFocus ? control.Universal.accentColor : control.Universal.chromeDisabledLowColor + control.activeFocus ? control.Universal.accent : control.Universal.chromeDisabledLowColor color: control.enabled ? control.Universal.altHighColor : control.Universal.baseLowColor } //! [background] diff --git a/src/imports/controls/universal/TextField.qml b/src/imports/controls/universal/TextField.qml index b4e217d2..1f066220 100644 --- a/src/imports/controls/universal/TextField.qml +++ b/src/imports/controls/universal/TextField.qml @@ -58,7 +58,7 @@ T.TextField { color: !enabled ? Universal.chromeDisabledLowColor : activeFocus ? Universal.chromeBlackHighColor : Universal.baseHighColor - selectionColor: Universal.accentColor + selectionColor: Universal.accent selectedTextColor: Universal.chromeWhiteColor verticalAlignment: TextInput.AlignVCenter renderType: Text.NativeRendering @@ -88,7 +88,7 @@ T.TextField { border.width: 2 // TextControlBorderThemeThickness border.color: !control.enabled ? control.Universal.baseLowColor : - control.activeFocus ? control.Universal.accentColor : control.Universal.chromeDisabledLowColor + control.activeFocus ? control.Universal.accent : control.Universal.chromeDisabledLowColor color: control.enabled ? control.Universal.altHighColor : control.Universal.baseLowColor } //! [background] diff --git a/src/imports/controls/universal/ToolButton.qml b/src/imports/controls/universal/ToolButton.qml index 8310be03..451e07c4 100644 --- a/src/imports/controls/universal/ToolButton.qml +++ b/src/imports/controls/universal/ToolButton.qml @@ -72,7 +72,7 @@ T.ToolButton { implicitHeight: 48 // AppBarThemeCompactHeight color: control.pressed ? control.Universal.listMediumColor : - control.enabled && (control.highlighted || control.checked) ? control.Universal.accentColor : "transparent" + control.enabled && (control.highlighted || control.checked) ? control.Universal.accent : "transparent" } //! [background] } diff --git a/src/imports/controls/universal/qquickuniversalstyle.cpp b/src/imports/controls/universal/qquickuniversalstyle.cpp index 7bde3b77..6634763c 100644 --- a/src/imports/controls/universal/qquickuniversalstyle.cpp +++ b/src/imports/controls/universal/qquickuniversalstyle.cpp @@ -42,9 +42,6 @@ QT_BEGIN_NAMESPACE -static QQuickUniversalStyle::Theme DefaultTheme = QQuickUniversalStyle::Light; -static QQuickUniversalStyle::Accent DefaultAccent = QQuickUniversalStyle::Cobalt; - static QColor qquickuniversal_light_color(QQuickUniversalStyle::SystemColor role) { static const QRgb colors[] = { @@ -107,33 +104,36 @@ static QColor qquickuniversal_dark_color(QQuickUniversalStyle::SystemColor role) return QColor::fromRgba(colors[role]); } -static QColor qquickuniversal_accent_color(QQuickUniversalStyle::Accent accent) +static QRgb qquickuniversal_accent_color(QQuickUniversalStyle::Accent accent) { static const QRgb colors[] = { - 0xA4C400, // Lime - 0x60A917, // Green - 0x008A00, // Emerald - 0x00ABA9, // Teal - 0x1BA1E2, // Cyan - 0x3E65FF, // Cobalt - 0x6A00FF, // Indigo - 0xAA00FF, // Violet - 0xF472D0, // Pink - 0xD80073, // Magenta - 0xA20025, // Crimson - 0xE51400, // Red - 0xFA6800, // Orange - 0xF0A30A, // Amber - 0xE3C800, // Yellow - 0x825A2C, // Brown - 0x6D8764, // Olive - 0x647687, // Steel - 0x76608A, // Mauve - 0x87794E // Taupe + 0xFFA4C400, // Lime + 0xFF60A917, // Green + 0xFF008A00, // Emerald + 0xFF00ABA9, // Teal + 0xFF1BA1E2, // Cyan + 0xFF3E65FF, // Cobalt + 0xFF6A00FF, // Indigo + 0xFFAA00FF, // Violet + 0xFFF472D0, // Pink + 0xFFD80073, // Magenta + 0xFFA20025, // Crimson + 0xFFE51400, // Red + 0xFFFA6800, // Orange + 0xFFF0A30A, // Amber + 0xFFE3C800, // Yellow + 0xFF825A2C, // Brown + 0xFF6D8764, // Olive + 0xFF647687, // Steel + 0xFF76608A, // Mauve + 0xFF87794E // Taupe }; return colors[accent]; } +static QQuickUniversalStyle::Theme DefaultTheme = QQuickUniversalStyle::Light; +static QRgb DefaultAccent = qquickuniversal_accent_color(QQuickUniversalStyle::Cobalt); + QQuickUniversalStyle::QQuickUniversalStyle(QObject *parent) : QQuickStyle(parent), m_hasTheme(false), m_hasAccent(false), m_theme(DefaultTheme), m_accent(DefaultAccent) { @@ -189,17 +189,35 @@ void QQuickUniversalStyle::resetTheme() } } -QQuickUniversalStyle::Accent QQuickUniversalStyle::accent() const +QVariant QQuickUniversalStyle::accent() const { - return m_accent; + return QColor::fromRgba(m_accent); } -void QQuickUniversalStyle::setAccent(Accent accent) +void QQuickUniversalStyle::setAccent(const QVariant &var) { - if (accent < Lime || accent > Taupe) { - qWarning() << "QQuickUniversalStyle: unknown accent" << accent; - return; + QRgb accent = 0; + if (var.type() == QVariant::Int) { + int val = var.toInt(); + if (val < Lime || val > Taupe) { + qWarning() << "QQuickUniversalStyle: unknown accent" << val; + return; + } + accent = qquickuniversal_accent_color(static_cast(val)); + } else { + int val = QMetaEnum::fromType().keyToValue(var.toByteArray()); + if (val != -1) { + accent = qquickuniversal_accent_color(static_cast(val)); + } else { + QColor color(var.toString()); + if (!color.isValid()) { + qWarning() << "QQuickUniversalStyle: unknown accent" << var.toString(); + return; + } + accent = color.rgba(); + } } + m_hasAccent = true; if (m_accent != accent) { m_accent = accent; @@ -208,7 +226,7 @@ void QQuickUniversalStyle::setAccent(Accent accent) } } -void QQuickUniversalStyle::inheritAccent(Accent accent) +void QQuickUniversalStyle::inheritAccent(QRgb accent) { if (!m_hasAccent && m_accent != accent) { m_accent = accent; @@ -231,15 +249,10 @@ void QQuickUniversalStyle::resetAccent() if (m_hasAccent) { m_hasAccent = false; QQuickUniversalStyle *universal = qobject_cast(parentStyle()); - inheritAccent(universal ? universal->accent() : DefaultAccent); + inheritAccent(universal ? universal->m_accent : DefaultAccent); } } -QColor QQuickUniversalStyle::accentColor() const -{ - return qquickuniversal_accent_color(m_accent); -} - QColor QQuickUniversalStyle::altHighColor() const { return getColor(AltHigh); @@ -371,22 +384,20 @@ void QQuickUniversalStyle::parentStyleChange(QQuickStyle *newParent, QQuickStyle QQuickUniversalStyle *universal = qobject_cast(newParent); if (universal) { inheritTheme(universal->theme()); - inheritAccent(universal->accent()); + inheritAccent(universal->m_accent); } } template -static Enum readEnumValue(QSettings *settings, const QString &name, Enum fallback) +static Enum readEnumValue(QSettings *settings, const QString &name, bool *ok) { - Enum result = fallback; - if (settings->contains(name)) { + int value = -1; + *ok = settings->contains(name); + if (*ok) { QMetaEnum enumeration = QMetaEnum::fromType(); - bool ok = false; - int value = enumeration.keyToValue(settings->value(name).toByteArray(), &ok); - if (ok) - result = static_cast(value); + value = enumeration.keyToValue(settings->value(name).toByteArray(), ok); } - return result; + return static_cast(value); } void QQuickUniversalStyle::init() @@ -395,8 +406,19 @@ void QQuickUniversalStyle::init() if (!defaultsInitialized) { QSharedPointer settings = QQuickStyle::settings(QStringLiteral("Universal")); if (!settings.isNull()) { - DefaultTheme = m_theme = readEnumValue(settings.data(), QStringLiteral("Theme"), m_theme); - DefaultAccent = m_accent = readEnumValue(settings.data(), QStringLiteral("Accent"), m_accent); + bool ok = false; + Theme theme = readEnumValue(settings.data(), QStringLiteral("Theme"), &ok); + if (ok) + DefaultTheme = m_theme = theme; + + Accent accent = readEnumValue(settings.data(), QStringLiteral("Accent"), &ok); + if (ok) { + DefaultAccent = m_accent = qquickuniversal_accent_color(accent); + } else { + QColor color(settings->value(QStringLiteral("Accent")).toString()); + if (color.isValid()) + DefaultAccent = m_accent = color.rgba(); + } } defaultsInitialized = true; } diff --git a/src/imports/controls/universal/qquickuniversalstyle_p.h b/src/imports/controls/universal/qquickuniversalstyle_p.h index d7a35830..00a04c65 100644 --- a/src/imports/controls/universal/qquickuniversalstyle_p.h +++ b/src/imports/controls/universal/qquickuniversalstyle_p.h @@ -59,9 +59,8 @@ class QQuickUniversalStyle : public QQuickStyle { Q_OBJECT Q_PROPERTY(Theme theme READ theme WRITE setTheme RESET resetTheme NOTIFY themeChanged FINAL) - Q_PROPERTY(Accent accent READ accent WRITE setAccent RESET resetAccent NOTIFY accentChanged FINAL) + Q_PROPERTY(QVariant accent READ accent WRITE setAccent RESET resetAccent NOTIFY accentChanged FINAL) - Q_PROPERTY(QColor accentColor READ accentColor NOTIFY accentChanged FINAL) Q_PROPERTY(QColor altHighColor READ altHighColor NOTIFY paletteChanged FINAL) Q_PROPERTY(QColor altLowColor READ altLowColor NOTIFY paletteChanged FINAL) Q_PROPERTY(QColor altMediumColor READ altMediumColor NOTIFY paletteChanged FINAL) @@ -125,13 +124,12 @@ public: }; Q_ENUM(Accent) - Accent accent() const; - void setAccent(Accent accent); - void inheritAccent(Accent accent); + QVariant accent() const; + void setAccent(const QVariant &accent); + void inheritAccent(QRgb accent); void propagateAccent(); void resetAccent(); - QColor accentColor() const; QColor altHighColor() const; QColor altLowColor() const; QColor altMediumColor() const; @@ -200,7 +198,7 @@ private: bool m_hasTheme; bool m_hasAccent; QQuickUniversalStyle::Theme m_theme; - QQuickUniversalStyle::Accent m_accent; + QRgb m_accent; }; QT_END_NAMESPACE -- cgit v1.2.3