+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);
+ if(sourceModel()->data(index, NetworkModel::BufferTypeRole).toInt() != BufferInfo::QueryBuffer)
+ return QVariant();
+
+ if(!sourceModel()->data(index, NetworkModel::ItemActiveRole).toBool())
+ return _userOfflineIcon;
+
+ if(sourceModel()->data(index, NetworkModel::UserAwayRole).toBool())
+ return _userAwayIcon;
+ else
+ return _userOnlineIcon;
+
+ return QVariant();
+}
+
+QVariant BufferViewFilter::checkedState(const QModelIndex &index) const {
+ if(!_editMode || !config())
+ return QVariant();
+
+ QModelIndex source_index = mapToSource(index);
+ if(source_index == QModelIndex() || sourceModel()->data(source_index, NetworkModel::ItemTypeRole) == NetworkModel::NetworkItemType)
+ return QVariant();
+
+ BufferId bufferId = sourceModel()->data(source_index, NetworkModel::BufferIdRole).value<BufferId>();
+ if(_toAdd.contains(bufferId))
+ return Qt::Checked;
+
+ if(_toTempRemove.contains(bufferId))
+ return Qt::PartiallyChecked;
+
+ if(_toRemove.contains(bufferId))
+ return Qt::Unchecked;