OverlayFilter no longer filters whole networks unnecessarily out
authorMarcus Eggenberger <egs@quassel-irc.org>
Thu, 21 May 2009 14:48:35 +0000 (16:48 +0200)
committerMarcus Eggenberger <egs@quassel-irc.org>
Thu, 21 May 2009 20:01:12 +0000 (22:01 +0200)
src/uisupport/bufferviewoverlayfilter.cpp

index 97a3246..992ab6c 100644 (file)
@@ -69,9 +69,15 @@ bool BufferViewOverlayFilter::filterAcceptsRow(int source_row, const QModelIndex
     return false;
   }
 
     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;
     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)
 
   int activityLevel = sourceModel()->data(source_bufferIndex, NetworkModel::BufferActivityRole).toInt();
   if(_overlay->minimumActivity() > activityLevel)