Added IMetaDataPlugin base class for parsing plugin name, description,
etc... from json metadata file.print
parent
3a072742ac
commit
7755432484
@ -0,0 +1,67 @@
|
|||||||
|
#include "imetadataplugin.h"
|
||||||
|
|
||||||
|
#include <QJsonValue>
|
||||||
|
#include <QLocale>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
IMetaDataPlugin::IMetaDataPlugin()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
IMetaDataPlugin::~IMetaDataPlugin()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QString IMetaDataPlugin::pluginName()
|
||||||
|
{
|
||||||
|
return m_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString IMetaDataPlugin::pluginId()
|
||||||
|
{
|
||||||
|
return m_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString IMetaDataPlugin::pluginDescription()
|
||||||
|
{
|
||||||
|
return m_description;
|
||||||
|
}
|
||||||
|
|
||||||
|
void IMetaDataPlugin::init(const QJsonObject &metaData)
|
||||||
|
{
|
||||||
|
parseMetaData(metaData);
|
||||||
|
initServiceUi();
|
||||||
|
}
|
||||||
|
|
||||||
|
void IMetaDataPlugin::parseMetaData(const QJsonObject &metaData)
|
||||||
|
{
|
||||||
|
qDebug() << metaData;
|
||||||
|
QJsonValue data = metaData["MetaData"];
|
||||||
|
if (!data.isObject()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_name = parseLocaleText(data.toObject()["name"].toObject());
|
||||||
|
m_description = parseLocaleText(data.toObject()["description"].toObject());
|
||||||
|
m_id = data.toObject()["id"].toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString IMetaDataPlugin::parseLocaleText(const QJsonObject &object)
|
||||||
|
{
|
||||||
|
QString locale = QLocale::system().name();
|
||||||
|
QString ret;
|
||||||
|
|
||||||
|
foreach (QString key, object.keys()) {
|
||||||
|
if (locale.contains(key, Qt::CaseInsensitive)) {
|
||||||
|
ret = object[key].toString();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret.isEmpty()) {
|
||||||
|
ret = object["default"].toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,34 @@
|
|||||||
|
#ifndef IMETADATAPLUGIN_H
|
||||||
|
#define IMETADATAPLUGIN_H
|
||||||
|
|
||||||
|
#include <QString>
|
||||||
|
|
||||||
|
#include "core_global.h"
|
||||||
|
#include "iplugin.h"
|
||||||
|
|
||||||
|
class CORESHARED_EXPORT IMetaDataPlugin : public IPlugin
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
IMetaDataPlugin();
|
||||||
|
~IMetaDataPlugin();
|
||||||
|
|
||||||
|
// IPlugin interface
|
||||||
|
public:
|
||||||
|
virtual QString pluginName();
|
||||||
|
virtual QString pluginId();
|
||||||
|
virtual QString pluginDescription();
|
||||||
|
virtual void init(const QJsonObject &metaData);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void initServiceUi() = 0;
|
||||||
|
virtual void parseMetaData(const QJsonObject &metaData);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString m_name;
|
||||||
|
QString m_id;
|
||||||
|
QString m_description;
|
||||||
|
|
||||||
|
QString parseLocaleText(const QJsonObject &object);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // IMETADATAPLUGIN_H
|
Loading…
Reference in New Issue