Fixed QssParser::parseFontSize regex
[quassel.git] / src / uisupport / qssparser.cpp
index d5b9984..b91aef4 100644 (file)
@@ -160,7 +160,7 @@ void QssParser::parsePaletteBlock(const QString &decl, const QString &contents)
 /******** Determine format types from a block declaration ********/
 
 quint64 QssParser::parseFormatType(const QString &decl) {
-  QRegExp rx("ChatLine(?:::(\\w+))?(?:#(\\w+))?(?:\\[([=-,\\\"\\w\\s]+)\\])?");
+  QRegExp rx("ChatLine(?:::(\\w+))?(?:#([\\w\\-]+))?(?:\\[([=-,\\\"\\w\\s]+)\\])?");
   // $1: subelement; $2: msgtype; $3: conditionals
   if(!rx.exactMatch(decl)) {
     qWarning() << Q_FUNC_INFO << tr("Invalid block declaration: %1").arg(decl);
@@ -186,6 +186,8 @@ quint64 QssParser::parseFormatType(const QString &decl) {
       fmtType |= UiStyle::Hostmask;
     else if(subElement == "modeflags")
       fmtType |= UiStyle::ModeFlags;
+    else if(subElement == "url")
+      fmtType |= UiStyle::Url;
     else {
       qWarning() << Q_FUNC_INFO << tr("Invalid subelement name in %1").arg(decl);
       return UiStyle::Invalid;
@@ -222,6 +224,12 @@ quint64 QssParser::parseFormatType(const QString &decl) {
       fmtType |= UiStyle::ErrorMsg;
     else if(msgType == "daychange")
       fmtType |= UiStyle::DayChangeMsg;
+    else if(msgType == "topic")
+      fmtType |= UiStyle::TopicMsg;
+    else if(msgType == "netsplit-join")
+      fmtType |= UiStyle::NetsplitJoinMsg;
+    else if(msgType == "netsplit-quit")
+      fmtType |= UiStyle::NetsplitQuitMsg;
     else {
       qWarning() << Q_FUNC_INFO << tr("Invalid message type in %1").arg(decl);
     }
@@ -285,9 +293,9 @@ quint64 QssParser::parseFormatType(const QString &decl) {
           return UiStyle::Invalid;
         }
         if(condName == "fg-color")
-          fmtType |= 0x00400000 | (col << 24);
+          fmtType |= 0x00400000 | (quint32)(col << 24);
         else
-          fmtType |= 0x00800000 | (col << 28);
+          fmtType |= 0x00800000 | (quint32)(col << 28);
       } else {
         qWarning() << Q_FUNC_INFO << tr("Unhandled condition: %1").arg(condName);
         return UiStyle::Invalid;
@@ -344,7 +352,7 @@ quint32 QssParser::parseItemFormatType(const QString &decl) {
     if(!state.isEmpty()) {
       if(state == "inactive")
         fmtType |= UiStyle::InactiveBuffer;
-      else if(state == "event")
+      else if(state == "channel-event")
         fmtType |= UiStyle::ActiveBuffer;
       else if(state == "unread-message")
         fmtType |= UiStyle::UnreadBuffer;
@@ -654,7 +662,7 @@ void QssParser::parseFontWeight(const QString& value, QTextCharFormat* format) {
 }
 
 void QssParser::parseFontSize(const QString& value, QTextCharFormat* format) {
-  QRegExp rx("\\(d+)(pt|px)");
+  QRegExp rx("(\\d+)(pt|px)");
   if(!rx.exactMatch(value)) {
     qWarning() << Q_FUNC_INFO << tr("Invalid font size specification: %1").arg(value);
     return;