X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Fnickviewfilter.cpp;h=e4955ac5a32bc4f30f576eac3f2505387f5d0745;hb=38090a4af09e05763abf43bf95cd7d4696381a09;hp=993bac08a1d88a6e250388d915ddbcf84c8c7fcb;hpb=68efe6df6d72f1ac498d0594866455418552665d;p=quassel.git diff --git a/src/uisupport/nickviewfilter.cpp b/src/uisupport/nickviewfilter.cpp index 993bac08..e4955ac5 100644 --- a/src/uisupport/nickviewfilter.cpp +++ b/src/uisupport/nickviewfilter.cpp @@ -29,8 +29,9 @@ /****************************************************************************************** * NickViewFilter ******************************************************************************************/ -NickViewFilter::NickViewFilter(NetworkModel *parent) - : QSortFilterProxyModel(parent) +NickViewFilter::NickViewFilter(const BufferId &bufferId, NetworkModel *parent) + : QSortFilterProxyModel(parent), + _bufferId(bufferId) { setSourceModel(parent); setDynamicSortFilter(true); @@ -42,6 +43,12 @@ QVariant NickViewFilter::data(const QModelIndex &index, int role) const { return foreground(index); else return QSortFilterProxyModel::data(index, role); +// else { +// QVariant d = +// if(role == 0) +// qDebug() << index << role << d; +// return d; +// } } QVariant NickViewFilter::foreground(const QModelIndex &index) const { @@ -57,3 +64,13 @@ QVariant NickViewFilter::foreground(const QModelIndex &index) const { // FIXME:: make colors configurable; // FIXME: use the style interface instead of qsettings } + + +bool NickViewFilter::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const { + // root node, networkindexes, the bufferindex of the buffer this filter is active for and it's childs are accepted + if(!source_parent.isValid()) + return true; + + QModelIndex source_child = source_parent.child(source_row, 0); + return (sourceModel()->data(source_child, NetworkModel::BufferIdRole).value() == _bufferId); +}