Added IMetaDataPlugin base class for parsing plugin name, description,

etc... from json metadata file.
This commit is contained in:
2015-10-30 15:51:57 +01:00
parent 3a072742ac
commit 7755432484
8 changed files with 125 additions and 12 deletions
+67
View File
@@ -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;
}