X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fnetworkmodel.h;h=07b219024ff1fc79efff9763849fc2c1408889df;hp=31e4dcaab07c55cd330d96e2d97c829651729755;hb=5159e200a1c4c0998f302ae7c57325ed322c1e85;hpb=197cf9c0d5e227dd475124515f6e6005cf87ac8e diff --git a/src/client/networkmodel.h b/src/client/networkmodel.h index 31e4dcaa..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: @@ -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);