projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
properly handling disconnects - this might even fix an antique bug with duplicate...
[quassel.git]
/
src
/
client
/
messagefilter.cpp
diff --git
a/src/client/messagefilter.cpp
b/src/client/messagefilter.cpp
index
0c35ee9
..
c1253da
100644
(file)
--- a/
src/client/messagefilter.cpp
+++ b/
src/client/messagefilter.cpp
@@
-20,17
+20,41
@@
#include "messagefilter.h"
#include "messagefilter.h"
+MessageFilter::MessageFilter(QAbstractItemModel *source, QObject *parent)
+ : QSortFilterProxyModel(parent)
+{
+ setSourceModel(source);
+}
+
MessageFilter::MessageFilter(MessageModel *source, const QList<BufferId> &buffers, QObject *parent)
: QSortFilterProxyModel(parent),
MessageFilter::MessageFilter(MessageModel *source, const QList<BufferId> &buffers, QObject *parent)
: QSortFilterProxyModel(parent),
- _
bufferList(buffers
)
+ _
validBuffers(buffers.toSet()
)
{
setSourceModel(source);
{
setSourceModel(source);
+}
+
+QString MessageFilter::idString() const {
+ if(_validBuffers.isEmpty())
+ return "*";
+ QList<BufferId> bufferIds = _validBuffers.toList();;
+ qSort(bufferIds);
+
+ QStringList bufferIdStrings;
+ foreach(BufferId id, bufferIds)
+ bufferIdStrings << QString::number(id.toInt());
+
+ return bufferIdStrings.join("|");
}
bool MessageFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const {
Q_UNUSED(sourceParent);
}
bool MessageFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const {
Q_UNUSED(sourceParent);
- if(_bufferList.isEmpty()) return true;
+ if(_validBuffers.isEmpty())
+ return true;
+
BufferId id = sourceModel()->data(sourceModel()->index(sourceRow, 0), MessageModel::BufferIdRole).value<BufferId>();
BufferId id = sourceModel()->data(sourceModel()->index(sourceRow, 0), MessageModel::BufferIdRole).value<BufferId>();
- return _bufferList.contains(id);
+ if(!id.isValid()) {
+ return true;
+ }
+ return _validBuffers.contains(id);
}
}