Warning, file /frameworks/kconfigwidgets/src/kstatefulbrush.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2007 Matthew Woehlke <mw_triad@users.sourceforge.net> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "kstatefulbrush.h" 0008 0009 #include "kcolorschemehelpers_p.h" 0010 0011 #if KCONFIGWIDGETS_BUILD_DEPRECATED_SINCE(5, 84) 0012 #include <QWidget> 0013 #endif 0014 0015 #include <array> 0016 0017 class KStatefulBrushPrivate 0018 { 0019 public: 0020 std::array<QBrush, QPalette::NColorGroups> brushes; 0021 }; 0022 0023 KStatefulBrush::KStatefulBrush() 0024 : d(std::make_unique<KStatefulBrushPrivate>()) 0025 { 0026 } 0027 0028 KStatefulBrush::~KStatefulBrush() = default; 0029 0030 KStatefulBrush::KStatefulBrush(KColorScheme::ColorSet set, KColorScheme::ForegroundRole role, KSharedConfigPtr config) 0031 : KStatefulBrush() 0032 { 0033 d->brushes[QPalette::Active] = KColorScheme(QPalette::Active, set, config).foreground(role); 0034 d->brushes[QPalette::Disabled] = KColorScheme(QPalette::Disabled, set, config).foreground(role); 0035 d->brushes[QPalette::Inactive] = KColorScheme(QPalette::Inactive, set, config).foreground(role); 0036 } 0037 0038 KStatefulBrush::KStatefulBrush(KColorScheme::ColorSet set, KColorScheme::BackgroundRole role, KSharedConfigPtr config) 0039 : KStatefulBrush() 0040 0041 { 0042 d->brushes[QPalette::Active] = KColorScheme(QPalette::Active, set, config).background(role); 0043 d->brushes[QPalette::Disabled] = KColorScheme(QPalette::Disabled, set, config).background(role); 0044 d->brushes[QPalette::Inactive] = KColorScheme(QPalette::Inactive, set, config).background(role); 0045 } 0046 0047 KStatefulBrush::KStatefulBrush(KColorScheme::ColorSet set, KColorScheme::DecorationRole role, KSharedConfigPtr config) 0048 : KStatefulBrush() 0049 { 0050 d->brushes[QPalette::Active] = KColorScheme(QPalette::Active, set, config).decoration(role); 0051 d->brushes[QPalette::Disabled] = KColorScheme(QPalette::Disabled, set, config).decoration(role); 0052 d->brushes[QPalette::Inactive] = KColorScheme(QPalette::Inactive, set, config).decoration(role); 0053 } 0054 0055 KStatefulBrush::KStatefulBrush(const QBrush &brush, KSharedConfigPtr config) 0056 : KStatefulBrush() 0057 { 0058 if (!config) { 0059 config = defaultConfig(); 0060 } 0061 d->brushes[QPalette::Active] = brush; 0062 d->brushes[QPalette::Disabled] = StateEffects(QPalette::Disabled, config).brush(brush); 0063 d->brushes[QPalette::Inactive] = StateEffects(QPalette::Inactive, config).brush(brush); 0064 } 0065 0066 KStatefulBrush::KStatefulBrush(const QBrush &brush, const QBrush &background, KSharedConfigPtr config) 0067 : KStatefulBrush() 0068 { 0069 if (!config) { 0070 config = defaultConfig(); 0071 } 0072 d->brushes[QPalette::Active] = brush; 0073 d->brushes[QPalette::Disabled] = StateEffects(QPalette::Disabled, config).brush(brush, background); 0074 d->brushes[QPalette::Inactive] = StateEffects(QPalette::Inactive, config).brush(brush, background); 0075 } 0076 0077 KStatefulBrush::KStatefulBrush(const KStatefulBrush &other) 0078 : KStatefulBrush() 0079 { 0080 d->brushes[QPalette::Active] = other.d->brushes[QPalette::Active]; 0081 d->brushes[QPalette::Disabled] = other.d->brushes[QPalette::Disabled]; 0082 d->brushes[QPalette::Inactive] = other.d->brushes[QPalette::Inactive]; 0083 } 0084 0085 KStatefulBrush &KStatefulBrush::operator=(const KStatefulBrush &other) 0086 { 0087 d->brushes[QPalette::Active] = other.d->brushes[QPalette::Active]; 0088 d->brushes[QPalette::Disabled] = other.d->brushes[QPalette::Disabled]; 0089 d->brushes[QPalette::Inactive] = other.d->brushes[QPalette::Inactive]; 0090 return *this; 0091 } 0092 0093 QBrush KStatefulBrush::brush(QPalette::ColorGroup state) const 0094 { 0095 if (state >= QPalette::Active && state < QPalette::NColorGroups) { 0096 return d->brushes[state]; 0097 } else { 0098 return d->brushes[QPalette::Active]; 0099 } 0100 } 0101 0102 QBrush KStatefulBrush::brush(const QPalette &pal) const 0103 { 0104 return brush(pal.currentColorGroup()); 0105 } 0106 0107 #if KCONFIGWIDGETS_BUILD_DEPRECATED_SINCE(5, 84) 0108 QBrush KStatefulBrush::brush(const QWidget *widget) const 0109 { 0110 if (widget) { 0111 return brush(widget->palette()); 0112 } else { 0113 return QBrush(); 0114 } 0115 } 0116 #endif