src: Yearly copyright bump
[quassel.git] / src / uisupport / qssparser.h
index c52b3ea..c0f9e5e 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2013 by the Quassel Project                        *
+ *   Copyright (C) 2005-2019 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -18,8 +18,9 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef QSSPARSER_H_
-#define QSSPARSER_H_
+#pragma once
+
+#include <utility>
 
 #include "uistyle.h"
 
@@ -30,37 +31,40 @@ class QssParser
 public:
     QssParser();
 
-    void processStyleSheet(QString &sheet);
+    void processStyleSheet(QStringsheet);
 
     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 QStringstr);
+    ColorTuple parseColorTuple(const QStringstr);
+    QGradientStops parseGradientStops(const QStringstr);
 
     // 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;
@@ -69,9 +73,5 @@ private:
     QPalette _palette;
     QVector<QBrush> _uiStylePalette;
     QHash<quint64, QTextCharFormat> _formats;
-    QHash<quint32, QTextCharFormat> _listItemFormats;
-    int _maxSenderHash;
+    QHash<UiStyle::ItemFormatType, QTextCharFormat> _listItemFormats;
 };
-
-
-#endif