Don't underline quitting nicks
[quassel.git] / src / uisupport / uistyle.cpp
index 7482b93..3326bfd 100644 (file)
@@ -20,7 +20,7 @@
 #include <QApplication>
 
 #include "uistyle.h"
-#include "uistylesettings.h"
+#include "uisettings.h"
 #include "util.h"
 
 // FIXME remove with migration code
@@ -230,10 +230,13 @@ UiStyle::StyledString UiStyle::styleString(const QString &s_) {
         int color = 10 * s[pos+4].digitValue() + s[pos+5].digitValue();
         //TODO: use 99 as transparent color (re mirc color "standard")
         color &= 0x0f;
-        if(s[pos+3] == 'f')
+        if(s[pos+3] == 'f') {
+          curfmt &= 0xf0ffffff;
           curfmt |= (color << 24) | 0x00400000;
-        else
+        } else {
+          curfmt &= 0x0fffffff;
           curfmt |= (color << 28) | 0x00800000;
+        }
         length = 6;
       }
     } else if(s[pos+1] == 'O') { // reset formatting
@@ -314,6 +317,7 @@ UiStyle::StyledMessage UiStyle::styleMessage(const Message &msg) {
   QString nick = nickFromMask(msg.sender());
   QString txt = mircToInternal(msg.contents());
   QString bufferName = msg.bufferInfo().bufferName();
+  bufferName.replace('%', "%%"); // well, you _can_ have a % in a buffername apparently... -_-
 
   StyledMessage result;
 
@@ -336,7 +340,7 @@ UiStyle::StyledMessage UiStyle::styleMessage(const Message &msg) {
       if(!txt.isEmpty()) t = QString("%1 (%2)").arg(t).arg(txt);
       break;
     case Message::Quit:
-      s = tr("%Dq<--"); t = tr("%Dq%DN%DU%1%DU%DN %DH(%2@%3)%DH has quit").arg(nick, user, host);
+      s = tr("%Dq<--"); t = tr("%Dq%DN%1%DN %DH(%2@%3)%DH has quit").arg(nick, user, host);
       if(!txt.isEmpty()) t = QString("%1 (%2)").arg(t).arg(txt);
       break;
     case Message::Kick: