15 #include <QJsonDocument>
16 #include <QJsonObject>
21 inline QString
field(
const QString &fieldName) {
22 return doc.object().value(fieldName).toString();
28 const QJsonArray array =
doc.object().value(fieldName).toArray();
30 for (
const QJsonValue &value : array) {
31 const QJsonObject
object = value.toObject();
34 object[
"url"].toString()};
43 const QJsonArray array =
doc.object().value(fieldName).toArray();
45 for (
const QJsonValue &value : array) {
46 const QJsonObject
object = value.toObject();
49 object[
"email"].toString()};
61 if (resourcePath.isNull()) {
65 QFile myFile(resourcePath);
67 bool opened = myFile.open(QIODevice::ReadOnly);
70 CVLog::Error(QStringLiteral(
"Could not load plugin resources: %1")
75 QByteArray json = myFile.readAll();
77 QJsonParseError jsonError;
79 m_data->
doc = QJsonDocument::fromJson(json, &jsonError);
81 if (jsonError.error != QJsonParseError::NoError) {
82 CVLog::Error(QStringLiteral(
"Could not parse plugin info: %1")
83 .arg(jsonError.errorString()));
90 const QString &ccDefaultPluginInterface::IID()
const {
return m_data->
m_IID; }
92 void ccDefaultPluginInterface::setIID(
const QString &iid) {
97 return m_data->
doc.object().value(
"core").toBool();
101 return m_data->
field(
"name");
105 return m_data->
field(
"description");
109 return QIcon(m_data->
field(
"icon"));
123 return m_data->
contacts(
"maintainers");
static bool Error(const char *format,...)
Display an error dialog with formatted message.
ccPluginInterface::ContactList contacts(const QString &fieldName)
QString field(const QString &fieldName)
ccPluginInterface::ReferenceList references(const QString &fieldName)
ccDefaultPluginInterface(const QString &resourcePath=QString())
virtual ContactList getAuthors() const override
virtual ReferenceList getReferences() const override
virtual QString getName() const override
Returns (short) name (for menu entry, etc.)
virtual QString getDescription() const override
Returns long name/description (for tooltip, etc.)
virtual ~ccDefaultPluginInterface()
virtual ContactList getMaintainers() const override
virtual QIcon getIcon() const override
Returns icon.
virtual bool isCore() const override
Is this plugin a core plugin?
QList< Reference > ReferenceList
QList< Contact > ContactList