Krita Source Code Documentation
Loading...
Searching...
No Matches
KoJsonTrader.h
Go to the documentation of this file.
1/* This file is part of the KDE project
2 SPDX-FileCopyrightText: 1998, 1999 Torben Weis <weis@kde.org>
3 SPDX-FileCopyrightText: 2007 David Faure <faure@kde.org>
4
5 SPDX-License-Identifier: LGPL-2.0-or-later
6*/
7
8#ifndef KOJSONTRADER_H
9#define KOJSONTRADER_H
10
11#include <QList>
12#include <QString>
13#include <QMutex>
14#include <QSharedPointer>
15#include <kis_pointer_utils.h>
16#include "kritaplugin_export.h"
17
18class QPluginLoader;
19
25class KRITAPLUGIN_EXPORT KoJsonTrader
26{
27public:
28
32 static KoJsonTrader *instance();
33
34 struct KRITAPLUGIN_EXPORT Plugin {
35 Plugin() = default;
37 ~Plugin();
38
39 QObject *instance() const;
40
41 QJsonObject metaData() const;
42 QString fileName() const;
43 QString errorString() const;
44
45 private:
47 QMutex *m_mutex = 0;
48 };
49
70 QList<Plugin> query(const QString &servicetype, const QString &mimetype);
71
72 // Note: this should not be used
75
76private:
77 void initializePluginLoaderCache();
78
79private:
80 QString m_pluginPath;
81 mutable QMutex m_mutex;
82
83 struct PluginCacheEntry;
84
86};
87
88#endif
PythonPluginManager * instance
QList< PluginCacheEntry > m_pluginLoaderCache
QString m_pluginPath
static QMutex mutex
QSharedPointer< QPluginLoader > m_loader