- if(Client::bufferViewManager()) {
- BufferViewConfig *config = 0;
- QSet<int>::const_iterator viewIter;
- for(viewIter = _bufferViewIds.constBegin(); viewIter != _bufferViewIds.constEnd(); viewIter++) {
- config = Client::bufferViewManager()->bufferViewConfig(*viewIter);
- if(!config)
- continue;
+void BufferViewOverlay::updateHelper()
+{
+ if (!_aboutToUpdate)
+ return;
+
+ bool changed = false;
+
+ int allowedBufferTypes = 0;
+ int minimumActivity = -1;
+ QSet<NetworkId> networkIds;
+ QSet<BufferId> buffers;
+ QSet<BufferId> removedBuffers;
+ QSet<BufferId> tempRemovedBuffers;
+
+ if (Client::bufferViewManager()) {
+ BufferViewConfig *config = 0;
+ QSet<int>::const_iterator viewIter;
+ for (viewIter = _bufferViewIds.constBegin(); viewIter != _bufferViewIds.constEnd(); ++viewIter) {
+ config = Client::bufferViewManager()->bufferViewConfig(*viewIter);
+ if (!config)
+ continue;
+
+ allowedBufferTypes |= config->allowedBufferTypes();
+ if (minimumActivity == -1 || config->minimumActivity() < minimumActivity)
+ minimumActivity = config->minimumActivity();
+
+ networkIds << config->networkId();
+
+ // we have to apply several filters before we can add a buffer to a category (visible, removed, ...)
+ buffers += filterBuffersByConfig(config->bufferList(), config);
+ tempRemovedBuffers += filterBuffersByConfig(config->temporarilyRemovedBuffers().toList(), config);
+ removedBuffers += config->removedBuffers();
+ }