+ if (s.value("UseSenderColors", true).toBool()) {
+ out << "\n// Sender Colors\n";
+ // Generate a color palette for easy reuse elsewhere
+ // NOTE: A color palette is not a complete replacement for specifying the colors below, as
+ // specifying the colors one-by-one instead of with QtUi::style()->brush(...) makes it easy
+ // to toggle the specific coloring of sender/nick at the cost of regenerating this file.
+ // See UiStyle::ColorRole
+ out << senderPaletteQss(s);
+
+ out << "ChatLine::sender#plain[sender=\"self\"] { foreground: palette(sender-color-self); }\n\n";
+
+ // Matches qssparser.cpp for UiStyle::PlainMsg
+ for (int i = 0; i < defaultSenderColors.count(); i++)
+ out << senderQss(i, "plain");
+
+ // Only color the nicks in CTCP ACTIONs if sender colors are enabled
+ if (s.value("UseSenderActionColors", true).toBool()) {
+ // For action messages, color the 'sender' column -and- the nick itself
+ out << "\n// Sender Nickname Colors for action messages\n"
+ << "ChatLine::sender#action[sender=\"self\"] { foreground: palette(sender-color-self); }\n"
+ << "ChatLine::nick#action[sender=\"self\"] { foreground: palette(sender-color-self); }\n\n";
+
+ // Matches qssparser.cpp for UiStyle::ActionMsg
+ for (int i = 0; i < defaultSenderColors.count(); i++)
+ 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);
+ }