/***************************************************************************
- * Copyright (C) 2005-2012 by the Quassel Project *
+ * Copyright (C) 2005-2022 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef QSSPARSER_H_
-#define QSSPARSER_H_
+#pragma once
+
+#include <utility>
#include "uistyle.h"
public:
QssParser();
- void processStyleSheet(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; }
+ inline const QHash<quint64, QTextCharFormat>& formats() const { return _formats; }
+ inline const QHash<UiStyle::ItemFormatType, QTextCharFormat>& listItemFormats() const { return _listItemFormats; }
protected:
- typedef QList<qreal> ColorTuple;
+ using ColorTuple = QList<qreal>;
+
+ void parseChatLineBlock(const QString& decl, const QString& contents);
+ void parsePaletteBlock(const QString& decl, const QString& contents);
+ void parseListItemBlock(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);
+ std::pair<UiStyle::FormatType, UiStyle::MessageLabel> parseFormatType(const QString& decl);
+ UiStyle::ItemFormatType parseItemFormatType(const QString& decl);
- quint64 parseFormatType(const QString &decl);
- quint32 parseItemFormatType(const QString &decl);
+ QTextCharFormat parseFormat(const QString& qss);
- QTextCharFormat parseFormat(const QString &qss);
+ // Parse boolean properties
+ bool parseBoolean(const QString& str, bool* ok = nullptr) const;
// 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);
+ QBrush parseBrush(const QString& str, bool* ok = nullptr);
+ 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);
+ 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;
QPalette _palette;
QVector<QBrush> _uiStylePalette;
QHash<quint64, QTextCharFormat> _formats;
- QHash<quint32, QTextCharFormat> _listItemFormats;
- int _maxSenderHash;
+ QHash<UiStyle::ItemFormatType, QTextCharFormat> _listItemFormats;
};
-
-
-#endif