18#include "PluginInfo.h"
22#include <QJsonDocument>
25#include <QJsonParseError>
27#include <QStringBuilder>
29Q_LOGGING_CATEGORY(PLUGIN_INFO,
"dekko.plugman.info")
36DekkoPlugin::DekkoPlugin(QObject *parent) :
PluginInfo(parent)
40DekkoPlugin* DekkoPlugin::fromSpec(
const QString &specPath, QObject *parent)
42 QFile specFile(specPath);
43 specFile.open(QFile::ReadOnly);
44 QJsonParseError error;
45 QJsonDocument p_spec = QJsonDocument().fromJson(specFile.readAll(), &error);
46 if (p_spec.isObject()) {
47 QJsonObject spec = p_spec.object();
52 qCWarning(PLUGIN_INFO) <<
"Plugin failed to load at >> " << specPath;
53 if (!error.errorString().isEmpty()) {
54 qCWarning(PLUGIN_INFO) <<
"Error: " << error.errorString();
56 qCWarning(PLUGIN_INFO) <<
"Plugin Spec not a json object!!!!!!!!";
62QString DekkoPlugin::pluginId()
const
64 return m_spec.value(QStringLiteral(
"id")).toString();
67QString DekkoPlugin::location()
const
69 return m_spec.value(QStringLiteral(
"register")).toString();
72QString DekkoPlugin::component()
74 const QString path = m_pluginPath %
"/" % m_spec.value(QStringLiteral(
"component")).toString();
75 if (QFileInfo(path).exists()) {
78 qCWarning(PLUGIN_INFO) <<
"Failed to find component component: " << path;
83QString DekkoPlugin::i18n()
const
85 return m_spec.value(QStringLiteral(
"i18n")).toString();
88QVariantMap DekkoPlugin::documentation()
const
90 return m_spec.value(QStringLiteral(
"documentation")).toObject().toVariantMap();
93QVariantMap DekkoPlugin::settings()
const
95 return m_spec.value(QStringLiteral(
"settings")).toObject().toVariantMap();
98QString DekkoPlugin::pluginPath()
const
103void DekkoPlugin::setSpec(
const QJsonObject &spec)
108void DekkoPlugin::setPluginDirectory(
const QString &path)
113ServicePlugin::ServicePlugin(QObject *parent) :
PluginInfo(parent)
117void ServicePlugin::messageReceived(
const QString &key,
const QVariant &value)