21 #include "templateloader.h" 24 #include "exception.h" 25 #include "nulllocalizer_p.h" 27 #include <QtCore/QDir> 28 #include <QtCore/QFile> 29 #include <QtCore/QFileInfo> 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)
72 InMemoryTemplateLoader::~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())
147 QDir(d->m_templateDirs.at(i)).canonicalPath()))
158 const auto fileContent = fstream.
readAll();
163 std::pair<QString, QString>
170 if (i >= d->m_templateDirs.size())
178 QDir(d->m_templateDirs.at(i)).canonicalPath())) {
186 return {path, fileName};
196 m_namedTemplates.
insert(name, content);
201 return m_namedTemplates.
contains(name);
205 Engine const *engine)
const 207 const auto it = m_namedTemplates.
constFind(name);
208 if (it != m_namedTemplates.
constEnd()) {
213 QStringLiteral(
"Couldn't load template %1. Template does not exist.")
217 std::pair<QString, QString>
222 return std::pair<QString, QString>();
The Template class is a tree of nodes which may be rendered.
iterator insert(const Key &key, const T &value)
std::pair< QString, QString > getMediaUri(const QString &fileName) const override
The Cutelee namespace holds all public Cutelee API.
bool exists(const QString &fileName)
qsizetype size() const const
void setFileName(const QString &name)
const_iterator constFind(const Key &key) const const
void setTheme(const QString &themeName)
Template loadByName(const QString &name, Engine const *engine) const override
QString canonicalFilePath() const const
const_iterator constEnd() const const
virtual ~AbstractTemplateLoader()
~FileSystemTemplateLoader() override
void setTemplate(const QString &name, const QString &content)
An retrieval interface to a storage location for Template objects.
QString absoluteFilePath() const const
void setEncoding(QStringConverter::Encoding encoding)
Template newTemplate(const QString &content, const QString &name) const
Cutelee::Engine is the main entry point for creating Cutelee Templates.
QStringList templateDirs() const
bool contains(QChar ch, Qt::CaseSensitivity cs) const const
QString themeName() const
void setTemplateDirs(const QStringList &dirs)
virtual void close() override
std::pair< QString, QString > getMediaUri(const QString &fileName) const override
bool open(FILE *fh, OpenMode mode, FileHandleFlags handleFlags)
bool contains(const Key &key) const const
FileSystemTemplateLoader(const std::shared_ptr< AbstractLocalizer > localizer={})
bool canLoadTemplate(const QString &name) const override
The FileSystemTemplateLoader loads Templates from the file system.
Template loadByName(const QString &name, Engine const *engine) const override
bool canLoadTemplate(const QString &name) const override
An exception for use when implementing template tags.