33 #include <QStringList> 34 #include <QObjectList> 62 virtual QObjectList GetAllPlugins ()
const = 0;
74 QObjectList
Filter (
const QObjectList& source)
const 77 for (
const auto sp : source)
78 if (qobject_cast<T> (sp))
95 return Filter<T> (GetAllPlugins ());
113 for (
const auto root : GetAllCastableRoots<T> ())
114 result << qobject_cast<T> (root);
126 virtual QObject* GetPluginByID (
const QByteArray&
id)
const = 0;
144 virtual QString GetPluginLibraryPath (
const QObject*
object)
const = 0;
157 virtual void InjectPlugin (QObject *
object) = 0;
174 virtual void ReleasePlugin (QObject *
object) = 0;
183 virtual QObject* GetQObject () = 0;
192 virtual void OpenSettings (QObject *plugin) = 0;
213 Q_DECLARE_INTERFACE (
IPluginsManager,
"org.Deviant.LeechCraft.IPluginsManager/1.0")
QObjectList GetAllCastableRoots() const
This is the same as Filter<T> (GetAllPlugins()).
std::shared_ptr< ILoadProgressReporter > ILoadProgressReporter_ptr
This interface is used to represent LeechCraft's global plugin manager.
QList< T > GetAllCastableTo() const
Similar to GetAlLCastableRoots() and provided for convenience.
QObjectList Filter(const QObjectList &source) const
Filters the given list of plugins and returns only those that can be casted to the given template typ...
virtual ~IPluginsManager()
Interface for reporting progress of some long-running operation during load time. ...