Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qcssparser.cpp File Reference

(ddf69669d39919b20a2710211911587353fa3dce)

#include "qcssparser_p.h"
#include <QtCore/qmap.h>
#include <qdebug.h>
#include <qicon.h>
#include <qcolor.h>
#include <qfont.h>
#include <qfileinfo.h>
#include <qfontmetrics.h>
#include <qbrush.h>
#include <qimagereader.h>
#include <qtextformat.h>
#include <QtCore/q20algorithm.h>
#include "qcssscanner.cpp"
Include dependency graph for qcssparser.cpp:

Go to the source code of this file.

Classes

struct  QCssKnownValue
struct  QCssKnownValue::ByName

Macros

#define NOT_OLD_GCCs(...)
#define CHECK_ARRAY_IS_SORTED(array, Num)

Functions

static bool operator< (const QString &name, const QCssKnownValue &prop)
static bool operator< (const QCssKnownValue &prop, const QString &name)
static quint64 findKnownValue (const QString &name, const QCssKnownValue *start, int numValues)
static bool isInheritable (Property propertyId)
static int lengthValueFromData (const LengthData &data, const QFont &f)
static Qt::Alignment parseAlignment (const QCss::Value *values, int count)
static ColorData parseColorValue (QCss::Value v)
static QColor colorFromData (const ColorData &c, const QPalette &pal)
static BrushData parseBrushValue (const QCss::Value &v, const QPalette &pal)
static QBrush brushFromData (const BrushData &c, const QPalette &pal)
static BorderStyle parseStyleValue (const QCss::Value &v)
static void parseShorthandBackgroundProperty (const QList< QCss::Value > &values, BrushData *brush, QString *image, Repeat *repeat, Qt::Alignment *alignment, const QPalette &pal)
static bool setFontSizeFromValue (QCss::Value value, QFont *font, int *fontSizeAdjustment)
static bool setFontStyleFromValue (const QCss::Value &value, QFont *font)
static bool setFontKerningFromValue (const QCss::Value &value, QFont *font)
static bool setFontWeightFromValue (const QCss::Value &value, QFont *font)
static bool setFontFamilyFromValues (const QList< QCss::Value > &values, QFont *font, int start=0)
static void setTextDecorationFromValues (const QList< QCss::Value > &values, QFont *font)
static void setLetterSpacingFromValue (const QCss::Value &value, QFont *font)
static void setWordSpacingFromValue (const QCss::Value &value, QFont *font)
static void parseShorthandFontProperty (const QList< QCss::Value > &values, QFont *font, int *fontSizeAdjustment)
static void setFontVariantFromValue (const QCss::Value &value, QFont *font)
static void setTextTransformFromValue (const QCss::Value &value, QFont *font)
static bool intValueHelper (const QCss::Value &v, int *i, const char *unit)
static bool isHexDigit (const char c)
static void removeOptionalQuotes (QString *str)

Variables

static constexpr QCssKnownValue properties []
static constexpr QCssKnownValue values []
static constexpr uchar indexOfId []
static constexpr QCssKnownValue pseudos []
static constexpr QCssKnownValue origins []
static constexpr QCssKnownValue repeats []
static constexpr QCssKnownValue tileModes []
static constexpr QCssKnownValue positions []
static constexpr QCssKnownValue attachments []
static constexpr QCssKnownValue styleFeatures []

Macro Definition Documentation

◆ CHECK_ARRAY_IS_SORTED

