X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fqtuistyle.cpp;h=2e505a69d437659973d7527054601e7194f467c0;hp=c3f405de498ac25705006e221e2cc93ecbbde1ab;hb=40d9d7cf8df839fa51033ccbc7f8d075ad276949;hpb=df38e82953be7b676871f7215053a005decb90d1 diff --git a/src/qtui/qtuistyle.cpp b/src/qtui/qtuistyle.cpp index c3f405de..2e505a69 100644 --- a/src/qtui/qtuistyle.cpp +++ b/src/qtui/qtuistyle.cpp @@ -46,26 +46,18 @@ void QtUiStyle::generateSettingsQss() const { QTextStream out(&settingsQss); out << "// Style settings made in Quassel's configuration dialog\n" - << "// This file is automatically generated, do not edit\n\n"; + << "// This file is automatically generated, do not edit\n"; + // ChatView + /////////// QtUiStyleSettings fs("Fonts"); - QFont font = fs.value("ChatView").value(); - QString desc = "font: "; - if(font.italic()) - desc += "italic "; - if(font.bold()) - desc += "bold "; - if(!font.italic() && !font.bold()) - desc += "normal "; - desc += QString("%1pt \"%2\"").arg(font.pointSize()).arg(font.family()); - if(fs.value("UseCustomChatViewFont").toBool()) - out << "// ChatView Font\n\n" - << "ChatLine { " << desc << "; }\n\n"; + out << "\n// ChatView Font\n" + << "ChatLine { " << fontDescription(fs.value("ChatView").value()) << "; }\n"; QtUiStyleSettings s("Colors"); if(s.value("UseChatViewColors").toBool()) { - out << "// Custom ChatView Colors\n\n" + out << "\n// Custom ChatView Colors\n" << "Palette { marker-line: " << color("MarkerLine", s) << "; }\n" << "ChatView { background: " << color("ChatViewBackground", s) << "; }\n\n" @@ -89,31 +81,75 @@ void QtUiStyle::generateSettingsQss() const { << msgTypeQss("info", "ServerMsg", s) << msgTypeQss("error", "ErrorMsg", s) << msgTypeQss("daychange", "ServerMsg", s) - << "\n\n"; + << "\n"; } if(s.value("UseSenderColors").toBool()) { - out << "// Sender Colors\n\n" + out << "\n// Sender Colors\n" << "ChatLine::sender#plain[sender=\"self\"] { foreground: " << color("SenderSelf", s) << "; }\n\n"; for(int i = 0; i < 16; i++) out << senderQss(i, s); } + // ItemViews + //////////// + + UiStyleSettings uiFonts("Fonts"); + if(uiFonts.value("UseCustomItemViewFont").toBool()) { + QString fontDesc = fontDescription(uiFonts.value("ItemView").value()); + out << "\n// ItemView Font\n" + << "ChatListItem { " << fontDesc << "; }\n" + << "NickListItem { " << fontDesc << "; }\n\n"; + } + + UiStyleSettings uiColors("Colors"); + if(uiColors.value("UseBufferViewColors").toBool()) { + out << "\n// BufferView Colors\n" + << "ChatListItem { foreground: " << color("DefaultBuffer", uiColors) << "; }\n" + << chatListItemQss("inactive", "InactiveBuffer", uiColors) + << chatListItemQss("channel-event", "ActiveBuffer", uiColors) + << chatListItemQss("unread-message", "UnreadBuffer", uiColors) + << chatListItemQss("highlighted", "HighlightedBuffer", uiColors); + } + + if(uiColors.value("UseNickViewColors").toBool()) { + out << "\n// NickView Colors\n" + << "NickListItem[type=\"category\"] { foreground: " << color("DefaultBuffer", uiColors) << "; }\n" + << "NickListItem[type=\"user\"] { foreground: " << color("OnlineNick", uiColors) << "; }\n" + << "NickListItem[type=\"user\", state=\"away\"] { foreground: " << color("AwayNick", uiColors) << "; }\n"; + } + settingsQss.close(); } -QString QtUiStyle::color(const QString &key, QtUiStyleSettings &settings) const { +QString QtUiStyle::color(const QString &key, UiSettings &settings) const { return settings.value(key).value().name(); } -QString QtUiStyle::msgTypeQss(const QString &msgType, const QString &key, QtUiStyleSettings &settings) const { +QString QtUiStyle::fontDescription(const QFont &font) const { + QString desc = "font: "; + if(font.italic()) + desc += "italic "; + if(font.bold()) + desc += "bold "; + if(!font.italic() && !font.bold()) + desc += "normal "; + desc += QString("%1pt \"%2\"").arg(font.pointSize()).arg(font.family()); + return desc; +} + +QString QtUiStyle::msgTypeQss(const QString &msgType, const QString &key, UiSettings &settings) const { return QString("ChatLine#%1 { foreground: %2; }\n").arg(msgType, color(key, settings)); } -QString QtUiStyle::senderQss(int i, QtUiStyleSettings &settings) const { +QString QtUiStyle::senderQss(int i, UiSettings &settings) const { QString dez = QString::number(i); if(dez.length() == 1) dez.prepend('0'); return QString("ChatLine::sender#plain[sender=\"0%1\"] { foreground: %2; }\n").arg(QString::number(i, 16), color("Sender"+dez, settings)); } + +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)); +}