cleanup: Clean up BufferViewConfig
[quassel.git] / src / qtui / qtuistyle.h
index 2aaceb6..88dd4b2 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2016 by the Quassel Project                        *
+ *   Copyright (C) 2005-2018 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
 #ifndef QTUISTYLE_H_
 #define QTUISTYLE_H_
 
-#include "uistyle.h"
 #include "qtuisettings.h"
+#include "uistyle.h"
 
 class QtUiStyle : public UiStyle
 {
     Q_OBJECT
 
 public:
-    QtUiStyle(QObject *parent = 0);
-    virtual ~QtUiStyle();
+    QtUiStyle(QObject* parent = nullptr);
 
     virtual inline qreal firstColumnSeparator() const { return 6; }
     virtual inline qreal secondColumnSeparator() const { return 6; }
@@ -60,13 +59,18 @@ private slots:
      */
     void updateTimestampFormatString();
 
+    /**
+     * Updates knowledge of how to display sender prefix modes
+     */
+    void updateSenderPrefixDisplay();
+
     /**
      * Updates knowledge of whether or not to show sender brackets
      */
     void updateShowSenderBrackets();
 
 private:
-    QString fontDescription(const QFont &font) const;
+    QString fontDescription(const QFontfont) const;
 
     /**
      * Generate a Qt stylesheet color string from a given setting
@@ -75,23 +79,44 @@ private:
      * @param[in] settings     UiSettings manager to search
      * @param[in] defaultColor Fallback color if not found; when unspecified default is black
      */
-    QString color(const QString &key, UiSettings &settings, const QColor &defaultColor = QColor()) const;
+    QString color(const QString& key, UiSettings& settings, const QColor& defaultColor = QColor()) const;
+
+    QString msgTypeQss(const QString& msgType, const QString& key, UiSettings& settings) const;
 
-    QString msgTypeQss(const QString &msgType, const QString &key, UiSettings &settings) const;
+    /**
+     * Generates the Qss color palette stylesheet for sender colors
+     *
+     * This must be called before generating any Qss dependent on these colors.
+     *
+     * @see QtUiStyle::senderQss()
+     * @param[in] settings     Reference to current UI settings, used for loading color values
+     * @return Quassel-theme-compatible Qss color palette
+     */
+    QString senderPaletteQss(UiSettings& settings) const;
 
     /**
      * Generate a snippet of Qss stylesheet for a given sender-hash index
      *
+     * This depends on the color palette generated by QtUiStyle::senderPaletteQss()
+     *
      * @param[in] i            Sender hash index from 0 - 15
-     * @param[in] settings     Reference to current UI settings, used for loading color values
      * @param[in] messageType  Type of message to filter, e.g. 'plain' or 'action'
      * @param[in] includeNick  Also apply foreground color to Nick
      * @return Snippet of Quassel-theme-compatible Qss stylesheet
      */
-    QString senderQss(int i, UiSettings &settings, const QString &messageType,
-                      bool includeNick = false) const;
-    QString chatListItemQss(const QString &state, const QString &key, UiSettings &settings) const;
-};
+    QString senderQss(int i, const QString& messageType, bool includeNick = false) const;
 
+    /**
+     * Generate a snippet of Qss stylesheet for a given IRC nickname sender-hash index
+     *
+     * This depends on the color palette generated by QtUiStyle::senderPaletteQss()
+     *
+     * @param[in] i            Sender hash index from 0 - 15
+     * @return Snippet of Quassel-theme-compatible Qss stylesheet
+     */
+    QString nickQss(int i) const;
+
+    QString chatListItemQss(const QString& state, const QString& key, UiSettings& settings) const;
+};
 
 #endif