internal stuff only: added accessors for bufferName, networkId, networkName and buffe...
[quassel.git] / src / client / networkmodel.h
index 31e4dca..07b2190 100644 (file)
@@ -148,7 +148,8 @@ class QueryBufferItem : public BufferItem {
 public:
   QueryBufferItem(const BufferInfo &bufferInfo, NetworkItem *parent);
 
-  virtual bool isActive() const;
+  virtual QVariant data(int column, int role) const;
+  virtual inline bool isActive() const { return (bool)_ircUser; }
   virtual QString toolTip(int column) const;
 
 public slots:
@@ -261,7 +262,8 @@ public:
     BufferIdRole,
     NetworkIdRole,
     BufferInfoRole,
-    ItemTypeRole
+    ItemTypeRole,
+    UserAwayRole
   };
 
   enum itemType {
@@ -293,12 +295,21 @@ public:
 
   Buffer::ActivityLevel bufferActivity(const BufferInfo &buffer) const;
 
+  QString bufferName(BufferId bufferId);
+  NetworkId networkId(BufferId bufferId);
+  QString networkName(BufferId bufferId);
+  BufferInfo::Type bufferType(BufferId bufferId);
+
 public slots:
   void bufferUpdated(BufferInfo bufferInfo);
   void removeBuffer(BufferId bufferId);
   void setBufferActivity(const BufferInfo &buffer, Buffer::ActivityLevel activity);
   void networkRemoved(const NetworkId &networkId);
-  
+
+private slots:
+  void checkForRemovedBuffers(const QModelIndex &parent, int start, int end);
+  void checkForNewBuffers(const QModelIndex &parent, int start, int end);
+
 private:
   int networkRow(NetworkId networkId);
   NetworkItem *findNetworkItem(NetworkId networkId);
@@ -307,6 +318,7 @@ private:
   BufferItem *findBufferItem(BufferId bufferId);
   BufferItem *bufferItem(const BufferInfo &bufferInfo);
 
+  QHash<BufferId, BufferItem *> _bufferItemCache;
 };
 Q_DECLARE_OPERATORS_FOR_FLAGS(NetworkModel::itemTypes);