public:
QssParser();
- void loadStyleSheet(const QString &sheet);
+ void processStyleSheet(QString &sheet);
inline QPalette palette() const { return _palette; }
+ inline QVector<QBrush> uiStylePalette() const { return _uiStylePalette; }
+ inline const QHash<quint64, QTextCharFormat>& formats() const { return _formats; }
+ inline const QHash<quint32, QTextCharFormat>& listItemFormats() const { return _listItemFormats; }
protected:
typedef QList<qreal> ColorTuple;
- void parseChatLineData(const QString &decl, const QString &contents);
- void parsePaletteData(const QString &decl, const QString &contents);
+ void parseChatLineBlock(const QString &decl, const QString &contents);
+ void parsePaletteBlock(const QString &decl, const QString &contents);
+ void parseListItemBlock(const QString &decl, const QString &contents);
quint64 parseFormatType(const QString &decl);
+ quint32 parseItemFormatType(const QString &decl);
QTextCharFormat parseFormat(const QString &qss);
- bool parsePalette(QPalette &, const QString &qss);
- // Parse basic data types
- QBrush parseBrushValue(const QString &str);
- QColor parseColorValue(const QString &str);
- QFont parseFontValue(const QString &str);
-
- // Parse subelements
+ // Parse color/brush-related properties
+ QBrush parseBrush(const QString &str, bool *ok = 0);
+ QColor parseColor(const QString &str);
ColorTuple parseColorTuple(const QString &str);
QGradientStops parseGradientStops(const QString &str);
+ // Parse font-related properties
+ void parseFont(const QString &str, QTextCharFormat *format);
+ void parseFontStyle(const QString &str, QTextCharFormat *format);
+ void parseFontWeight(const QString &str, QTextCharFormat *format);
+ void parseFontSize(const QString &str, QTextCharFormat *format);
+ void parseFontFamily(const QString &str, QTextCharFormat *format);
+
QHash<QString, QPalette::ColorRole> _paletteColorRoles;
+ QHash<QString, UiStyle::ColorRole> _uiStyleColorRoles;
private:
QPalette _palette;
+ QVector<QBrush> _uiStylePalette;
+ QHash<quint64, QTextCharFormat> _formats;
+ QHash<quint32, QTextCharFormat> _listItemFormats;
int _maxSenderHash;
};