Make completion suffix configurable. Fixes BR130
[quassel.git] / src / uisupport / uistyle.cpp
index 4cb7dff..10b25e7 100644 (file)
@@ -25,7 +25,7 @@
 
 UiStyle::UiStyle(const QString &settingsKey) : _settingsKey(settingsKey) {
   // register FormatList if that hasn't happened yet
-  // FIXME I don't think this actually avoids double registration... :/
+  // FIXME I don't think this actually avoids double registration... then again... does it hurt?
   if(QVariant::nameToType("UiStyle::FormatList") == QVariant::Invalid) {
     qRegisterMetaType<FormatList>("UiStyle::FormatList");
     qRegisterMetaTypeStreamOperators<FormatList>("UiStyle::FormatList");
@@ -119,6 +119,8 @@ void UiStyle::setFormat(FormatType ftype, QTextCharFormat fmt, Settings::Mode mo
       s.removeCustomFormat(ftype);
     }
   }
+  // TODO: invalidate only affected cached formats... if that's possible with less overhead than just rebuilding them
+  _cachedFormats.clear();
 }
 
 QTextCharFormat UiStyle::format(FormatType ftype, Settings::Mode mode) const {
@@ -144,6 +146,7 @@ QTextCharFormat UiStyle::mergedFormat(quint32 ftype) {
   if(ftype & 0x00800000) fmt.merge(format((FormatType)(ftype & 0xf0800000))); // background
   // URL
   if(ftype & Url) fmt.merge(format(Url));
+  _cachedFormats[ftype] = fmt;
   return fmt;
 }
 
@@ -161,7 +164,7 @@ QString UiStyle::formatCode(FormatType ftype) const {
 UiStyle::StyledString UiStyle::styleString(const QString &s_) {
   QString s = s_;
   StyledString result;
-  result.formats.append(qMakePair(0, (quint32)None));
+  result.formatList.append(qMakePair(0, (quint32)None));
   quint32 curfmt = (quint32)None;
   int pos = 0; int length = 0;
   for(;;) {
@@ -205,12 +208,12 @@ UiStyle::StyledString UiStyle::styleString(const QString &s_) {
       length = code.length();
     }
     s.remove(pos, length);
-    if(pos == result.formats.last().first)
-      result.formats.last().second = curfmt;
+    if(pos == result.formatList.last().first)
+      result.formatList.last().second = curfmt;
     else
-      result.formats.append(qMakePair(pos, curfmt));
+      result.formatList.append(qMakePair(pos, curfmt));
   }
-  result.text = s;
+  result.plainText = s;
   return result;
 }
 
@@ -262,7 +265,7 @@ UiStyle::StyledMessage UiStyle::styleMessage(const Message &msg) {
   QString user = userFromMask(msg.sender());
   QString host = hostFromMask(msg.sender());
   QString nick = nickFromMask(msg.sender());
-  QString txt = mircToInternal(msg.text());
+  QString txt = mircToInternal(msg.contents());
   QString bufferName = msg.bufferInfo().bufferName();
 
   StyledMessage result;
@@ -300,7 +303,7 @@ UiStyle::StyledMessage UiStyle::styleMessage(const Message &msg) {
       break;
     case Message::Nick:
       s = tr("%Dr<->");
-      if(nick == msg.text()) t = tr("%DrYou are now known as %DN%1%DN").arg(txt);
+      if(nick == msg.contents()) t = tr("%DrYou are now known as %DN%1%DN").arg(txt);
       else t = tr("%Dr%DN%1%DN is now known as %DN%2%DN").arg(nick, txt);
       break;
     case Message::Mode:
@@ -317,7 +320,7 @@ UiStyle::StyledMessage UiStyle::styleMessage(const Message &msg) {
       t = tr("%De[%1]").arg(txt);
   }
   result.sender = styleString(s);
-  result.text = styleString(t);
+  result.contents = styleString(t);
   return result;
 }