diff options
author | Vitaly Fanaskov <vitaly.fanaskov@qt.io> | 2019-11-22 14:26:12 +0100 |
---|---|---|
committer | Vitaly Fanaskov <vitaly.fanaskov@qt.io> | 2020-01-02 15:46:38 +0100 |
commit | 045250ed4258932d7fbc13cdad163db1cd64dca7 (patch) | |
tree | c80899d987e6133ffe84405472ad43076774b12d /src/widgets | |
parent | deddafe0a6a32aa438cc36c7dcfae8c323274487 (diff) |
Fix QPalette::isBrushSet
The previous implementation did not take into account different color
groups in resolve mask. It led to some issues when resolving a
palette or checking whether a brush is set or not.
Task-number: QTBUG-78544
Change-Id: I9b67b2c444eb62c022643022a874dc400005e6ee
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/kernel/qwidget.cpp | 4 | ||||
-rw-r--r-- | src/widgets/kernel/qwidget_p.h | 4 | ||||
-rw-r--r-- | src/widgets/styles/qstylesheetstyle_p.h | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index ecea94c66a..2160e54b8f 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -1850,7 +1850,7 @@ void QWidgetPrivate::propagatePaletteChange() if (q->isWindow() && !q->testAttribute(Qt::WA_WindowPropagation)) { inheritedPaletteResolveMask = 0; } - int mask = data.pal.resolve() | inheritedPaletteResolveMask; + QPalette::ResolveMask mask = data.pal.resolve() | inheritedPaletteResolveMask; const bool useStyleSheetPropagationInWidgetStyles = QCoreApplication::testAttribute(Qt::AA_UseStyleSheetPropagationInWidgetStyles); @@ -4374,7 +4374,7 @@ void QWidget::setPalette(const QPalette &palette) widget's palette are implicitly imposed on this widget by the user). Note that this font does not take into account the palette set on \a w itself. */ -QPalette QWidgetPrivate::naturalWidgetPalette(uint inheritedMask) const +QPalette QWidgetPrivate::naturalWidgetPalette(QPalette::ResolveMask inheritedMask) const { Q_Q(const QWidget); diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index 6915782cb3..0d0077548c 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -299,7 +299,7 @@ public: void setPalette_helper(const QPalette &); void resolvePalette(); - QPalette naturalWidgetPalette(uint inheritedMask) const; + QPalette naturalWidgetPalette(QPalette::ResolveMask inheritedMask) const; void setMask_sys(const QRegion &); @@ -672,7 +672,7 @@ public: // Other variables. uint directFontResolveMask; uint inheritedFontResolveMask; - uint inheritedPaletteResolveMask; + QPalette::ResolveMask inheritedPaletteResolveMask; short leftmargin; short topmargin; short rightmargin; diff --git a/src/widgets/styles/qstylesheetstyle_p.h b/src/widgets/styles/qstylesheetstyle_p.h index c5266558af..81c532bf6a 100644 --- a/src/widgets/styles/qstylesheetstyle_p.h +++ b/src/widgets/styles/qstylesheetstyle_p.h @@ -194,7 +194,7 @@ public: template <typename T> struct Tampered { T oldWidgetValue; - uint resolveMask; + decltype(std::declval<T>().resolve()) resolveMask; // only call this function on an rvalue *this (it mangles oldWidgetValue) T reverted(T current) |