digiKam
Loading...
Searching...
No Matches
dplugin.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 : abstract class to define digiKam plugin
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 <QMap>
20#include <QList>
21#include <QCoreApplication>
22#include <QString>
23#include <QStringList>
24#include <QtPlugin>
25#include <QObject>
26#include <QIcon>
27#include <QPointer>
28
29// Local includes
30
31#include "dpluginauthor.h"
32#include "digikam_export.h"
33
38#define DIGIKAM_DPLUGIN_GENERIC_IID "org.kde.digikam.DPluginGeneric/1.1.0"
39#define DIGIKAM_DPLUGIN_EDITOR_IID "org.kde.digikam.DPluginEditor/1.1.0"
40#define DIGIKAM_DPLUGIN_BQM_IID "org.kde.digikam.DPluginBqm/1.1.0"
41#define DIGIKAM_DPLUGIN_RAWIMPORT_IID "org.kde.digikam.DPluginRawImport/1.1.0"
42#define DIGIKAM_DPLUGIN_DIMG_IID "org.kde.digikam.DPluginDImg/1.1.0"
43
44namespace Digikam
45{
46
50class DIGIKAM_EXPORT DPlugin : public QObject
51{
52 Q_OBJECT
53
54public:
55
59 explicit DPlugin(QObject* const parent = nullptr);
60
64 ~DPlugin() override;
65
66public:
67
71 QStringList pluginAuthors() const;
72
77 QString version() const;
78
83 bool shouldLoaded() const;
84
89 void setShouldLoaded(bool b);
90
95 QString libraryFileName() const;
96
101 void setLibraryFileName(const QString&);
102
103public:
104
109 virtual void cleanUp() {};
110
116 virtual QString handbookSection() const;
117
124 virtual QString handbookChapter() const;
125
132 virtual QString handbookReference() const;
133
138 virtual bool hasVisibilityProperty() const;
139
143 virtual void setVisible(bool b) = 0;
144
148 virtual int count() const = 0;
149
153 virtual QStringList categories() const = 0;
154
158 virtual void setup(QObject* const parent) = 0;
159
167 virtual QString name() const = 0;
168
176 virtual QString iid() const = 0;
177
185 virtual QString ifaceIid() const = 0;
186
190 virtual QString description() const = 0;
191
196 virtual QIcon icon() const;
197
201 virtual QList<DPluginAuthor> authors() const = 0;
202
206 virtual QString details() const = 0;
207
211 virtual QMap<QString, QStringList> extraAboutData() const { return QMap<QString, QStringList>(); };
212
216 virtual QStringList extraAboutDataRowTitles() const { return QStringList(); };
217
221 virtual QString extraAboutDataTitle() const { return QString(); };
222
223private:
224
225 class Private;
226 Private* const d = nullptr;
227};
228
229} // namespace Digikam
230
Definition dpluginauthor.h:29
Definition dplugin.h:51
virtual int count() const =0
virtual QString name() const =0
Returns the user-visible name of the plugin.
virtual QString ifaceIid() const =0
Returns the unique top level internal identification property of the plugin interface....
virtual void cleanUp()
Definition dplugin.h:109
virtual QString extraAboutDataTitle() const
Returns the tab title of data returned by extraAboutData().
Definition dplugin.h:221
virtual QMap< QString, QStringList > extraAboutData() const
Returns a map of extra data to show in plugin about dialog.
Definition dplugin.h:211
virtual void setVisible(bool b)=0
virtual QString description() const =0
Returns a short description about the plugin.
virtual QString details() const =0
Returns a long description about the plugin.
virtual QStringList categories() const =0
virtual QString iid() const =0
Returns the unique internal identification property of the plugin. Must be formatted as "org....
virtual QList< DPluginAuthor > authors() const =0
Returns authors list for the plugin.
virtual void setup(QObject *const parent)=0
virtual QStringList extraAboutDataRowTitles() const
Returns a list of extra data row titles to show in tab of plugin about dialog.
Definition dplugin.h:216
Q_DECLARE_TYPEINFO(Digikam::DPluginAuthor, Q_MOVABLE_TYPE)
Definition datefolderview.cpp:34