Added IMetaDataPlugin base class for parsing plugin name, description,
etc... from json metadata file.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user