case NetworkModel::ItemTypeRole:
return NetworkModel::BufferItemType;
case NetworkModel::BufferIdRole:
- return QVariant::fromValue<BufferId>(bufferInfo().uid());
+ return qVariantFromValue(bufferInfo().uid());
case NetworkModel::NetworkIdRole:
- return QVariant::fromValue<NetworkId>(bufferInfo().networkId());
+ return qVariantFromValue(bufferInfo().networkId());
case NetworkModel::BufferTypeRole:
return int(bufferType());
case NetworkModel::ItemActiveRole:
void BufferItem::ircChannelDestroyed() {
emit dataChanged();
- for(int i = 0; i < childCount(); i++) {
- emit childDestroyed(i);
- removeChild(i);
- }
+ removeAllChilds();
}
QString BufferItem::bufferName() const {
}
void BufferItem::userModeChanged(IrcUser *ircUser) {
+ Q_ASSERT(_ircChannel);
+
+ UserCategoryItem *categoryItem;
+ int categoryId = UserCategoryItem::categoryFromModes(_ircChannel->userModes(ircUser));
+ if((categoryItem = qobject_cast<UserCategoryItem *>(childById(qHash(categoryId)))))
+ return; // already in the right category;
+
removeUserFromCategory(ircUser);
addUserToCategory(ircUser);
}
QVariant NetworkItem::data(int column, int role) const {
switch(role) {
case NetworkModel::NetworkIdRole:
- return QVariant::fromValue<NetworkId>(_networkId);
+ return qVariantFromValue(_networkId);
case NetworkModel::ItemTypeRole:
return NetworkModel::NetworkItemType;
case NetworkModel::ItemActiveRole:
: PropertyMapItem(QStringList() << "categoryId", parent),
_category(category)
{
- connect(this, SIGNAL(childDestroyed(int)),
+ connect(this, SIGNAL(childRemoved(int)),
this, SLOT(checkNoChilds()));
}