if(!(config()->allowedBufferTypes() & (BufferInfo::Type)source_bufferIndex.data(NetworkModel::BufferTypeRole).toInt()))
return false;
- if(config()->hideInactiveBuffers() && !source_bufferIndex.data(NetworkModel::ItemActiveRole).toBool())
+ // the following dynamic filters may not trigger if the buffer is currently selected.
+ if(bufferId == Client::bufferModel()->standardSelectionModel()->currentIndex().data(NetworkModel::BufferIdRole).value<BufferId>())
+ return true;
+
+ if(config()->hideInactiveBuffers() && !source_bufferIndex.data(NetworkModel::ItemActiveRole).toBool() && activityLevel <= BufferInfo::OtherActivity)
return false;
- if(config()->minimumActivity() > activityLevel) {
- if(bufferId != Client::bufferModel()->standardSelectionModel()->currentIndex().data(NetworkModel::BufferIdRole).value<BufferId>())
- return false;
- }
+ if(config()->minimumActivity() > activityLevel)
+ return false;
return true;
}
}
QVariant BufferViewFilter::foreground(const QModelIndex &index) const {
- if(!index.data(NetworkModel::ItemActiveRole).toBool())
- return _FgColorInactiveActivity;
-
BufferInfo::ActivityLevel activity = (BufferInfo::ActivityLevel)index.data(NetworkModel::BufferActivityRole).toInt();
if(activity & BufferInfo::Highlight)
if(activity & BufferInfo::OtherActivity)
return _FgColorOtherActivity;
+ if(!index.data(NetworkModel::ItemActiveRole).toBool())
+ return _FgColorInactiveActivity;
+
return _FgColorNoActivity;
}