48 const auto act = menu->addAction (var.
Icon_, var.
Name_);
49 new Util::SlotClosure<Util::DeleteLaterPolicy>
51 [var, actor] ()
mutable { actor (var); },
53 SIGNAL (triggered ()),
66 "x-leechcraft/data-filter-request");
69 auto ii = qobject_cast<
IInfo*> (plugin);
81 entity.Additional_ [
"DataFilter"] = var.
ID_;
84 ChosenPlugin_ = qobject_cast<
IInfo*> (plugin)->GetUniqueID ();
85 ChosenVariant_ = var.
ID_;
88 if (vars.size () == 1)
89 AddDatafilterMenuItem (vars.value (0), menu, actor);
92 auto searchMenu = menu->addMenu (ii->GetIcon (), idf->GetFilterVerb ());
93 for (
const auto& var : vars)
94 AddDatafilterMenuItem (var, searchMenu, actor);
101 return ChosenPlugin_;
106 return ChosenVariant_;
Proxy to core entity manager.
virtual QList< QObject * > GetPossibleHandlers(const LC::Entity &entity)=0
Queries what plugins can handle the given entity.
virtual QList< FilterVariant > GetFilterVariants(const QVariant &data) const =0
Returns the list of concrete data filter variants.
Base interface for data filter plugins.
virtual bool HandleEntity(LC::Entity entity, QObject *desired=nullptr)=0
Handles the given entity.
QString Name_
The human-readable name of the filter variant.
Entity MakeEntity(const QVariant &entity, const QString &location, TaskParameters tp, const QString &mime)
QIcon Icon_
The icon representing the filter variant.
QByteArray ID_
The ID of this filter variant.
Describes a single filter variant supported by this data filter.
Required interface for every plugin.