X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Fuistyle.cpp;h=75524db86c84dcb65ef6a30013d204465420bc66;hb=57c08c48e867edf38a9ce0547719cbd1b839952d;hp=18934d6d0b153e756a937f0d8a6528bf7cb5ae94;hpb=7f8c674b003c9f48c1c11cd7dee257a807f99d7c;p=quassel.git diff --git a/src/uisupport/uistyle.cpp b/src/uisupport/uistyle.cpp index 18934d6d..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 @@ -455,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; } @@ -692,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);