+class BufferItem;
+class StatusBufferItem;
+
+/*****************************************
+ * 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 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 *findBufferItem(BufferId bufferId);
+ inline BufferItem *findBufferItem(const BufferInfo &bufferInfo) { return findBufferItem(bufferInfo.bufferId()); }
+ BufferItem *bufferItem(const BufferInfo &bufferInfo);
+ inline StatusBufferItem *statusBufferItem() const { return _statusBufferItem; }
+
+public slots:
+ void setNetworkName(const QString &networkName);
+ void setCurrentServer(const QString &serverName);
+
+ void attachNetwork(Network *network);
+ void attachIrcChannel(IrcChannel *channel);
+ void attachIrcUser(IrcUser *ircUser);
+
+signals:
+ void networkDataChanged(int column = -1);
+
+private slots:
+ void onBeginRemoveChilds(int start, int end);