Fix serialization of QmlChatLine::RenderData
authorManuel Nickschas <sputnick@quassel-irc.org>
Sat, 19 Nov 2011 17:07:57 +0000 (18:07 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Sat, 19 Nov 2011 17:07:57 +0000 (18:07 +0100)
... also add an isValid member.

src/qmlui/qmlchatline.cpp
src/qmlui/qmlchatline.h
src/qmlui/qmlmessagemodelitem.cpp

index 3d3c4b4..6b1665c 100644 (file)
@@ -28,17 +28,19 @@ void QmlChatLine::registerTypes() {
 }
 
 QDataStream &operator<<(QDataStream &out, const QmlChatLine::RenderData &data) {
+  out << data.isValid << data.messageLabel;
   for(int i = 0; i < (int)QmlChatLine::NumColumns; ++i) {
     const QmlChatLine::RenderData::Column &col = data[static_cast<QmlChatLine::ColumnType>(i)];
-    out << col.text << col.formats;
+    out << col.text << col.formats << col.background << col.selectedBackground;
   }
   return out;
 }
 
 QDataStream &operator>>(QDataStream &in, QmlChatLine::RenderData &data) {
+  in >> data.isValid >> data.messageLabel;
   for(int i = 0; i < (int)QmlChatLine::NumColumns; ++i) {
     QmlChatLine::RenderData::Column &col = data[static_cast<QmlChatLine::ColumnType>(i)];
-    in >> col.text >> col.formats;
+    in >> col.text >> col.formats >> col.background >> col.selectedBackground;
   }
   return in;
 }
index db8d5d0..0dd090d 100644 (file)
@@ -58,6 +58,7 @@ public:
     };
 
     qint32 messageLabel;
+    bool isValid;
 
     Column &operator[](ColumnType col) {
       return _data[col];
@@ -67,7 +68,7 @@ public:
       return _data[col];
     }
 
-    RenderData() { messageLabel = 0; }
+    RenderData() { messageLabel = 0; isValid = false; }
 
   private:
     Column _data[NumColumns];
index ec11ec4..5e30792 100644 (file)
@@ -65,6 +65,7 @@ QVariant QmlMessageModelItem::data(int column, int role) const {
     data[QmlChatLine::ContentsColumn].background = backgroundBrush(UiStyle::Contents).value<QBrush>();
     data[QmlChatLine::ContentsColumn].selectedBackground = backgroundBrush(UiStyle::Contents, true).value<QBrush>();
 
+    data.isValid = true;
     return QVariant::fromValue<QmlChatLine::RenderData>(data);
   }