7#include "genericformatter.h"
8#include "grantleeki18nlocalizer.h"
9#include "grantleethemeengine.h"
11using namespace GrantleeTheme;
13class GrantleeTheme::GenericFormatterPrivate
16 GenericFormatterPrivate()
23 std::unique_ptr<Engine>
const mEngine;
29GenericFormatter::GenericFormatter(
const QString &defaultHtmlMain,
const QString &themePath)
30 : d(new GenericFormatterPrivate)
32 d->mThemePath = themePath;
33 d->mDefaultMainFile = defaultHtmlMain;
34 setTemplatePath(d->mThemePath);
37GenericFormatter::GenericFormatter()
38 : d(new GenericFormatterPrivate)
42GenericFormatter::~GenericFormatter() =
default;
44void GenericFormatter::setDefaultHtmlMainFile(
const QString &name)
46 if (d->mDefaultMainFile != name) {
47 d->mDefaultMainFile = name;
52void GenericFormatter::setTemplatePath(
const QString &path)
54 if (!d->mTemplateLoader) {
57 d->mTemplateLoader->setTemplateDirs(
QStringList() << path);
58 d->mEngine->addTemplateLoader(d->mTemplateLoader);
65 d->mEngine->localizer()->setApplicationDomain(domain);
68QString GenericFormatter::errorMessage()
const
70 return d->mErrorMessage;
73QString GenericFormatter::render(
const QVariantHash &mapping)
const
76 context.setLocalizer(d->mEngine->localizer());
78 const QString contentHtml = d->mTemplate->render(&context);
84 d->mTemplate = d->mEngine->newTemplate(content, QStringLiteral(
"content"));
85 if (d->mTemplate->error()) {
90void GenericFormatter::reloadTemplate()
92 d->mTemplate = d->mEngine->loadByName(d->mDefaultMainFile);
93 if (d->mTemplate->error()) {