BufferViewOverlay now correctly respects filtering of buffer types
[quassel.git] / src / uisupport / bufferviewoverlayfilter.cpp
index 97a3246..4309ee9 100644 (file)
@@ -69,18 +69,20 @@ bool BufferViewOverlayFilter::filterAcceptsRow(int source_row, const QModelIndex
     return false;
   }
 
-  NetworkId networkId =  sourceModel()->data(source_bufferIndex, NetworkModel::NetworkIdRole).value<NetworkId>();
-  if(!_overlay->networkIds().contains(networkId) && ! _overlay->allNetworks())
+  NetworkModel::ItemType itemType = (NetworkModel::ItemType)sourceModel()->data(source_bufferIndex, NetworkModel::ItemTypeRole).toInt();
+
+  NetworkId networkId = sourceModel()->data(source_bufferIndex, NetworkModel::NetworkIdRole).value<NetworkId>();
+  if(!_overlay->networkIds().contains(networkId) && ! _overlay->allNetworks()) {
     return false;
+  } else if(itemType == NetworkModel::NetworkItemType) {
+    // network items don't need further checks.
+    return true;
+  }
 
   int activityLevel = sourceModel()->data(source_bufferIndex, NetworkModel::BufferActivityRole).toInt();
   if(_overlay->minimumActivity() > activityLevel)
     return false;
 
-  bool isActive = sourceModel()->data(source_bufferIndex, NetworkModel::ItemActiveRole).toBool();
-  if(_overlay->hideInactiveBuffers() && !isActive && activityLevel <= BufferInfo::OtherActivity)
-    return false;
-
   int bufferType = sourceModel()->data(source_bufferIndex, NetworkModel::BufferTypeRole).toInt();
   if(!(_overlay->allowedBufferTypes() & bufferType))
     return false;
@@ -98,6 +100,7 @@ bool BufferViewOverlayFilter::filterAcceptsRow(int source_row, const QModelIndex
     return false;
 
   // the buffer is not known to us
-  return _overlay->addBuffersAutomatically();
+  qDebug() << "BufferViewOverlayFilter::filterAcceptsRow()" << bufferId << "is unknown!";
+  return false;
 }