BufferViewOverlay now correctly respects filtering of buffer types
[quassel.git] / src / client / bufferviewoverlay.h
index 483a330..204e553 100644 (file)
@@ -34,17 +34,18 @@ class BufferViewOverlay : public QObject {
 public:
   BufferViewOverlay(QObject *parent = 0);
 
-  inline bool allNetworks() const { return _networkIds.contains(NetworkId()); }
+  inline const QSet<int> &bufferViewIds() { return _bufferViewIds; }
+  bool allNetworks();
 
-  inline const QSet<NetworkId> &networkIds() const { return _networkIds; }
-  inline const QSet<BufferId> &bufferIds() const { return _buffers; }
-  inline const QSet<BufferId> &removedBufferIds() const { return _removedBuffers; }
-  inline const QSet<BufferId> &tempRemovedBufferIds() const { return _tempRemovedBuffers; }
+  const QSet<NetworkId> &networkIds();
+  const QSet<BufferId> &bufferIds();
+  const QSet<BufferId> &removedBufferIds();
+  const QSet<BufferId> &tempRemovedBufferIds();
 
-  inline bool addBuffersAutomatically() const { return _addBuffersAutomatically; }
-  inline bool hideInactiveBuffers() const { return _hideInactiveBuffers; }
-  inline int allowedBufferTypes() const { return _allowedBufferTypes; }
-  inline int minimumActivity() const { return _minimumActivity; }
+  int allowedBufferTypes();
+  int minimumActivity();
+
+  inline bool isInitialized() { return _uninitializedViewCount == 0; }
 
 public slots:
   void addView(int viewId);
@@ -55,6 +56,7 @@ public slots:
 
 signals:
   void hasChanged();
+  void initDone();
 
 protected:
   virtual void customEvent(QEvent *event);
@@ -65,14 +67,14 @@ private slots:
 
 private:
   void updateHelper();
+  QSet<BufferId> filterBuffersByConfig(const QList<BufferId> &buffers, const BufferViewConfig *config);
+
   bool _aboutToUpdate;
 
   QSet<int> _bufferViewIds;
+  int _uninitializedViewCount;
 
   QSet<NetworkId> _networkIds;
-
-  bool _addBuffersAutomatically;
-  bool _hideInactiveBuffers;
   int _allowedBufferTypes;
   int _minimumActivity;