+class BufferItem;
+
+/*****************************************
+ * Network Items
+ *****************************************/
+class NetworkItem : public PropertyMapItem {
+ Q_OBJECT
+ Q_PROPERTY(QString networkName READ networkName)
+ Q_PROPERTY(QString currentServer READ currentServer)
+ Q_PROPERTY(int nickCount READ nickCount)
+
+public:
+ NetworkItem(const NetworkId &netid, AbstractTreeItem *parent = 0);
+
+ virtual quint64 id() const { return qHash(_networkId); }
+ virtual QVariant data(int column, int row) const;
+
+ inline bool isActive() const { return (bool)_network ? _network->isConnected() : false; }
+
+ inline const NetworkId &networkId() const { return _networkId; }
+ inline QString networkName() const { return (bool)_network ? _network->networkName() : QString(); }
+ inline QString currentServer() const { return (bool)_network ? _network->currentServer() : QString(); }
+ inline int nickCount() const { return (bool)_network ? _network->ircUsers().count() : 0; }
+
+ virtual QString toolTip(int column) const;
+
+ BufferItem *bufferItem(const BufferInfo &bufferInfo);
+
+public slots:
+ void setNetworkName(const QString &networkName);
+ void setCurrentServer(const QString &serverName);
+
+ void attachNetwork(Network *network);
+ void attachIrcChannel(IrcChannel *channel);
+
+private:
+ NetworkId _networkId;
+
+ QPointer<Network> _network;
+};