- enum Role {
- BufferTypeRole = TreeModel::UserRole,
- ItemActiveRole,
- BufferActivityRole,
- BufferIdRole,
- NetworkIdRole,
- BufferInfoRole,
- ItemTypeRole,
- UserAwayRole,
- IrcUserRole,
- IrcChannelRole
- };
-
- enum ItemType {
- NetworkItemType = 0x01,
- BufferItemType = 0x02,
- UserCategoryItemType = 0x04,
- IrcUserItemType = 0x08
- };
- Q_DECLARE_FLAGS(ItemTypes, ItemType)
-
- NetworkModel(QObject *parent = 0);
- static QList<QVariant> defaultHeader();
-
- static bool mimeContainsBufferList(const QMimeData *mimeData);
- static QList< QPair<NetworkId, BufferId> > mimeDataToBufferList(const QMimeData *mimeData);
-
- virtual QStringList mimeTypes() const;
- virtual QMimeData *mimeData(const QModelIndexList &) const;
- virtual bool dropMimeData(const QMimeData *, Qt::DropAction, int, int, const QModelIndex &);
-
- void attachNetwork(Network *network);
-
- bool isBufferIndex(const QModelIndex &) const;
- //Buffer *getBufferByIndex(const QModelIndex &) const;
- QModelIndex networkIndex(NetworkId networkId);
- QModelIndex bufferIndex(BufferId bufferId);
-
- const Network *networkByIndex(const QModelIndex &index) const;
-
- BufferInfo::ActivityLevel bufferActivity(const BufferInfo &buffer) const;
-
- //! Finds a buffer with a given name in a given network
- /** This performs a linear search through all BufferItems, hence it is expensive.
- * @param networkId The network which we search in
- * @param bufferName The bufferName we look for
- * @return The id of the buffer if found, an invalid one else
- */
- BufferId bufferId(NetworkId networkId, const QString &bufferName, Qt::CaseSensitivity cs = Qt::CaseInsensitive) const;
-
- QString bufferName(BufferId bufferId) const;
- BufferInfo::Type bufferType(BufferId bufferId) const;
- BufferInfo bufferInfo(BufferId bufferId) const;
- MsgId lastSeenMsgId(BufferId bufferId) const;
- MsgId lastSeenMarkerMsgId(BufferId bufferId) const;
- NetworkId networkId(BufferId bufferId) const;
- QString networkName(BufferId bufferId) const;
-
- inline QList<BufferId> allBufferIds() const { return _bufferItemCache.keys(); }
+ enum Role {
+ BufferTypeRole = TreeModel::UserRole,
+ ItemActiveRole,
+ BufferActivityRole,
+ BufferIdRole,
+ NetworkIdRole,
+ BufferInfoRole,
+ ItemTypeRole,
+ UserAwayRole,
+ IrcUserRole,
+ IrcChannelRole,
+ BufferFirstUnreadMsgIdRole,
+ MarkerLineMsgIdRole,
+ };
+
+ enum ItemType {
+ NetworkItemType = 0x01,
+ BufferItemType = 0x02,
+ UserCategoryItemType = 0x04,
+ IrcUserItemType = 0x08
+ };
+ Q_DECLARE_FLAGS(ItemTypes, ItemType)
+
+ NetworkModel(QObject *parent = 0);
+ static QList<QVariant> defaultHeader();
+
+ static bool mimeContainsBufferList(const QMimeData *mimeData);
+ static QList<QPair<NetworkId, BufferId> > mimeDataToBufferList(const QMimeData *mimeData);
+
+ virtual QStringList mimeTypes() const;
+ virtual QMimeData *mimeData(const QModelIndexList &) const;
+
+ void attachNetwork(Network *network);
+
+ bool isBufferIndex(const QModelIndex &) const;
+ //Buffer *getBufferByIndex(const QModelIndex &) const;
+ QModelIndex networkIndex(NetworkId networkId);
+ QModelIndex bufferIndex(BufferId bufferId);
+
+ const Network *networkByIndex(const QModelIndex &index) const;
+
+ BufferInfo::ActivityLevel bufferActivity(const BufferInfo &buffer) const;
+
+ //! Finds a buffer with a given name in a given network
+ /** This performs a linear search through all BufferItems, hence it is expensive.
+ * @param networkId The network which we search in
+ * @param bufferName The bufferName we look for
+ * @return The id of the buffer if found, an invalid one else
+ */
+ BufferId bufferId(NetworkId networkId, const QString &bufferName, Qt::CaseSensitivity cs = Qt::CaseInsensitive) const;
+
+ QString bufferName(BufferId bufferId) const;
+ BufferInfo::Type bufferType(BufferId bufferId) const;
+ BufferInfo bufferInfo(BufferId bufferId) const;
+ MsgId lastSeenMsgId(BufferId bufferId) const;
+ MsgId markerLineMsgId(BufferId bufferId) const;
+ NetworkId networkId(BufferId bufferId) const;
+ QString networkName(BufferId bufferId) const;
+
+ inline QList<BufferId> allBufferIds() const { return _bufferItemCache.keys(); }
+ QList<BufferId> allBufferIdsSorted() const;
+ void sortBufferIds(QList<BufferId> &bufferIds) const;