bool BufferFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const { if (m_status == 0 && m_filter.isEmpty()) return true; QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent); IrcBuffer* buffer = index.data(Irc::BufferRole).value<IrcBuffer*>(); if (buffer && !buffer->isSticky()) { if (!m_filter.isEmpty() && !buffer->title().contains(m_filter, Qt::CaseInsensitive)) return false; if (m_status > 0) { MessageModel* model = m_storage->model(buffer); if (model) { if (m_status == 1 && model->badge() <= 0) return false; if (m_status == 2 && model->activeHighlights() <= 0) return false; } } } return true; }