X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fuisupport%2Fqssparser.h;h=c92b4060950b8d22e13e7168bad24fea795a7d58;hb=c639f2b13b485c0d158ee3857742eaf4d1fa4760;hp=c5f86eec74614237d1f053f07489fe1c54911bf2;hpb=526eccc444029c5a0d80694487c3aec6707cbeda;p=quassel.git diff --git a/src/uisupport/qssparser.h b/src/uisupport/qssparser.h index c5f86eec..c92b4060 100644 --- a/src/uisupport/qssparser.h +++ b/src/uisupport/qssparser.h @@ -27,27 +27,12 @@ class QssParser { Q_DECLARE_TR_FUNCTIONS(QssParser) public: - enum Column { - Any, - Timestamp, - Sender, - Contents - }; - - struct ChatLineFormat { - QVector senderColors; - QVector mircColors; - QHash formats; - - }; - QssParser(); - void loadStyleSheet(const QString &sheet); + void processStyleSheet(QString &sheet); inline QPalette palette() const { return _palette; } - ChatLineFormat basicFormat() const; - QHash specialFormats() const; + inline const QHash& formats() const { return _formats; } protected: typedef QList ColorTuple; @@ -60,21 +45,24 @@ class QssParser { 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 _paletteColorRoles; private: QPalette _palette; - ChatLineFormat _basicFormat; - QHash _specialFormats; + QHash _formats; int _maxSenderHash; };