#include <QSortFilterProxyModel>
+#include "bufferinfo.h"
#include "messagemodel.h"
#include "types.h"
class MessageFilter : public QSortFilterProxyModel {
Q_OBJECT
- protected:
- MessageFilter(QAbstractItemModel *source, QObject *parent = 0);
+protected:
+ MessageFilter(QAbstractItemModel *source, QObject *parent = 0);
- public:
- MessageFilter(MessageModel *, const QList<BufferId> &buffers = QList<BufferId>(), QObject *parent = 0);
+public:
+ MessageFilter(MessageModel *, const QList<BufferId> &buffers = QList<BufferId>(), QObject *parent = 0);
- virtual bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
- virtual QString idString() const;
- inline bool isSingleBufferFilter() const { return _bufferList.count() == 1; }
-
- private:
- QList<BufferId> _bufferList;
+ virtual bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
+ virtual QString idString() const;
+ inline bool isSingleBufferFilter() const { return _validBuffers.count() == 1; }
+ BufferId singleBufferId() const { return *(_validBuffers.constBegin()); }
+ inline bool containsBuffer(const BufferId &id) const { return _validBuffers.contains(id); }
+
+public slots:
+ void messageTypeFilterChanged();
+ void requestBacklog();
+
+protected:
+ const QString &bufferName() const;
+ BufferInfo::Type bufferType() const;
+
+private:
+ void init();
+
+ QSet<BufferId> _validBuffers;
+ QSet<uint> _filteredQuitMsgs;
+ int _messageTypeFilter;
+
+ QString _bufferName;
+ BufferInfo::Type _bufferType;
};
#endif