Grantlee 5.3.0
templateloader.h
1/*
2 This file is part of the Grantlee template system.
3
4 Copyright (c) 2009,2010 Stephen Kelly <steveire@gmail.com>
5
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either version
9 2.1 of the Licence, or (at your option) any later version.
10
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public
17 License along with this library. If not, see <http://www.gnu.org/licenses/>.
18
19*/
20
21#ifndef GRANTLEE_TEMPLATELOADER_H
22#define GRANTLEE_TEMPLATELOADER_H
23
24#include "grantlee_templates_export.h"
25#include "template.h"
26
27#include <QtCore/QSharedPointer>
28
29namespace Grantlee
30{
31
33
35
48class GRANTLEE_TEMPLATES_EXPORT AbstractTemplateLoader
49{
50public:
55
60 virtual Template loadByName(const QString &name,
61 Engine const *engine) const = 0;
62
66 virtual QPair<QString, QString>
67 getMediaUri(const QString &fileName) const = 0;
68
72 virtual bool canLoadTemplate(const QString &name) const = 0;
73};
74
76
77class FileSystemTemplateLoaderPrivate;
78
137class GRANTLEE_TEMPLATES_EXPORT FileSystemTemplateLoader
139{
140public:
144 FileSystemTemplateLoader(const QSharedPointer<AbstractLocalizer> localizer
145 = {});
146
151
152 Template loadByName(const QString &name, Engine const *engine) const override;
153
154 bool canLoadTemplate(const QString &name) const override;
155
156 QPair<QString, QString> getMediaUri(const QString &fileName) const override;
157
161 void setTheme(const QString &themeName);
162
166 QString themeName() const;
167
171 void setTemplateDirs(const QStringList &dirs);
172
176 QStringList templateDirs() const;
177
178private:
179 Q_DECLARE_PRIVATE(FileSystemTemplateLoader)
180 FileSystemTemplateLoaderPrivate *const d_ptr;
181};
182
184
195class GRANTLEE_TEMPLATES_EXPORT InMemoryTemplateLoader
197{
198public:
199 InMemoryTemplateLoader();
200 ~InMemoryTemplateLoader() override;
201
202 Template loadByName(const QString &name, Engine const *engine) const override;
203
204 bool canLoadTemplate(const QString &name) const override;
205
206 QPair<QString, QString> getMediaUri(const QString &fileName) const override;
207
222 void setTemplate(const QString &name, const QString &content);
223
224private:
225 QHash<QString, QString> m_namedTemplates;
226};
227}
228
229#endif
Interface for implementing an internationalization system.
An retrieval interface to a storage location for Template objects.
virtual bool canLoadTemplate(const QString &name) const =0
virtual QPair< QString, QString > getMediaUri(const QString &fileName) const =0
virtual Template loadByName(const QString &name, Engine const *engine) const =0
Grantlee::Engine is the main entry point for creating Grantlee Templates.
Definition engine.h:121
Template loadByName(const QString &name, Engine const *engine) const override
QStringList templateDirs() const
void setTemplateDirs(const QStringList &dirs)
QPair< QString, QString > getMediaUri(const QString &fileName) const override
bool canLoadTemplate(const QString &name) const override
void setTheme(const QString &themeName)
FileSystemTemplateLoader(const QSharedPointer< AbstractLocalizer > localizer={})
void setTemplate(const QString &name, const QString &content)
QPair< QString, QString > getMediaUri(const QString &fileName) const override
bool canLoadTemplate(const QString &name) const override
Template loadByName(const QString &name, Engine const *engine) const override
The Template class is a tree of nodes which may be rendered.
Definition template.h:96
The Grantlee namespace holds all public Grantlee API.
Definition Mainpage.dox:8