Merging r800:803 from trunk to branches/0.3.
[quassel.git] / src / qtui / chatline-old.cpp
index 2c9cb0d..497017d 100644 (file)
 #include "network.h"
 #include "qtui.h"
 
+#include "qtuisettings.h"
+
 //! Construct a ChatLineOld object from a message.
 /**
  * \param m   The message to be layouted and rendered
  */
-ChatLineOld::ChatLineOld(Message m) {
+QColor ChatLineOld::_highlightColor;
+ChatLineOld::ChatLineOld(const Message &m) {
   hght = 0;
-  //networkName = m.buffer.network();
-  //bufferName = m.buffer.buffer();
   msg = m;
   selectionMode = None;
   isHighlight = false;
   formatMsg(msg);
+
+  if(!_highlightColor.isValid()) {
+    QtUiSettings s("QtUi/Colors");
+    _highlightColor = s.value("highlightColor", QVariant(QColor("lightcoral"))).value<QColor>();
+  }
 }
 
 ChatLineOld::~ChatLineOld() {
-
 }
 
 void ChatLineOld::formatMsg(Message msg) {
@@ -50,9 +55,17 @@ void ChatLineOld::formatMsg(Message msg) {
   precomputeLine();
 }
 
+QList<ChatLineOld::FormatRange> ChatLineOld::calcFormatRanges(const UiStyle::StyledText &fs) {
+  QTextLayout::FormatRange additional;
+  additional.start = additional.length = 0;
+  return calcFormatRanges(fs, additional);
+}
+
 // This function is almost obsolete, since with the new style engine, we already get a list of formats...
 // We don't know yet if we keep this implementation of ChatLineOld, so I won't bother making this actually nice.
-QList<ChatLineOld::FormatRange> ChatLineOld::calcFormatRanges(UiStyle::StyledText fs, QTextLayout::FormatRange additional) {
+QList<ChatLineOld::FormatRange> ChatLineOld::calcFormatRanges(const UiStyle::StyledText &_fs,
+     const QTextLayout::FormatRange &additional) {
+  UiStyle::StyledText fs = _fs;
   QList<FormatRange> ranges;
 
   if(additional.length > 0) {
@@ -76,6 +89,7 @@ QList<ChatLineOld::FormatRange> ChatLineOld::calcFormatRanges(UiStyle::StyledTex
       }
     }
   }
+
   foreach(QTextLayout::FormatRange f, fs.formats) {
     if(f.length <= 0) continue;
     FormatRange range;
@@ -309,7 +323,7 @@ void ChatLineOld::draw(QPainter *p, const QPointF &pos) {
   } else {
     if(isHighlight) {
       p->setPen(Qt::NoPen);
-      p->setBrush(QColor("lightcoral") /*pal.brush(QPalette::AlternateBase) */);
+      p->setBrush(_highlightColor /*pal.brush(QPalette::AlternateBase) */);
       p->drawRect(QRectF(pos, QSizeF(tsWidth + QtUi::style()->sepTsSender() + senderWidth + QtUi::style()->sepSenderText() + textWidth, height())));
     }
     if(selectionMode == Partial) {