X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fmessagemodel.h;h=cc61c4f6ad9e11e9de275b1a68235abd50fce056;hp=c381f0f10143306286c98186edb75f3a693776a6;hb=756158351d58ce25857f52589f5f8c42236a1c27;hpb=3dae8e0b92015ac13df4bb3eda5f92e3a9e4fb08 diff --git a/src/client/messagemodel.h b/src/client/messagemodel.h index c381f0f1..cc61c4f6 100644 --- a/src/client/messagemodel.h +++ b/src/client/messagemodel.h @@ -33,73 +33,75 @@ struct MsgId; class MessageModel : public QAbstractItemModel { Q_OBJECT - public: - enum MessageRole { - DisplayRole = Qt::DisplayRole, - EditRole = Qt::EditRole, - MsgIdRole = Qt::UserRole, - BufferIdRole, - TypeRole, - FlagsRole, - TimestampRole, - FormatRole, - ColumnTypeRole, - UserRole - }; +public: + enum MessageRole { + DisplayRole = Qt::DisplayRole, + EditRole = Qt::EditRole, + MsgIdRole = Qt::UserRole, + BufferIdRole, + TypeRole, + FlagsRole, + TimestampRole, + FormatRole, + ColumnTypeRole, + UserRole + }; - enum ColumnType { - TimestampColumn, SenderColumn, ContentsColumn, UserColumnType - }; + enum ColumnType { + TimestampColumn, SenderColumn, ContentsColumn, UserColumnType + }; - MessageModel(QObject *parent); - virtual ~MessageModel(); + MessageModel(QObject *parent); - 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; } + 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); + virtual QVariant data(const QModelIndex &index, int role) const; + virtual bool setData(const QModelIndex &index, const QVariant &value, int role); - //virtual Qt::ItemFlags flags(const QModelIndex &index) const; + //virtual Qt::ItemFlags flags(const QModelIndex &index) const; - bool insertMessage(const Message &, bool fakeMsg = false); - void insertMessages(const QList &); + bool insertMessage(const Message &, bool fakeMsg = false); + void insertMessages(const QList &); - void clear(); + void clear(); - protected: - virtual MessageModelItem *createMessageModelItem(const Message &) = 0; +protected: + virtual MessageModelItem *createMessageModelItem(const Message &) = 0; - private: - QList _messageList; - - int indexForId(MsgId); +private: + QList _messageList; + int indexForId(MsgId); }; class MessageModelItem { - - public: - - //! Creates a MessageModelItem from a Message object. - /** This baseclass implementation takes care of all Message data *except* the stylable strings. - * Subclasses need to provide Qt::DisplayRole at least, which should describe the plaintext - * strings without formattings (e.g. for searching purposes). - */ - MessageModelItem(const Message &); - virtual ~MessageModelItem(); - - 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; +public: + //! Creates a MessageModelItem from a Message object. + /** This baseclass implementation takes care of all Message data *except* the stylable strings. + * Subclasses need to provide Qt::DisplayRole at least, which should describe the plaintext + * strings without formattings (e.g. for searching purposes). + */ + MessageModelItem(const Message &); + inline virtual ~MessageModelItem() {} + + virtual QVariant data(int column, int role) const; + virtual bool setData(int column, const QVariant &value, int role) = 0; + + inline const QDateTime &timeStamp() const { return _timestamp; } + inline MsgId msgId() const { return _msgId; } + inline BufferId bufferId() const { return _bufferId; } + inline Message::Type msgType() const { return _type; } + inline Message::Flags msgFlags() const { return _flags; } + +private: + QDateTime _timestamp; + MsgId _msgId; + BufferId _bufferId; + Message::Type _type; + Message::Flags _flags; }; #endif