X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Fuistyle.cpp;h=75524db86c84dcb65ef6a30013d204465420bc66;hb=3f354bcce2cecfe88a46de90cbf94ffd1bc7c506;hp=555f87707f577c8b5ad41254a8c53f1cb9af518b;hpb=64bc0567e3fe373ab996a23ed690ec5631bb417f;p=quassel.git diff --git a/src/uisupport/uistyle.cpp b/src/uisupport/uistyle.cpp index 555f8770..75524db8 100644 --- a/src/uisupport/uistyle.cpp +++ b/src/uisupport/uistyle.cpp @@ -102,17 +102,14 @@ void UiStyle::loadStyleSheet() { QssParser parser; parser.processStyleSheet(styleSheet); QApplication::setPalette(parser.palette()); - _uiStylePalette = parser.uiStylePalette(); - QTextCharFormat baseFmt = parser.formats().value(Base); - foreach(quint64 fmtType, parser.formats().keys()) { - QTextCharFormat fmt = baseFmt; - fmt.merge(parser.formats().value(fmtType)); - _formats[fmtType] = fmt; - } + _uiStylePalette = parser.uiStylePalette(); + _formats = parser.formats(); _listItemFormats = parser.listItemFormats(); - qApp->setStyleSheet(styleSheet); // pass the remaining sections to the application + styleSheet = styleSheet.trimmed(); + if(!styleSheet.isEmpty()) + qApp->setStyleSheet(styleSheet); // pass the remaining sections to the application } emit changed(); @@ -352,7 +349,7 @@ void UiStyle::mergeFormat(QTextCharFormat &fmt, quint32 ftype, quint64 label) { // URL if(ftype & Url) - mergeSubElementFormat(fmt, ftype & Url, label); + mergeSubElementFormat(fmt, ftype & (Url | 0x000000ff), label); } // Merge a subelement format into an existing message format @@ -394,6 +391,8 @@ UiStyle::FormatType UiStyle::formatType(Message::Type msgType) { return ErrorMsg; case Message::DayChange: return DayChangeMsg; + case Message::Topic: + return TopicMsg; } //Q_ASSERT(false); // we need to handle all message types qWarning() << Q_FUNC_INFO << "Unknown message type:" << msgType; @@ -453,10 +452,10 @@ UiStyle::StyledString UiStyle::styleString(const QString &s_, quint32 baseFormat color &= 0x0f; if(s[pos+3] == 'f') { curfmt &= 0xf0ffffff; - curfmt |= (color << 24) | 0x00400000; + curfmt |= (quint32)(color << 24) | 0x00400000; } else { curfmt &= 0x0fffffff; - curfmt |= (color << 28) | 0x00800000; + curfmt |= (quint32)(color << 28) | 0x00800000; } length = 6; } @@ -608,6 +607,9 @@ void UiStyle::StyledMessage::style() const { //: Day Change Message t = tr("{Day changed to %1}").arg(timestamp().toString()); break; + case Message::Topic: + //: Topic Message + t = tr("%1").arg(txt); break; default: t = tr("[%1]").arg(txt); } @@ -672,6 +674,8 @@ QString UiStyle::StyledMessage::decoratedSender() const { return tr("*"); break; case Message::DayChange: return tr("-"); break; + case Message::Topic: + return tr("*"); break; default: return tr("%1").arg(plainSender()); } @@ -685,9 +689,10 @@ quint8 UiStyle::StyledMessage::senderHash() const { QString nick = nickFromMask(sender()).toLower(); if(!nick.isEmpty()) { int chopCount = 0; - while(nick.at(nick.count() - 1 - chopCount) == '_') + while(chopCount < nick.size() && nick.at(nick.count() - 1 - chopCount) == '_') chopCount++; - nick.chop(chopCount); + if(chopCount < nick.size()) + nick.chop(chopCount); } quint16 hash = qChecksum(nick.toAscii().data(), nick.toAscii().size()); return (_senderHash = (hash & 0xf) + 1);