X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fbufferviewfilter.cpp;h=a14ab031a2003af34a3027c7589d05e9eb8e80e0;hp=a1744f6279b401aaa77a1d101a49c64e869765b4;hb=9de382b2b2a352bad4a076249f07ae84da94c420;hpb=8db1c0298b0b9baf3af072a5ef368b2f2d14169d diff --git a/src/uisupport/bufferviewfilter.cpp b/src/uisupport/bufferviewfilter.cpp index a1744f62..a14ab031 100644 --- a/src/uisupport/bufferviewfilter.cpp +++ b/src/uisupport/bufferviewfilter.cpp @@ -22,6 +22,7 @@ #include +#include "buffermodel.h" #include "client.h" #include "networkmodel.h" @@ -146,16 +147,17 @@ void BufferViewFilter::removeBuffer(const QModelIndex &index) { bool BufferViewFilter::filterAcceptBuffer(const QModelIndex &source_bufferIndex) const { if(!_config) return true; - + if(!(_config->allowedBufferTypes() & (BufferInfo::Type)source_bufferIndex.data(NetworkModel::BufferTypeRole).toInt())) return false; if(_config->hideInactiveBuffers() && !source_bufferIndex.data(NetworkModel::ItemActiveRole).toBool()) return false; - // FIXME: this can result in bad loops :( - // if(_config->minimumActivity() > source_bufferIndex.data(NetworkModel::BufferActivityRole).toInt()) - // return false; + if(_config->minimumActivity() > source_bufferIndex.data(NetworkModel::BufferActivityRole).toInt()) { + if(!Client::bufferModel()->standardSelectionModel()->isSelected(source_bufferIndex)) + return false; + } BufferId bufferId = sourceModel()->data(source_bufferIndex, NetworkModel::BufferIdRole).value(); return _config->bufferList().contains(bufferId);