+ }
+}
+
+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();
+ }