digiKam
Loading...
Searching...
No Matches
dpluginloader.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2018-07-30
7 * Description : manager to load external plugins at run-time
8 *
9 * SPDX-FileCopyrightText: 2018-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QObject>
20#include <QList>
21
22// Local includes
23
24#include "digikam_export.h"
25#include "dinfointerface.h"
26#include "dplugin.h"
27#include "dpluginaction.h"
28#include "dimgloadersettings.h"
29
30namespace Digikam
31{
32
42class DIGIKAM_EXPORT DPluginLoader : public QObject
43{
44 Q_OBJECT
45
46 public:
47
52 static DPluginLoader* instance();
53
57 QString configGroupName() const;
58
62 void registerGenericPlugins(QObject* const parent);
63
67 void registerEditorPlugins(QObject* const parent);
68
72 void registerRawImportPlugins(QObject* const parent);
73
77 void init();
78
82 void cleanUp();
83
87 QList<DPlugin*> allPlugins() const;
88
93 QList<DPluginAction*> pluginsActions(DPluginAction::ActionType type, QObject* const parent) const;
94
99 QList<DPluginAction*> pluginsActions(DPluginAction::ActionCategory cat, QObject* const parent) const;
100
105 QList<DPluginAction*> pluginActions(const QString& pluginIID, QObject* const parent) const;
106
111 DPluginAction* pluginAction(const QString& actionName, QObject* const parent) const;
112
116 QString pluginXmlSections(DPluginAction::ActionCategory cat, QObject* const parent) const;
117
123 void appendPluginToBlackList(const QString& filename);
124
132 void appendPluginToWhiteList(const QString& filename);
133
137 bool canImport(const QString& format) const;
138
142 bool canExport(const QString& format) const;
143
148 DImgLoaderSettings* exportWidget(const QString& format) const;
149
150private:
151
152 // Disable constructor and destructor
154 explicit DPluginLoader(QObject*);
155 ~DPluginLoader() override;
156
157 Q_DISABLE_COPY(DPluginLoader)
158
159 class Private;
160 Private* const d = nullptr;
161
162 friend class DPluginLoaderCreator;
163};
164
165} // namespace Digikam
Definition dimgloadersettings.h:37
Definition dpluginaction.h:30
ActionCategory
Plugin action categories.
Definition dpluginaction.h:46
ActionType
Plugin action types to resume where they can be used.
Definition dpluginaction.h:37
Definition dpluginloader_p.h:28
The class that handles digiKam's external plugins.
Definition dpluginloader.h:43
Definition datefolderview.cpp:34