Adding reports without recompilation now possible.

This commit is contained in:
2018-05-23 14:50:55 +02:00
parent 653f8eac30
commit 0bca412d27
2 changed files with 34 additions and 11 deletions
+32 -11
View File
@@ -2,9 +2,11 @@
#include <QJsonValue>
#include <QJsonArray>
#include <QJsonDocument>
#include <QLocale>
#include <QDebug>
#include <QApplication>
#include <QFile>
#include "igridform.h"
@@ -112,17 +114,8 @@ void IMetaDataPlugin::parseMetaData(const QJsonObject &metaData)
}
QJsonValue repArray = data.toObject()["reports"];
foreach (QJsonValue repVal, repArray.toArray()) {
QJsonObject repObj = repVal.toObject();
ReportPtr report = ReportPtr(new Report());
report->setName(repObj["name"].toString());
report->setDescription(repObj["description"].toString());
report->setListReport(repObj["listReport"].toBool());
report->setFile(repObj["file"].toString());
m_reports.append(report);
}
addReportsFromJson(repArray);
addCustomReports();
}
QString IMetaDataPlugin::parseLocaleText(const QJsonObject &object)
@@ -144,3 +137,31 @@ QString IMetaDataPlugin::parseLocaleText(const QJsonObject &object)
return ret;
}
void IMetaDataPlugin::addCustomReports()
{
QString jsonPath = qApp->applicationDirPath() + REPORT_ROOT + "/" + pluginId().toLower() + ".json";
QFile f (jsonPath);
if (f.open(QIODevice::ReadOnly | QIODevice::Text))
{
QJsonDocument d = QJsonDocument::fromJson(f.readAll());
QJsonObject obj = d.object();
addReportsFromJson(obj.value("reports"));
}
}
void IMetaDataPlugin::addReportsFromJson(const QJsonValue &repArray)
{
foreach (QJsonValue repVal, repArray.toArray()) {
QJsonObject repObj = repVal.toObject();
ReportPtr report = ReportPtr(new Report());
report->setName(repObj["name"].toString());
report->setDescription(repObj["description"].toString());
report->setListReport(repObj["listReport"].toBool());
report->setFile(repObj["file"].toString());
m_reports.append(report);
}
}
+2
View File
@@ -38,6 +38,8 @@ private:
ReportList m_reports;
QString parseLocaleText(const QJsonObject &object);
void addCustomReports();
void addReportsFromJson(const QJsonValue &repArray);
};
#endif // IMETADATAPLUGIN_H