#define CHECK_ARRAY_IS_SORTED ( array,
Num )
Value:
static_assert(std::size(array) == Num); \
NOT_OLD_GCCs( \
static_assert(q20::is_sorted(std::begin(array), std::end(array), \
) /* NOT_OLD_GCCs */ \
/* end */
constexpr bool is_sorted(ForwardIterator first, ForwardIterator last, BinaryPredicate p={})
GLenum array

Definition at line 52 of file qcssparser.cpp.

◆ NOT_OLD_GCCs

#define NOT_OLD_GCCs ( ...)
Value:
__VA_ARGS__

Definition at line 48 of file qcssparser.cpp.

Function Documentation

◆ brushFromData()

QBrush brushFromData ( const BrushData & c,
const QPalette & pal )
static

Definition at line 969 of file qcssparser.cpp.

References QCss::BrushData::Role.

◆ colorFromData()

QColor colorFromData ( const ColorData & c,
const QPalette & pal )
static

Definition at line 846 of file qcssparser.cpp.

References QCss::ColorData::Color, and QCss::ColorData::Role.

◆ findKnownValue()

quint64 findKnownValue ( const QString & name,
const QCssKnownValue * start,
int numValues )
static

Definition at line 397 of file qcssparser.cpp.

References operator<().

Here is the call graph for this function:

◆ intValueHelper()

bool intValueHelper ( const QCss::Value & v,
int * i,
const char * unit )
static

Definition at line 1637 of file qcssparser.cpp.

References QCss::Value::Length, and QCss::Value::type.

◆ isHexDigit()

bool isHexDigit ( const char c)
inlinestatic

Definition at line 2319 of file qcssparser.cpp.

◆ isInheritable()

◆ lengthValueFromData()

int lengthValueFromData ( const LengthData & data,
const QFont & f )
static

Definition at line 461 of file qcssparser.cpp.

References QCss::LengthData::Em, and QCss::LengthData::Ex.

◆ operator<() [1/2]

bool operator< ( const QCssKnownValue & prop,
const QString & name )
static

Definition at line 389 of file qcssparser.cpp.

◆ operator<() [2/2]

bool operator< ( const QString & name,
const QCssKnownValue & prop )
static

Definition at line 384 of file qcssparser.cpp.

Referenced by findKnownValue().

Here is the caller graph for this function:

◆ parseAlignment()

Qt::Alignment parseAlignment ( const QCss::Value * values,
int count )
static

Definition at line 730 of file qcssparser.cpp.

References QCss::Value::KnownIdentifier, and QCss::Value::type.

◆ parseBrushValue()

BrushData parseBrushValue ( const QCss::Value & v,
const QPalette & pal )
static

Definition at line 856 of file qcssparser.cpp.

References QCss::BrushData::BrushData(), QCss::ColorData::Color, QCss::BrushData::DependsOnThePalette, QCss::Value::Function, parseColorValue(), QCss::ColorData::Role, and QCss::Value::type.

Here is the call graph for this function:

◆ parseColorValue()

ColorData parseColorValue ( QCss::Value v)
static

Definition at line 753 of file qcssparser.cpp.

References QCss::ColorData::ColorData(), QCss::Value::Color, QCss::Value::Function, QCss::Value::Identifier, QCss::Value::Number, QCss::Value::Percentage, QCss::Value::String, and QCss::Value::type.

Referenced by parseBrushValue().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parseShorthandBackgroundProperty()

void parseShorthandBackgroundProperty ( const QList< QCss::Value > & values,
BrushData * brush,
QString * image,
Repeat * repeat,
Qt::Alignment * alignment,
const QPalette & pal )
static

Definition at line 1065 of file qcssparser.cpp.

References QCss::BrushData::BrushData(), QCss::Value::KnownIdentifier, QCss::Repeat_Unknown, QCss::Repeat_XY, QCss::Value::type, QCss::Value::Uri, QCss::Value_None, and QCss::Value_Transparent.

Here is the call graph for this function:

◆ parseShorthandFontProperty()

void parseShorthandFontProperty ( const QList< QCss::Value > & values,
QFont * font,
int * fontSizeAdjustment )
static

Definition at line 1338 of file qcssparser.cpp.

◆ parseStyleValue()

◆ removeOptionalQuotes()

void removeOptionalQuotes ( QString * str)
inlinestatic

Definition at line 2498 of file qcssparser.cpp.

◆ setFontFamilyFromValues()

bool setFontFamilyFromValues ( const QList< QCss::Value > & values,
QFont * font,
int start = 0 )
static

parse the font family from the values (starting from index start) and set it the font The function returns true if a family was extracted.

Definition at line 1259 of file qcssparser.cpp.

References QCss::Value::TermOperatorComma, and QCss::Value::type.

◆ setFontKerningFromValue()

bool setFontKerningFromValue ( const QCss::Value & value,
QFont * font )
static

◆ setFontSizeFromValue()

bool setFontSizeFromValue ( QCss::Value value,
QFont * font,
int * fontSizeAdjustment )
static

◆ setFontStyleFromValue()

bool setFontStyleFromValue ( const QCss::Value & value,
QFont * font )
static

Definition at line 1211 of file qcssparser.cpp.

References QCss::Value::KnownIdentifier, and QCss::Value::type.

◆ setFontVariantFromValue()

void setFontVariantFromValue ( const QCss::Value & value,
QFont * font )
static

Definition at line 1363 of file qcssparser.cpp.

References QCss::Value::KnownIdentifier, and QCss::Value::type.

◆ setFontWeightFromValue()

bool setFontWeightFromValue ( const QCss::Value & value,
QFont * font )
static

◆ setLetterSpacingFromValue()

void setLetterSpacingFromValue ( const QCss::Value & value,
QFont * font )
static

Definition at line 1307 of file qcssparser.cpp.

◆ setTextDecorationFromValues()

void setTextDecorationFromValues ( const QList< QCss::Value > & values,
QFont * font )
static

◆ setTextTransformFromValue()

void setTextTransformFromValue ( const QCss::Value & value,
QFont * font )
static

Definition at line 1374 of file qcssparser.cpp.

References QCss::Value::KnownIdentifier, and QCss::Value::type.

◆ setWordSpacingFromValue()

void setWordSpacingFromValue ( const QCss::Value & value,
QFont * font )
static

Definition at line 1325 of file qcssparser.cpp.

Variable Documentation

◆ attachments

QCssKnownValue attachments[]
staticconstexpr
Initial value:
= {
{ "fixed", Attachment_Fixed },
{ "scroll", Attachment_Scroll }
}
@ Attachment_Fixed
@ Attachment_Scroll

Definition at line 371 of file qcssparser.cpp.

◆ indexOfId

constexpr uchar indexOfId
staticconstexpr
Initial value:
= {
0, 46, 54, 47, 55, 56, 63, 38, 29, 83, 84, 28, 48, 7, 76, 52,
32, 68, 69, 30, 58, 74, 8, 12, 43, 65, 21, 15, 19, 20, 22, 24, 57, 27, 51, 80, 40, 4, 3, 45, 75, 18, 13,
66, 16, 35, 77, 36, 78, 64, 79, 37, 67, 23, 59, 42, 6, 60, 70, 82, 10, 31, 41, 14, 39, 71, 9, 11, 5, 81,
62, 25, 26, 33, 34, 2, 44, 72, 73, 53, 0, 17, 1, 61, 50, 49 }

Definition at line 275 of file qcssparser.cpp.

◆ origins

constexpr QCssKnownValue origins
staticconstexpr
Initial value:
= {
{ "border", Origin_Border },
{ "content", Origin_Content },
{ "margin", Origin_Margin },
{ "padding", Origin_Padding }
}
@ Origin_Padding
@ Origin_Content
@ Origin_Margin
@ Origin_Border

Definition at line 340 of file qcssparser.cpp.

◆ positions

constexpr QCssKnownValue positions
staticconstexpr
Initial value:
= {
{ "absolute", PositionMode_Absolute },
{ "fixed", PositionMode_Fixed },
{ "relative", PositionMode_Relative },
{ "static", PositionMode_Static }
}
@ PositionMode_Absolute
@ PositionMode_Relative
@ PositionMode_Static
@ PositionMode_Fixed

Definition at line 363 of file qcssparser.cpp.

◆ properties

constexpr QCssKnownValue properties
staticconstexpr

Definition at line 61 of file qcssparser.cpp.

◆ pseudos

constexpr QCssKnownValue pseudos
staticconstexpr

Definition at line 292 of file qcssparser.cpp.

◆ repeats

constexpr QCssKnownValue repeats
staticconstexpr
Initial value:
= {
{ "no-repeat", Repeat_None },
{ "repeat-x", Repeat_X },
{ "repeat-xy", Repeat_XY },
{ "repeat-y", Repeat_Y }
}
@ Repeat_XY
@ Repeat_None

Definition at line 348 of file qcssparser.cpp.

◆ styleFeatures

constexpr QCssKnownValue styleFeatures
staticconstexpr
Initial value:
= {
{ "background-color", StyleFeature_BackgroundColor },
{ "background-gradient", StyleFeature_BackgroundGradient },
{ "none", StyleFeature_None }
}
@ StyleFeature_BackgroundGradient
@ StyleFeature_BackgroundColor
@ StyleFeature_None

Definition at line 377 of file qcssparser.cpp.

◆ tileModes

constexpr QCssKnownValue tileModes
staticconstexpr
Initial value:
= {
{ "repeat", TileMode_Repeat },
{ "round", TileMode_Round },
{ "stretch", TileMode_Stretch },
}
@ TileMode_Repeat
@ TileMode_Round
@ TileMode_Stretch

Definition at line 356 of file qcssparser.cpp.

◆ values

QCssKnownValue values[]
staticconstexpr

Definition at line 185 of file qcssparser.cpp.