-QVariant BufferItem::data(int column, int role) const {
- switch(role) {
- case NetworkModel::ItemTypeRole:
- return NetworkModel::BufferItemType;
- case NetworkModel::BufferIdRole:
- return qVariantFromValue(bufferInfo().bufferId());
- case NetworkModel::NetworkIdRole:
- return qVariantFromValue(bufferInfo().networkId());
- case NetworkModel::BufferInfoRole:
- return qVariantFromValue(bufferInfo());
- case NetworkModel::BufferTypeRole:
- return int(bufferType());
- case NetworkModel::ItemActiveRole:
- return isActive();
- case NetworkModel::BufferActivityRole:
- return (int)activityLevel();
- default:
- return PropertyMapItem::data(column, role);
- }
-}
-
-bool BufferItem::setData(int column, const QVariant &value, int role) {
- switch(role) {
- case NetworkModel::BufferActivityRole:
- return setActivityLevel((Buffer::ActivityLevel)value.toInt());
- default:
- return PropertyMapItem::setData(column, value, role);
- }
- return true;
-}
-
-
-void BufferItem::attachIrcChannel(IrcChannel *ircChannel) {
- if(!ircChannel)
- return;
-
- _ircChannel = ircChannel;
-
- connect(ircChannel, SIGNAL(topicSet(QString)),
- this, SLOT(setTopic(QString)));
- connect(ircChannel, SIGNAL(ircUsersJoined(QList<IrcUser *>)),
- this, SLOT(join(QList<IrcUser *>)));
- connect(ircChannel, SIGNAL(ircUserParted(IrcUser *)),
- this, SLOT(part(IrcUser *)));
- connect(ircChannel, SIGNAL(destroyed()),
- this, SLOT(ircChannelDestroyed()));
- connect(ircChannel, SIGNAL(ircUserModesSet(IrcUser *, QString)),
- this, SLOT(userModeChanged(IrcUser *)));
- connect(ircChannel, SIGNAL(ircUserModeAdded(IrcUser *, QString)),
- this, SLOT(userModeChanged(IrcUser *)));
- connect(ircChannel, SIGNAL(ircUserModeRemoved(IrcUser *, QString)),
- this, SLOT(userModeChanged(IrcUser *)));
-
- if(!ircChannel->ircUsers().isEmpty()) {
- qWarning() << "Channel" << ircChannel->name() << "has already users which is quite surprising :)";
- join(ircChannel->ircUsers());
- }
-
- emit dataChanged();
-}
-
-void BufferItem::ircChannelDestroyed() {
- emit dataChanged();
- removeAllChilds();
-}
-
-QString BufferItem::bufferName() const {
- if(bufferType() == BufferInfo::StatusBuffer)
- return tr("Status Buffer");
- else
- return _bufferName;
-}
-
-void BufferItem::setBufferName(const QString &name) {
- _bufferName = name;
- // as long as we need those bufferInfos, we have to update that one aswell.
- // pretty ugly though :/
- _bufferInfo = BufferInfo(_bufferInfo.bufferId(), _bufferInfo.networkId(), _bufferInfo.type(), _bufferInfo.groupId(), name);
- emit dataChanged(0);
-}
-
-QString BufferItem::topic() const {
- if(_ircChannel)
- return _ircChannel->topic();
- else
- return QString();
-}
-
-void BufferItem::ircUserDestroyed() {
- // PRIVATE
- IrcUser *ircUser = static_cast<IrcUser *>(sender());
- removeUserFromCategory(ircUser);
- emit dataChanged(2);
-}
-
-int BufferItem::nickCount() const {
- if(_ircChannel)
- return _ircChannel->ircUsers().count();
- else
- return 0;