Reformat ALL the source!
[quassel.git] / src / qtui / chatlinemodel.h
index 77cab19..aecc9bc 100644 (file)
 
 #include "messagemodel.h"
 
-class ChatLineModel : public MessageModel {
-  Q_OBJECT
+#include <QList>
+#include "chatlinemodelitem.h"
 
-public:
-  enum ChatLineRole {
-    WrapListRole = MessageModel::UserRole
-  };
+class ChatLineModel : public MessageModel
+{
+    Q_OBJECT
 
-  ChatLineModel(QObject *parent = 0);
+public:
+    enum ChatLineRole {
+        WrapListRole = MessageModel::UserRole,
+        MsgLabelRole,
+        SelectedBackgroundRole
+    };
 
-  /// Used to store information about words to be used for wrapping
-  struct Word {
-    quint16 start;
-    qreal endX;
-    qreal width;
-    qreal trailing;
-  };
-  typedef QVector<Word> WrapList;
+    ChatLineModel(QObject *parent = 0);
 
+    typedef ChatLineModelItem::Word Word;
+    typedef ChatLineModelItem::WrapList WrapList;
+    virtual inline const MessageModelItem *messageItemAt(int i) const { return &_messageList[i]; }
 protected:
-  virtual MessageModelItem *createMessageModelItem(const Message &);
+//   virtual MessageModelItem *createMessageModelItem(const Message &);
+
+    virtual inline int messageCount() const { return _messageList.count(); }
+    virtual inline bool messagesIsEmpty() const { return _messageList.isEmpty(); }
+    virtual inline MessageModelItem *messageItemAt(int i) { return &_messageList[i]; }
+    virtual inline const MessageModelItem *firstMessageItem() const { return &_messageList.first(); }
+    virtual inline MessageModelItem *firstMessageItem() { return &_messageList.first(); }
+    virtual inline const MessageModelItem *lastMessageItem() const { return &_messageList.last(); }
+    virtual inline MessageModelItem *lastMessageItem() { return &_messageList.last(); }
+    virtual inline void insertMessage__(int pos, const Message &msg) { _messageList.insert(pos, ChatLineModelItem(msg)); }
+    virtual void insertMessages__(int pos, const QList<Message> &);
+    virtual inline void removeMessageAt(int i) { _messageList.removeAt(i); }
+    virtual inline void removeAllMessages() { _messageList.clear(); }
+    virtual Message takeMessageAt(int i);
 
+protected slots:
+    virtual void styleChanged();
+
+private:
+    QList<ChatLineModelItem> _messageList;
 };
 
+
 QDataStream &operator<<(QDataStream &out, const ChatLineModel::WrapList);
 QDataStream &operator>>(QDataStream &in, ChatLineModel::WrapList &);
 
 Q_DECLARE_METATYPE(ChatLineModel::WrapList)
 
 #endif
-