~ubuntu-branches/ubuntu/jaunty/quassel/jaunty-backports

« back to all changes in this revision

Viewing changes to src/client/messagemodel.h

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2009-01-14 01:28:49 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20090114012849-38celzez3y3wpai9
Tags: 0.4.0~git090113-0ubuntu1
* New upstream git snapshot
  - Use networks.ini to provide default network/channel
  - Provide presets for common IRC networks
* Add kubuntu_01_default_network_channel.patch to set Freenode, port
  8001, and #kubuntu as defaults
* Add build-dep on quilt

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/***************************************************************************
2
 
 *   Copyright (C) 2005-08 by the Quassel IRC Team                         *
 
2
 *   Copyright (C) 2005-09 by the Quassel Project                          *
3
3
 *   devel@quassel-irc.org                                                 *
4
4
 *                                                                         *
5
5
 *   This program is free software; you can redistribute it and/or modify  *
56
56
 
57
57
  inline QModelIndex index(int row, int column, const QModelIndex &/*parent*/ = QModelIndex()) const { return createIndex(row, column); }
58
58
  inline QModelIndex parent(const QModelIndex &) const { return QModelIndex(); }
59
 
  inline int rowCount(const QModelIndex &parent = QModelIndex()) const { return parent.isValid() ? 0 : _messageList.count(); }
 
59
  inline int rowCount(const QModelIndex &parent = QModelIndex()) const { return parent.isValid() ? 0 : messageCount(); }
60
60
  inline int columnCount(const QModelIndex &/*parent*/ = QModelIndex()) const { return 3; }
61
61
 
62
62
  virtual QVariant data(const QModelIndex &index, int role) const;
75
75
  void buffersPermanentlyMerged(BufferId bufferId1, BufferId bufferId2);
76
76
 
77
77
protected:
78
 
  virtual MessageModelItem *createMessageModelItem(const Message &) = 0;
 
78
//   virtual MessageModelItem *createMessageModelItem(const Message &) = 0;
 
79
 
 
80
  virtual int messageCount() const = 0;
 
81
  virtual bool messagesIsEmpty() const = 0;
 
82
  virtual const MessageModelItem *messageItemAt(int i) const = 0;
 
83
  virtual MessageModelItem *messageItemAt(int i) = 0;
 
84
  virtual const MessageModelItem *firstMessageItem() const= 0;
 
85
  virtual MessageModelItem *firstMessageItem() = 0;
 
86
  virtual const MessageModelItem *lastMessageItem() const= 0;
 
87
  virtual MessageModelItem *lastMessageItem() = 0;
 
88
  virtual void insertMessage__(int pos, const Message &) = 0;
 
89
  virtual void insertMessages__(int pos, const QList<Message> &) = 0;
 
90
  virtual void removeMessageAt(int i) = 0;
 
91
  virtual void removeAllMessages() = 0;
 
92
  virtual Message takeMessageAt(int i) = 0;
 
93
 
79
94
  virtual void customEvent(QEvent *event);
80
95
 
81
96
private slots:
86
101
  int insertMessagesGracefully(const QList<Message> &); // inserts as many contiguous msgs as possible. returns numer of inserted msgs.
87
102
  int indexForId(MsgId);
88
103
 
89
 
  QList<MessageModelItem *> _messageList;
 
104
  //  QList<MessageModelItem *> _messageList;
90
105
  QList<Message> _messageBuffer;
91
106
  QTimer _dayChangeTimer;
92
107
  QDateTime _nextDayChange;
103
118
   *  Subclasses need to provide Qt::DisplayRole at least, which should describe the plaintext
104
119
   *  strings without formattings (e.g. for searching purposes).
105
120
   */
106
 
  MessageModelItem(const Message &);
 
121
  MessageModelItem() {}
107
122
  inline virtual ~MessageModelItem() {}
108
123
 
109
124
  virtual QVariant data(int column, int role) const;
110
125
  virtual bool setData(int column, const QVariant &value, int role);
111
126
 
112
 
  inline const QDateTime &timeStamp() const { return _timestamp; }
113
 
  inline MsgId msgId() const { return _msgId; }
114
 
  inline BufferId bufferId() const { return _bufferId; }
115
 
  inline void setBufferId(BufferId bufferId) { _bufferId = bufferId; }
116
 
  inline Message::Type msgType() const { return _type; }
117
 
  inline Message::Flags msgFlags() const { return _flags; }
118
 
  
 
127
  virtual const Message &message() const = 0;
 
128
  virtual const QDateTime &timestamp() const = 0;
 
129
  virtual const MsgId &msgId() const = 0;
 
130
  virtual const BufferId &bufferId() const = 0;
 
131
  virtual void setBufferId(BufferId bufferId) = 0;
 
132
  virtual Message::Type msgType() const = 0;
 
133
  virtual Message::Flags msgFlags() const = 0;
 
134
 
119
135
  // For sorting
120
136
  bool operator<(const MessageModelItem &) const;
121
137
  bool operator==(const MessageModelItem &) const;
123
139
  static bool lessThan(const MessageModelItem *m1, const MessageModelItem *m2);
124
140
 
125
141
private:
126
 
  QDateTime _timestamp;
127
 
  MsgId _msgId;
128
 
  BufferId _bufferId;
 
142
  Message _msg;
129
143
  BufferId _redirectedTo;
130
 
  Message::Type _type;
131
 
  Message::Flags _flags;
132
144
};
133
145
 
134
146
QDebug operator<<(QDebug dbg, const MessageModelItem &msgItem);