10 #include <QRegularExpression> 11 #include <QStringList> 26 for (
const auto& s :
string.split (Separator_, Qt::SkipEmptyParts))
27 FilterTags_ << s.trimmed ();
40 Separator_ = separator;
61 return FilterTagsMode (sourceRow, index);
67 throw std::runtime_error {
"no tags role for the default TagsFilterModel::GetTagsForIndex() implementation" };
69 const auto model = sourceModel ();
73 return model->index (row, 0).data (TagsRole_).toStringList ();
76 bool TagsFilterModel::FilterTagsMode (
int sourceRow,
const QModelIndex&)
const 78 if (FilterTags_.isEmpty ())
82 const auto hasTag = [&] (
const QString& tag) {
return itemTags.contains (tag); };
86 return std::ranges::any_of (FilterTags_, hasTag);
88 return std::ranges::all_of (FilterTags_, hasTag);
QString GetDefaultTagsSeparator()
bool filterAcceptsRow(int row, const QModelIndex &parent) const override
virtual void SetFilterString(const QString &)