+NetworkItem::NetworkItem(const uint &netid, const QString &network, AbstractTreeItem *parent)
+ : PropertyMapItem(QList<QString>() << "networkName" << "currentServer" << "nickCount", parent),
+ _networkId(netid),
+ _networkName(network)
+{
+ setFlags(Qt::ItemIsEnabled);
+}
+
+QVariant NetworkItem::data(int column, int role) const {
+ switch(role) {
+ case NetworkModel::NetworkIdRole:
+ return _networkId;
+ case NetworkModel::ItemTypeRole:
+ return NetworkModel::NetworkItemType;
+ default:
+ return PropertyMapItem::data(column, role);
+ }
+}
+
+quint64 NetworkItem::id() const {
+ return _networkId;
+}
+
+QString NetworkItem::networkName() const {
+ if(_networkInfo)
+ return _networkInfo->networkName();
+ else
+ return _networkName;
+}
+
+QString NetworkItem::currentServer() const {
+ if(_networkInfo)
+ return _networkInfo->currentServer();
+ else
+ return QString();
+}
+
+int NetworkItem::nickCount() const {
+ BufferItem *bufferItem;
+ int count = 0;
+ for(int i = 0; i < childCount(); i++) {
+ bufferItem = qobject_cast<BufferItem *>(child(i));
+ if(!bufferItem)
+ continue;
+ count += bufferItem->nickCount();
+ }
+ return count;
+}
+
+void NetworkItem::attachNetworkInfo(NetworkInfo *networkInfo) {
+ if(!networkInfo)
+ return;
+
+ _networkInfo = networkInfo;
+
+ connect(networkInfo, SIGNAL(networkNameSet(QString)),
+ this, SLOT(setNetworkName(QString)));
+ connect(networkInfo, SIGNAL(currentServerSet(QString)),
+ this, SLOT(setCurrentServer(QString)));
+ connect(networkInfo, SIGNAL(ircChannelAdded(QString)),
+ this, SLOT(attachIrcChannel(QString)));
+ // FIXME: connect this and that...