mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Printing: generate a Grantlee statistics template
As there are two types of templates, Grantlee need to support both. This commit adds the support to generating a statistics HTML code from a statistics template. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
This commit is contained in:
parent
70e8862efc
commit
b0e84e7e2b
2 changed files with 49 additions and 2 deletions
|
@ -108,6 +108,53 @@ QString TemplateLayout::generate()
|
||||||
return htmlContent;
|
return htmlContent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString TemplateLayout::generateStatistics()
|
||||||
|
{
|
||||||
|
QString htmlContent;
|
||||||
|
m_engine = new Grantlee::Engine(this);
|
||||||
|
|
||||||
|
QSharedPointer<Grantlee::FileSystemTemplateLoader> m_templateLoader =
|
||||||
|
QSharedPointer<Grantlee::FileSystemTemplateLoader>(new Grantlee::FileSystemTemplateLoader());
|
||||||
|
m_templateLoader->setTemplateDirs(QStringList() << getSubsurfaceDataPath("printing_templates/statistics"));
|
||||||
|
m_engine->addTemplateLoader(m_templateLoader);
|
||||||
|
|
||||||
|
Grantlee::registerMetaType<YearInfo>();
|
||||||
|
Grantlee::registerMetaType<template_options>();
|
||||||
|
Grantlee::registerMetaType<print_options>();
|
||||||
|
|
||||||
|
QVariantHash mapping;
|
||||||
|
QVariantList years;
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
while (stats_yearly != NULL && stats_yearly[i].period) {
|
||||||
|
YearInfo year(stats_yearly[i]);
|
||||||
|
years.append(QVariant::fromValue(year));
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
mapping.insert("years", years);
|
||||||
|
mapping.insert("template_options", QVariant::fromValue(*templateOptions));
|
||||||
|
mapping.insert("print_options", QVariant::fromValue(*PrintOptions));
|
||||||
|
|
||||||
|
Grantlee::Context c(mapping);
|
||||||
|
|
||||||
|
Grantlee::Template t = m_engine->loadByName(PrintOptions->p_template);
|
||||||
|
if (!t || t->error()) {
|
||||||
|
qDebug() << "Can't load template";
|
||||||
|
return htmlContent;
|
||||||
|
}
|
||||||
|
|
||||||
|
htmlContent = t->render(&c);
|
||||||
|
|
||||||
|
if (t->error()) {
|
||||||
|
qDebug() << "Can't render template";
|
||||||
|
return htmlContent;
|
||||||
|
}
|
||||||
|
|
||||||
|
emit progressUpdated(100);
|
||||||
|
return htmlContent;
|
||||||
|
}
|
||||||
|
|
||||||
QString TemplateLayout::readTemplate(QString template_name)
|
QString TemplateLayout::readTemplate(QString template_name)
|
||||||
{
|
{
|
||||||
QFile qfile(getSubsurfaceDataPath("printing_templates") + QDir::separator() + template_name);
|
QFile qfile(getSubsurfaceDataPath("printing_templates") + QDir::separator() + template_name);
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
int getTotalWork(print_options *printOptions);
|
int getTotalWork(print_options *printOptions);
|
||||||
void find_all_templates();
|
void find_all_templates();
|
||||||
|
|
||||||
extern QList<QString> grantlee_templates;
|
extern QList<QString> grantlee_templates, grantlee_statistics_templates;
|
||||||
|
|
||||||
class TemplateLayout : public QObject {
|
class TemplateLayout : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -18,6 +18,7 @@ public:
|
||||||
TemplateLayout(print_options *PrintOptions, template_options *templateOptions);
|
TemplateLayout(print_options *PrintOptions, template_options *templateOptions);
|
||||||
~TemplateLayout();
|
~TemplateLayout();
|
||||||
QString generate();
|
QString generate();
|
||||||
|
QString generateStatistics();
|
||||||
static QString readTemplate(QString template_name);
|
static QString readTemplate(QString template_name);
|
||||||
static void writeTemplate(QString template_name, QString grantlee_template);
|
static void writeTemplate(QString template_name, QString grantlee_template);
|
||||||
|
|
||||||
|
@ -198,7 +199,6 @@ if (property == "grayscale") {
|
||||||
GRANTLEE_END_LOOKUP
|
GRANTLEE_END_LOOKUP
|
||||||
|
|
||||||
GRANTLEE_BEGIN_LOOKUP(YearInfo)
|
GRANTLEE_BEGIN_LOOKUP(YearInfo)
|
||||||
|
|
||||||
if (property == "year") {
|
if (property == "year") {
|
||||||
return object.year->period;
|
return object.year->period;
|
||||||
} else if (property == "dives") {
|
} else if (property == "dives") {
|
||||||
|
|
Loading…
Add table
Reference in a new issue