code_duplication--
authorManuel Nickschas <sputnick@quassel-irc.org>
Thu, 8 May 2008 18:07:07 +0000 (18:07 +0000)
committerManuel Nickschas <sputnick@quassel-irc.org>
Thu, 8 May 2008 18:07:07 +0000 (18:07 +0000)
src/qtui/chatlinemodelitem.cpp
src/qtui/chatlinemodelitem.h
src/uisupport/uistyle.cpp

index dbd5e93..807d40c 100644 (file)
 #include "uistyle.h"
 
 ChatlineModelItem::ChatlineModelItem(const Message &msg) : MessageModelItem(msg) {
-  _msg = QtUi::style()->styleMessage(msg);
+  QtUiStyle::StyledMessage m = QtUi::style()->styleMessage(msg);
+
+  _timestamp.plainText = m.timestamp.text;
+  _sender.plainText = m.sender.text;
+  _contents.plainText = m.text.text;
+
+  _timestamp.formatList = m.timestamp.formats;
+  _sender.formatList = m.sender.formats;
+  _contents.formatList = m.text.formats;
 
 }
 
 
 QVariant ChatlineModelItem::data(int column, int role) const {
+  const ChatlinePart *part;
+
+  switch(column) {
+    case ChatlineModel::TimestampColumn: part = &_timestamp; break;
+    case ChatlineModel::SenderColumn:    part = &_sender; break;
+    case ChatlineModel::TextColumn:      part = &_contents; break;
+    default: return MessageModelItem::data(column, role);
+  }
+
   switch(role) {
-    case ChatlineModel::DisplayRole:
-      switch(column) {
-        case ChatlineModel::TimestampColumn: return _msg.timestamp.text;
-        case ChatlineModel::SenderColumn:    return _msg.sender.text;
-        case ChatlineModel::TextColumn:      return _msg.text.text;
-      }
-      break;
-    case ChatlineModel::FormatRole:
-      switch(column) {
-        case ChatlineModel::TimestampColumn: return QVariant::fromValue<UiStyle::FormatList>(_msg.timestamp.formats);
-        case ChatlineModel::SenderColumn:    return QVariant::fromValue<UiStyle::FormatList>(_msg.sender.formats);
-        case ChatlineModel::TextColumn:      return QVariant::fromValue<UiStyle::FormatList>(_msg.text.formats);
-      }
-      break;
+    case ChatlineModel::DisplayRole: return part->plainText;
+    case ChatlineModel::FormatRole:  return QVariant::fromValue<UiStyle::FormatList>(part->formatList);
   }
+
   return MessageModelItem::data(column, role);
 }
 
index 6256dc2..4d5469e 100644 (file)
@@ -34,7 +34,13 @@ class ChatlineModelItem : public MessageModelItem {
     virtual bool setData(int column, const QVariant &value, int role);
 
   private:
-    UiStyle::StyledMessage _msg;
+    struct ChatlinePart {
+      QString plainText;
+      UiStyle::FormatList formatList;
+
+    };
+
+    ChatlinePart _timestamp, _sender, _contents;
 };
 
 #endif
index a799d33..e0af5b1 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");