21#include "templateloader.h"
25#include "nulllocalizer_p.h"
28#include <QtCore/QFile>
29#include <QtCore/QFileInfo>
37class FileSystemTemplateLoaderPrivate
40 std::shared_ptr<AbstractLocalizer> localizer)
44 : std::shared_ptr<AbstractLocalizer>(
new NullLocalizer))
52 const std::shared_ptr<AbstractLocalizer> m_localizer;
57 const std::shared_ptr<AbstractLocalizer> localizer)
72InMemoryTemplateLoader::~InMemoryTemplateLoader() {}
78 d->m_localizer->unloadCatalog(dir +
QLatin1Char(
'/') + d->m_themeName);
87 return d->m_themeName;
95 d->m_localizer->unloadCatalog(dir +
QLatin1Char(
'/') + d->m_themeName);
96 d->m_templateDirs = dirs;
98 d->m_localizer->loadCatalog(dir +
QLatin1Char(
'/') + d->m_themeName,
105 return d->m_templateDirs;
115 if (i >= d->m_templateDirs.size())
131 Engine const *engine)
const
138 if (i >= d->m_templateDirs.size())
157#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
160 fstream.setEncoding(QStringConverter::Utf8);
162 const auto fileContent = fstream.
readAll();
167std::pair<QString, QString>
174 if (i >= d->m_templateDirs.size())
190 return {path, fileName};
200 m_namedTemplates.insert(name, content);
205 return m_namedTemplates.contains(name);
209 Engine const *engine)
const
211 const auto it = m_namedTemplates.constFind(name);
212 if (it != m_namedTemplates.constEnd()) {
217 QStringLiteral(
"Couldn't load template %1. Template does not exist.")
221std::pair<QString, QString>
226 return std::pair<QString, QString>();
An retrieval interface to a storage location for Template objects.
virtual ~AbstractTemplateLoader()
Cutelee::Engine is the main entry point for creating Cutelee Templates.
Template newTemplate(const QString &content, const QString &name) const
An exception for use when implementing template tags.
The FileSystemTemplateLoader loads Templates from the file system.
FileSystemTemplateLoader(const std::shared_ptr< AbstractLocalizer > localizer={})
Template loadByName(const QString &name, Engine const *engine) const override
void setTheme(const QString &themeName)
bool canLoadTemplate(const QString &name) const override
QStringList templateDirs() const
void setTemplateDirs(const QStringList &dirs)
QString themeName() const
~FileSystemTemplateLoader() override
std::pair< QString, QString > getMediaUri(const QString &fileName) const override
bool canLoadTemplate(const QString &name) const override
void setTemplate(const QString &name, const QString &content)
std::pair< QString, QString > getMediaUri(const QString &fileName) const override
Template loadByName(const QString &name, Engine const *engine) const override
The Template class is a tree of nodes which may be rendered.
The Cutelee namespace holds all public Cutelee API.
QString canonicalPath() const const
bool exists() const const
virtual bool open(OpenMode mode) override
void setFileName(const QString &name)
virtual void close() override
QString absoluteFilePath() const const
QString canonicalFilePath() const const
bool contains(QChar ch, Qt::CaseSensitivity cs) const const
void setCodec(QTextCodec *codec)