-QVariant BufferViewFilter::icon(const QModelIndex &index) const {
- if(!_showUserStateIcons || (config() && config()->disableDecoration()))
- return QVariant();
-
- if(index.column() != 0)
- return QVariant();
-
- QModelIndex source_index = mapToSource(index);
- NetworkModel::ItemType itemType = (NetworkModel::ItemType)sourceModel()->data(source_index, NetworkModel::ItemTypeRole).toInt();
- BufferInfo::Type bufferType = (BufferInfo::Type)sourceModel()->data(source_index, NetworkModel::BufferTypeRole).toInt();
- bool isActive = sourceModel()->data(source_index, NetworkModel::ItemActiveRole).toBool();
-
- if(itemType != NetworkModel::BufferItemType)
- return QVariant();
-
- switch(bufferType) {
- case BufferInfo::ChannelBuffer:
- if(isActive)
- return _channelJoinedIcon;
- else
- return _channelPartedIcon;
- case BufferInfo::QueryBuffer:
- if(!isActive)
- return _userOfflineIcon;
- if(sourceModel()->data(source_index, NetworkModel::UserAwayRole).toBool())
- return _userAwayIcon;
- else
- return _userOnlineIcon;
- default:
- return QVariant();
- }
-}
-