+ case BufferTreeModel::BufferUidRole:
+ return buf->bufferInfo().uid();
+ case BufferTreeModel::NetworkIdRole:
+ return buf->bufferInfo().networkId();
+ case BufferTreeModel::BufferTypeRole:
+ return int(buf->bufferType());
+ case BufferTreeModel::BufferActiveRole:
+ return buf->isActive();
+ case Qt::ForegroundRole:
+ return foreground(column);
+ default:
+ return PropertyMapItem::data(column, role);
+ }
+}
+
+void BufferTreeItem::attachIrcChannel(IrcChannel *ircChannel) {
+ if(!ircChannel)
+ return;
+
+ _ircChannel = ircChannel;
+
+ connect(ircChannel, SIGNAL(topicSet(QString)),
+ this, SLOT(setTopic(QString)));
+ connect(ircChannel, SIGNAL(ircUserJoined(IrcUser *)),
+ this, SLOT(join(IrcUser *)));
+ connect(ircChannel, SIGNAL(ircUserParted(IrcUser *)),
+ this, SLOT(part(IrcUser *)));
+}
+
+QString BufferTreeItem::bufferName() const {
+ return buf->name();
+}
+
+QString BufferTreeItem::topic() const {
+ if(_ircChannel)
+ return _ircChannel->topic();
+ else
+ return QString();
+}
+
+int BufferTreeItem::nickCount() const {
+ if(_ircChannel)
+ return _ircChannel->ircUsers().count();
+ else
+ return 0;
+}
+
+void BufferTreeItem::setTopic(const QString &topic) {
+ Q_UNUSED(topic);
+ emit dataChanged(1);
+}
+
+void BufferTreeItem::join(IrcUser *ircUser) {
+ Q_UNUSED(ircUser);
+ emit dataChanged(2);
+}
+
+void BufferTreeItem::part(IrcUser *ircUser) {
+ Q_UNUSED(ircUser);
+ emit dataChanged(2);
+}
+
+/*****************************************
+* Network Items
+*****************************************/
+NetworkTreeItem::NetworkTreeItem(const uint &netid, const QString &network, AbstractTreeItem *parent)
+ : PropertyMapItem(QList<QString>() << "networkName" << "currentServer" << "nickCount", parent),
+ _networkId(netid),
+ _networkName(network)
+{
+ setFlags(Qt::ItemIsEnabled);
+}
+
+QVariant NetworkTreeItem::data(int column, int role) const {
+ switch(role) {
+ case BufferTreeModel::NetworkIdRole:
+ return _networkId;
+ case BufferTreeModel::ItemTypeRole:
+ return BufferTreeModel::NetworkItem;
+ default:
+ return PropertyMapItem::data(column, role);