7#include <QtQuick/private/qquickpalettecolorprovider_p.h>
11static constexpr bool is_valid(QPalette::ColorGroup cg)
noexcept
15 case QPalette::Active:
16 case QPalette::Disabled:
17 case QPalette::Inactive:
19 case QPalette::NColorGroups:
20 case QPalette::Current:
26#if defined(Q_CC_INTEL) || defined(Q_CC_CLANG) || (defined(Q_CC_GNU) && Q_CC_GNU >= 900
)
34
35
36
37
38
39
40
41
42
43
44
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
113
114
115
116
117
118
121
122
123
124
125
126
129
130
131
132
133
134
136QQuickPalette::QQuickPalette(QObject *parent)
137 : QQuickColorGroup(parent)
138 , m_currentGroup(defaultCurrentGroup())
142QQuickColorGroup *QQuickPalette::active()
const
144 return colorGroup(QPalette::Active);
147QQuickColorGroup *QQuickPalette::inactive()
const
149 return colorGroup(QPalette::Inactive);
152QQuickColorGroup *QQuickPalette::disabled()
const
154 return colorGroup(QPalette::Disabled);
157void QQuickPalette::resetActive()
159 if (colorProvider().resetColor(QPalette::Active))
163void QQuickPalette::resetInactive()
165 if (colorProvider().resetColor(QPalette::Inactive))
169void QQuickPalette::resetDisabled()
171 if (colorProvider().resetColor(QPalette::Disabled))
176
177
178
179
180
181QPalette::ColorGroup QQuickPalette::currentColorGroup()
const
183 return m_currentGroup;
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208void QQuickPalette::setCurrentGroup(QPalette::ColorGroup currentGroup)
210 if (m_currentGroup != currentGroup) {
211 m_currentGroup = currentGroup;
216void QQuickPalette::fromQPalette(QPalette palette)
218 if (colorProvider().fromQPalette(std::move(palette))) {
223QPalette QQuickPalette::toQPalette()
const
225 return colorProvider().palette();
228const QQuickAbstractPaletteProvider *QQuickPalette::paletteProvider()
const
230 return colorProvider().paletteProvider();
233void QQuickPalette::setPaletteProvider(
const QQuickAbstractPaletteProvider *paletteProvider)
235 colorProvider().setPaletteProvider(paletteProvider);
238void QQuickPalette::reset()
240 if (colorProvider().reset()) {
245void QQuickPalette::inheritPalette(
const QPalette &palette)
247 if (colorProvider().inheritPalette(palette)) {
252void QQuickPalette::setActive(QQuickColorGroup *active)
254 setColorGroup(QPalette::Active, active, &QQuickPalette::activeChanged);
257void QQuickPalette::setInactive(QQuickColorGroup *inactive)
259 setColorGroup(QPalette::Inactive, inactive, &QQuickPalette::inactiveChanged);
262void QQuickPalette::setDisabled(QQuickColorGroup *disabled)
264 setColorGroup(QPalette::Disabled, disabled, &QQuickPalette::disabledChanged);
268void QQuickPalette::setColorGroup(QPalette::ColorGroup groupTag,
269 const QQuickColorGroup::GroupPtr &group,
270 void (QQuickPalette::*notifier)())
272 if (isValidColorGroup(groupTag, group)) {
273 if (colorProvider().copyColorGroup(groupTag, group->colorProvider())) {
274 Q_EMIT (
this->*notifier)();
280QQuickColorGroup::GroupPtr QQuickPalette::colorGroup(QPalette::ColorGroup groupTag)
const
282 if (
auto group = findColorGroup(groupTag)) {
286 auto group = QQuickColorGroup::createWithParent(*
const_cast<QQuickPalette*>(
this));
287 const_cast<QQuickPalette*>(
this)->registerColorGroup(group, groupTag);
291QQuickColorGroup::GroupPtr QQuickPalette::findColorGroup(QPalette::ColorGroup groupTag)
const
293 Q_ASSERT(is_valid(groupTag));
294 return m_colorGroups[groupTag];
297void QQuickPalette::registerColorGroup(QQuickColorGroup *group, QPalette::ColorGroup groupTag)
299 Q_ASSERT(is_valid(groupTag));
300 auto &g = m_colorGroups[groupTag];
302 Q_ASSERT(g != group);
307 group->setGroupTag(groupTag);
309 QQuickColorGroup::connect(group, &QQuickColorGroup::changed,
this, &QQuickPalette::changed);
312bool QQuickPalette::isValidColorGroup(QPalette::ColorGroup groupTag,
313 const QQuickColorGroup::GroupPtr &colorGroup)
const
316 qWarning(
"Color group cannot be null.");
320 if (!colorGroup->parent()) {
321 qWarning(
"Color group should have a parent.");
325 if (colorGroup->parent() && !qobject_cast<QQuickPalette*>(colorGroup->parent())) {
326 qWarning(
"Color group should be a part of QQuickPalette.");
330 if (groupTag == defaultGroupTag()) {
331 qWarning(
"Register %i color group is not allowed."
332 " QQuickPalette is %i color group itself.", groupTag, groupTag);
336 if (findColorGroup(groupTag) == colorGroup) {
337 qWarning(
"The color group is already a part of the current palette.");
346#include "moc_qquickpalette_p.cpp"
static QT_BEGIN_NAMESPACE constexpr bool is_valid(QPalette::ColorGroup cg) noexcept