Adding reports without recompilation now possible.
This commit is contained in:
+32
-11
@@ -2,9 +2,11 @@
|
|||||||
|
|
||||||
#include <QJsonValue>
|
#include <QJsonValue>
|
||||||
#include <QJsonArray>
|
#include <QJsonArray>
|
||||||
|
#include <QJsonDocument>
|
||||||
#include <QLocale>
|
#include <QLocale>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
#include <QFile>
|
||||||
|
|
||||||
#include "igridform.h"
|
#include "igridform.h"
|
||||||
|
|
||||||
@@ -112,17 +114,8 @@ void IMetaDataPlugin::parseMetaData(const QJsonObject &metaData)
|
|||||||
}
|
}
|
||||||
|
|
||||||
QJsonValue repArray = data.toObject()["reports"];
|
QJsonValue repArray = data.toObject()["reports"];
|
||||||
foreach (QJsonValue repVal, repArray.toArray()) {
|
addReportsFromJson(repArray);
|
||||||
QJsonObject repObj = repVal.toObject();
|
addCustomReports();
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString IMetaDataPlugin::parseLocaleText(const QJsonObject &object)
|
QString IMetaDataPlugin::parseLocaleText(const QJsonObject &object)
|
||||||
@@ -144,3 +137,31 @@ QString IMetaDataPlugin::parseLocaleText(const QJsonObject &object)
|
|||||||
return ret;
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ private:
|
|||||||
ReportList m_reports;
|
ReportList m_reports;
|
||||||
|
|
||||||
QString parseLocaleText(const QJsonObject &object);
|
QString parseLocaleText(const QJsonObject &object);
|
||||||
|
void addCustomReports();
|
||||||
|
void addReportsFromJson(const QJsonValue &repArray);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // IMETADATAPLUGIN_H
|
#endif // IMETADATAPLUGIN_H
|
||||||
|
|||||||
Reference in New Issue
Block a user