Fix wordwrap in some cases
[quassel.git] / src / qtui / chatlinemodelitem.cpp
index 343fb99..7c130c7 100644 (file)
@@ -52,6 +52,16 @@ ChatLineModelItem::ChatLineModelItem(const Message &msg)
     _styledMsg.setFlags(msg.flags() |= Message::ServerMsg);
 }
 
+bool ChatLineModelItem::setData(int column, const QVariant &value, int role) {
+  switch(role) {
+    case MessageModel::FlagsRole:
+      _styledMsg.setFlags((Message::Flags)value.toUInt());
+      return true;
+    default:
+      return MessageModelItem::setData(column, value, role);
+  }
+}
+
 QVariant ChatLineModelItem::data(int column, int role) const {
   if(role == ChatLineModel::MsgLabelRole)
     return messageLabel();
@@ -191,11 +201,13 @@ void ChatLineModelItem::computeWrapList() const {
     //if(flg) qDebug() << idx << mode << wordStart << wordEnd << contents->plainText.left(idx) << contents->plainText.mid(idx);
 
     if(mode == SearchEnd || (!wordStart && wordEnd)) {
-      if(wordStart || !wordEnd) continue;
       oldidx = idx;
+      if(wordStart || !wordEnd)
+        continue;
       mode = SearchStart;
       continue;
     }
+
     qreal wordendx = line.cursorToX(oldidx);
     qreal trailingendx = line.cursorToX(idx);
     word.endX = wordendx;