Message flags are now consistently used as Message::Flags rather than quint8.
[quassel.git] / src / client / messagemodel.h
index 32e4438..336c07e 100644 (file)
 #define MESSAGEMODEL_H_
 
 #include <QAbstractItemModel>
+#include <QDateTime>
+
+#include "message.h"
+#include "types.h"
 
 class MessageItem;
+class MsgId;
 
 class MessageModel : public QAbstractItemModel {
   Q_OBJECT
@@ -41,10 +46,10 @@ class MessageModel : public QAbstractItemModel {
     MessageModel(QObject *parent);
     virtual ~MessageModel();
 
-    inline QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const { return createIndex(row, column); }
-    inline QModelIndex parent(const QModelIndex &index) const { return QModelIndex(); }
-    inline int rowCount(const QModelIndex &parent = QModelIndex()) const { return _messageList.count(); }
-    inline int columnCount(const QModelIndex &parent = QModelIndex()) const { return 3; }
+    inline QModelIndex index(int row, int column, const QModelIndex &/*parent*/ = QModelIndex()) const { return createIndex(row, column); }
+    inline QModelIndex parent(const QModelIndex &) const { return QModelIndex(); }
+    inline int rowCount(const QModelIndex &/*parent*/ = QModelIndex()) const { return _messageList.count(); }
+    inline int columnCount(const QModelIndex &/*parent*/ = QModelIndex()) const { return 3; }
 
     virtual QVariant data(const QModelIndex &index, int role) const;
     virtual bool setData(const QModelIndex &index, const QVariant &value, int role);
@@ -60,18 +65,29 @@ class MessageModel : public QAbstractItemModel {
   private:
     QList<MessageItem *> _messageList;
 
+    int indexForId(MsgId);
+
 };
 
 class MessageItem {
-      
+
   public:
+    enum {
+      TimestampColumn, SenderColumn, TextColumn
+    };
+
     MessageItem(const Message &);
     virtual ~MessageItem();
 
-
-    virtual QVariant data(int column, int role) const = 0;
+    virtual QVariant data(int column, int role) const;
     virtual bool setData(int column, const QVariant &value, int role) = 0;
 
+  private:
+    QDateTime _timestamp;
+    MsgId _msgId;
+    BufferId _bufferId;
+    Message::Type _type;
+    Message::Flags _flags;
 };
 
 #endif