Optionally color nicknames in all messages
[quassel.git] / src / qtui / qtuistyle.cpp
index a81f929..9dc997f 100644 (file)
@@ -153,6 +153,17 @@ void QtUiStyle::generateSettingsQss() const
                 out << senderQss(i, "action", true);
         }
 
+        // Only color the nicks in CTCP ACTIONs if sender colors are enabled
+        if (s.value("UseNickGeneralColors", true).toBool()) {
+            // For action messages, color the 'sender' column -and- the nick itself
+            out << "\n// Nickname colors for all messages\n"
+                << "ChatLine::nick[sender=\"self\"] { foreground: palette(sender-color-self); }\n\n";
+
+            // Matches qssparser.cpp for any style of message (UiStyle::...)
+            for (int i = 0; i < defaultSenderColors.count(); i++)
+                out << nickQss(i);
+        }
+
     }
 
     // ItemViews
@@ -251,6 +262,16 @@ QString QtUiStyle::senderQss(int i, const QString &messageType, bool includeNick
 }
 
 
+QString QtUiStyle::nickQss(int i) const
+{
+    QString dez = QString::number(i);
+    if (dez.length() == 1) dez.prepend('0');
+
+    return QString("ChatLine::nick[sender=\"0%1\"]   { foreground: palette(sender-color-0%1); }\n")
+            .arg(QString::number(i, 16));
+}
+
+
 QString QtUiStyle::chatListItemQss(const QString &state, const QString &key, UiSettings &settings) const
 {
     return QString("ChatListItem[state=\"%1\"] { foreground: %2; }\n").arg(state, color(key, settings));