12 #include <QStringList>
13 #include <QObjectList>
43 virtual QObjectList GetAllPlugins ()
const = 0;
55 QObjectList
Filter (
const QObjectList& source)
const
58 for (
const auto sp : source)
59 if (qobject_cast<T> (sp))
76 return Filter<T> (GetAllPlugins ());
94 for (
const auto root : GetAllCastableRoots<T> ())
95 result << qobject_cast<T> (root);
107 virtual QObject* GetPluginByID (
const QByteArray&
id)
const = 0;
125 virtual QString GetPluginLibraryPath (
const QObject*
object)
const = 0;
138 virtual void InjectPlugin (QObject *
object) = 0;
155 virtual void ReleasePlugin (QObject *
object) = 0;
164 virtual QObject* GetQObject () = 0;
173 virtual void OpenSettings (QObject *plugin) = 0;
193 virtual QIcon GetPluginIcon (QObject*) = 0;
196 Q_DECLARE_INTERFACE (
IPluginsManager,
"org.Deviant.LeechCraft.IPluginsManager/1.0")