#include <QtCore>
#include "treemodel.h"
-#include "buffer.h"
+#include "bufferinfo.h"
#include <QPointer>
#include "clientsettings.h"
#include "ircchannel.h"
#include "ircuser.h"
+#include "message.h"
#include "network.h"
class MappedSelectionModel;
virtual inline bool isActive() const { return qobject_cast<NetworkItem *>(parent())->isActive(); }
inline const MsgId &lastSeenMsgId() const { return _lastSeenMsgId; }
- inline void setLastSeenMsgId(const MsgId &msgId) { _lastSeenMsgId = msgId; }
- inline Buffer::ActivityLevel activityLevel() const { return _activity; }
- void setActivityLevel(Buffer::ActivityLevel level);
- //void updateActivityLevel(Buffer::ActivityLevel level);
+ inline const MsgId &lastSeenMarkerMsgId() const { return _lastSeenMarkerMsgId; }
+ void setLastSeenMsgId(const MsgId &msgId);
+ inline BufferInfo::ActivityLevel activityLevel() const { return _activity; }
+ void setActivityLevel(BufferInfo::ActivityLevel level);
+ void clearActivityLevel();
void updateActivityLevel(const Message &msg);
bool isCurrentBuffer() const;
private:
BufferInfo _bufferInfo;
- Buffer::ActivityLevel _activity;
+ BufferInfo::ActivityLevel _activity;
MsgId _lastSeenMsgId;
+ MsgId _lastSeenMarkerMsgId;
};
/*****************************************
UserCategoryItemType = 0x04,
IrcUserItemType = 0x08
};
- Q_DECLARE_FLAGS(itemTypes, itemType);
+ Q_DECLARE_FLAGS(itemTypes, itemType)
NetworkModel(QObject *parent = 0);
static QList<QVariant> defaultHeader();
const Network *networkByIndex(const QModelIndex &index) const;
- Buffer::ActivityLevel bufferActivity(const BufferInfo &buffer) const;
+ BufferInfo::ActivityLevel bufferActivity(const BufferInfo &buffer) const;
QString bufferName(BufferId bufferId);
+ BufferInfo::Type bufferType(BufferId bufferId);
+ BufferInfo bufferInfo(BufferId bufferId);
MsgId lastSeenMsgId(BufferId bufferId);
+ MsgId lastSeenMarkerMsgId(BufferId bufferId);
NetworkId networkId(BufferId bufferId);
QString networkName(BufferId bufferId);
- BufferInfo::Type bufferType(BufferId bufferId);
+
+ inline QList<BufferId> allBufferIds() const { return _bufferItemCache.keys(); }
public slots:
void bufferUpdated(BufferInfo bufferInfo);
void removeBuffer(BufferId bufferId);
void setLastSeenMsgId(const BufferId &bufferId, const MsgId &msgId);
- void setBufferActivity(const BufferId &bufferId, Buffer::ActivityLevel activity);
+ void setBufferActivity(const BufferId &bufferId, BufferInfo::ActivityLevel activity);
+ void clearBufferActivity(const BufferId &bufferId);
void updateBufferActivity(const Message &msg);
void networkRemoved(const NetworkId &networkId);
+signals:
+ void setLastSeenMsg(BufferId bufferId, MsgId msgId);
+
private slots:
void checkForRemovedBuffers(const QModelIndex &parent, int start, int end);
void checkForNewBuffers(const QModelIndex &parent, int start, int end);
QHash<BufferId, BufferItem *> _bufferItemCache;
};
-Q_DECLARE_OPERATORS_FOR_FLAGS(NetworkModel::itemTypes);
+Q_DECLARE_OPERATORS_FOR_FLAGS(NetworkModel::itemTypes)
#endif // NETWORKMODEL_H