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);
-
- void setLastMsgInsert(QDateTime msgDate);
- bool setLastSeen();
- QDateTime lastSeen();
+ //void updateActivityLevel(Buffer::ActivityLevel level);
+ void updateActivityLevel(const Message &msg);
+ bool isCurrentBuffer() const;
virtual QString toolTip(int column) const;
public slots:
private:
BufferInfo _bufferInfo;
Buffer::ActivityLevel _activity;
+ MsgId _lastSeenMsgId;
};
/*****************************************
Buffer::ActivityLevel bufferActivity(const BufferInfo &buffer) const;
+ QString bufferName(BufferId bufferId);
+ BufferInfo::Type bufferType(BufferId bufferId);
+ BufferInfo bufferInfo(BufferId bufferId);
+ MsgId lastSeenMsgId(BufferId bufferId);
+ NetworkId networkId(BufferId bufferId);
+ QString networkName(BufferId bufferId);
+
public slots:
void bufferUpdated(BufferInfo bufferInfo);
void removeBuffer(BufferId bufferId);
- void setBufferActivity(const BufferInfo &buffer, Buffer::ActivityLevel activity);
+ void setLastSeenMsgId(const BufferId &bufferId, const MsgId &msgId);
+ void setBufferActivity(const BufferId &bufferId, Buffer::ActivityLevel activity);
+ void updateBufferActivity(const Message &msg);
void networkRemoved(const NetworkId &networkId);
-
+
+private slots:
+ void checkForRemovedBuffers(const QModelIndex &parent, int start, int end);
+ void checkForNewBuffers(const QModelIndex &parent, int start, int end);
+
private:
int networkRow(NetworkId networkId);
NetworkItem *findNetworkItem(NetworkId networkId);
NetworkItem *networkItem(NetworkId networkId);
- BufferItem *findBufferItem(const BufferInfo &bufferInfo);
+ inline BufferItem *findBufferItem(const BufferInfo &bufferInfo) { return findBufferItem(bufferInfo.bufferId()); }
BufferItem *findBufferItem(BufferId bufferId);
BufferItem *bufferItem(const BufferInfo &bufferInfo);
+ QHash<BufferId, BufferItem *> _bufferItemCache;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(NetworkModel::itemTypes);