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()))
157 #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) 160 fstream.setEncoding(QStringConverter::Utf8);
162 const auto fileContent = fstream.
readAll();
167 std::pair<QString, QString>
174 if (i >= d->m_templateDirs.size())
182 QDir(d->m_templateDirs.at(i)).canonicalPath())) {
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.")
221 std::pair<QString, QString>
226 return std::pair<QString, QString>();
void setCodec(QTextCodec *codec)
The Template class is a tree of nodes which may be rendered.
QHash::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.
void setFileName(const QString &name)
QHash::const_iterator constFind(const Key &key) const const
bool exists() const const
void setTheme(const QString &themeName)
Template loadByName(const QString &name, Engine const *engine) const override
QString canonicalFilePath() const const
QHash::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
Template newTemplate(const QString &content, const QString &name) const
Cutelee::Engine is the main entry point for creating Cutelee Templates.
virtual bool open(QIODevice::OpenMode mode) override
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 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.