introducing query merging (per drag & drop). needs a core update
[quassel.git] / src / client / messagemodel.h
index f8ffaa5..b65fbbf 100644 (file)
@@ -44,6 +44,7 @@ public:
     TimestampRole,
     FormatRole,
     ColumnTypeRole,
+    RedirectedToRole,
     UserRole
   };
 
@@ -55,7 +56,7 @@ public:
 
   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 rowCount(const QModelIndex &parent = QModelIndex()) const { return parent.isValid() ? 0 : _messageList.count(); }
   inline int columnCount(const QModelIndex &/*parent*/ = QModelIndex()) const { return 3; }
 
   virtual QVariant data(const QModelIndex &index, int role) const;
@@ -71,6 +72,7 @@ public:
 public slots:
   void requestBacklog(BufferId bufferId);
   void messagesReceived(BufferId bufferId, int count);
+  void buffersPermanentlyMerged(BufferId bufferId1, BufferId bufferId2);
 
 protected:
   virtual MessageModelItem *createMessageModelItem(const Message &) = 0;
@@ -105,11 +107,12 @@ public:
   inline virtual ~MessageModelItem() {}
 
   virtual QVariant data(int column, int role) const;
-  virtual bool setData(int column, const QVariant &value, int role) = 0;
+  virtual bool setData(int column, const QVariant &value, int role);
 
   inline const QDateTime &timeStamp() const { return _timestamp; }
   inline MsgId msgId() const { return _msgId; }
   inline BufferId bufferId() const { return _bufferId; }
+  inline void setBufferId(BufferId bufferId) { _bufferId = bufferId; }
   inline Message::Type msgType() const { return _type; }
   inline Message::Flags msgFlags() const { return _flags; }
   
@@ -123,6 +126,7 @@ private:
   QDateTime _timestamp;
   MsgId _msgId;
   BufferId _bufferId;
+  BufferId _redirectedTo;
   Message::Type _type;
   Message::Flags _flags;
 };