X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fnetworkmodel.h;h=07b219024ff1fc79efff9763849fc2c1408889df;hp=08ae4af0aa8c96926c9743fc34ab35fd3fd8a91f;hb=761a147545864782a79570dbaf8f4cc25de7423d;hpb=ef97dad874c30d7e0586b3dcb98eed15d8987382 diff --git a/src/client/networkmodel.h b/src/client/networkmodel.h index 08ae4af0..07b21902 100644 --- a/src/client/networkmodel.h +++ b/src/client/networkmodel.h @@ -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: @@ -240,7 +241,7 @@ public: virtual QString toolTip(int column) const; private slots: - void ircUserDestroyed() { parent()->removeChild(this); } + inline void ircUserDestroyed() { parent()->removeChild(this); } private: QPointer _ircUser; @@ -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 _bufferItemCache; }; Q_DECLARE_OPERATORS_FOR_FLAGS(NetworkModel::itemTypes);