6
7
8
9
10
11
12
13
16#if QT_CONFIG(cssparser)
17#include "private/qcssparser_p.h"
20#if QT_CONFIG(style_stylesheet)
24using namespace Qt::StringLiterals;
31#define SET_ELEMENT_NAME(x)
32 bSelector.elementName = (x)
43#define ADD_PSEUDO(x, y)
46 bSelector.pseudos << pseudo
52#define ADD_ATTRIBUTE_SELECTOR(x, y, z)
55 attr.valueMatchCriterium = (z);
56 bSelector.attributeSelectors << attr
61#define ADD_BASIC_SELECTOR
62 selector.basicSelectors << bSelector;
63 bSelector.ids.clear();
64 bSelector.pseudos.clear();
65 bSelector.attributeSelectors.clear()
71 styleRule.selectors << selector;
72 selector.basicSelectors.clear()
78#define SET_PROPERTY(x, y)
79 decl.d->property = (x);
80 decl.d->propertyId = (y)
91#define ADD_VALUE(x, y)
94 decl.d->values << value
100#define ADD_DECLARATION
101 styleRule.declarations << decl;
103 decl.d->values.clear()
108#define ADD_STYLE_RULE
109 sheet.styleRules << styleRule;
110 styleRule.selectors.clear();
111 styleRule.declarations.clear()
113StyleSheet QStyleSheetStyle::getDefaultStyleSheet()
const
117 BasicSelector bSelector;
122 AttributeSelector attr;
125 bool styleIsPixmapBased = baseStyle()->inherits(
"QMacStyle")
126 || (baseStyle()->inherits(
"QWindowsVistaStyle")
127 && !baseStyle()->inherits(
"QWindows11Style"));
131
132
133
134
136 SET_ELEMENT_NAME(
"QLineEdit"_L1);
140 SET_PROPERTY(
"-qt-background-role"_L1, QtBackgroundRole);
141 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Base);
144 SET_PROPERTY(
"border"_L1, Border);
145 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Native);
148 SET_PROPERTY(
"-qt-style-features"_L1, QtStyleFeatures);
149 ADD_VALUE(QCss::Value::Identifier, QString::fromLatin1(
"background-color"));
156
157
159 SET_ELEMENT_NAME(
"QLineEdit"_L1);
160 ADD_PSEUDO(
"no-frame"_L1, PseudoClass_Frameless);
164 SET_PROPERTY(
"border"_L1, Border);
165 ADD_VALUE(QCss::Value::KnownIdentifier, Value_None);
172
173
175 SET_ELEMENT_NAME(
"QFrame"_L1);
179 SET_PROPERTY(
"border"_L1, Border);
180 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Native);
187
188
189
191 SET_ELEMENT_NAME(
"QLabel"_L1);
195 SET_ELEMENT_NAME(
"QToolBox"_L1);
199 SET_PROPERTY(
"background"_L1, Background);
200 ADD_VALUE(QCss::Value::KnownIdentifier, Value_None);
203 SET_PROPERTY(
"border-image"_L1, BorderImage);
204 ADD_VALUE(QCss::Value::KnownIdentifier, Value_None);
211
212
214 SET_ELEMENT_NAME(
"QGroupBox"_L1);
218 SET_PROPERTY(
"border"_L1, Border);
219 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Native);
227
228
229
231 SET_ELEMENT_NAME(
"QToolTip"_L1);
235 SET_PROPERTY(
"-qt-background-role"_L1, QtBackgroundRole);
236 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Window);
239 SET_PROPERTY(
"border"_L1, Border);
240 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Native);
247
248
249
251 SET_ELEMENT_NAME(
"QPushButton"_L1);
255 SET_ELEMENT_NAME(
"QToolButton"_L1);
259 SET_PROPERTY(
"border-style"_L1, BorderStyles);
260 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Native);
263 if (!styleIsPixmapBased) {
264 SET_PROPERTY(
"-qt-style-features"_L1, QtStyleFeatures);
265 ADD_VALUE(QCss::Value::Identifier, QString::fromLatin1(
"background-color"));
275
276
277
278
281 SET_ELEMENT_NAME(
"QComboBox"_L1);
285 SET_PROPERTY(
"border"_L1, Border);
286 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Native);
289 if (!styleIsPixmapBased) {
290 SET_PROPERTY(
"-qt-style-features"_L1, QtStyleFeatures);
291 ADD_VALUE(QCss::Value::Identifier, QString::fromLatin1(
"background-color"));
292 ADD_VALUE(QCss::Value::Identifier, QString::fromLatin1(
"background-gradient"));
296 SET_PROPERTY(
"-qt-background-role"_L1, QtBackgroundRole);
297 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Base);
304
305
306
307
308
309 if (baseStyle()->inherits(
"QFusionStyle"))
311 SET_ELEMENT_NAME(
"QComboBox"_L1);
312 ADD_ATTRIBUTE_SELECTOR(
"readOnly"_L1,
"true"_L1, AttributeSelector::MatchEqual);
316 SET_PROPERTY(
"-qt-background-role"_L1, QtBackgroundRole);
317 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Button);
324
325
326
327
329 SET_ELEMENT_NAME(
"QAbstractSpinBox"_L1);
333 SET_PROPERTY(
"border"_L1, Border);
334 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Native);
337 SET_PROPERTY(
"-qt-style-features"_L1, QtStyleFeatures);
338 ADD_VALUE(QCss::Value::Identifier, QString::fromLatin1(
"background-color"));
341 SET_PROPERTY(
"-qt-background-role"_L1, QtBackgroundRole);
342 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Base);
349
350
352 SET_ELEMENT_NAME(
"QMenu"_L1);
356 SET_PROPERTY(
"-qt-background-role"_L1, QtBackgroundRole);
357 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Window);
363
364
365 if (!styleIsPixmapBased) {
366 SET_ELEMENT_NAME(
"QMenu"_L1);
367 ADD_PSEUDO(
"item"_L1, PseudoClass_Unknown);
371 SET_PROPERTY(
"-qt-style-features"_L1, QtStyleFeatures);
372 ADD_VALUE(QCss::Value::Identifier, QString::fromLatin1(
"background-color"));
379
380
382 SET_ELEMENT_NAME(
"QHeaderView"_L1);
386 SET_PROPERTY(
"-qt-background-role"_L1, QtBackgroundRole);
387 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Window);
394
395
396
397
399 SET_ELEMENT_NAME(
"QTableCornerButton"_L1);
400 ADD_PSEUDO(
"section"_L1, PseudoClass_Unknown);
404 SET_ELEMENT_NAME(
"QHeaderView"_L1);
405 ADD_PSEUDO(
"section"_L1, PseudoClass_Unknown);
409 SET_PROPERTY(
"-qt-background-role"_L1, QtBackgroundRole);
410 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Button);
413 if (!styleIsPixmapBased) {
414 SET_PROPERTY(
"-qt-style-features"_L1, QtStyleFeatures);
415 ADD_VALUE(QCss::Value::Identifier, QString::fromLatin1(
"background-color"));
419 SET_PROPERTY(
"border"_L1, Border);
420 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Native);
427
428
430 SET_ELEMENT_NAME(
"QProgressBar"_L1);
434 SET_PROPERTY(
"-qt-background-role"_L1, QtBackgroundRole);
435 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Base);
442
443
445 SET_ELEMENT_NAME(
"QScrollBar"_L1);
449 SET_PROPERTY(
"-qt-background-role"_L1, QtBackgroundRole);
450 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Window);
457
458
460 SET_ELEMENT_NAME(
"QDockWidget"_L1);
464 SET_PROPERTY(
"border"_L1, Border);
465 ADD_VALUE(QCss::Value::KnownIdentifier, Value_Native);
471 sheet.origin = StyleSheetOrigin_UserAgent;
472 sheet.buildIndexes();