Grantlee  5.2.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 
29 namespace Grantlee
30 {
31 
32 class AbstractLocalizer;
33 
35 
48 class GRANTLEE_TEMPLATES_EXPORT AbstractTemplateLoader
49 {
50 public:
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 
77 class FileSystemTemplateLoaderPrivate;
78 
137 class GRANTLEE_TEMPLATES_EXPORT FileSystemTemplateLoader
138  : public AbstractTemplateLoader
139 {
140 public:
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 
178 private:
179  Q_DECLARE_PRIVATE(FileSystemTemplateLoader)
180  FileSystemTemplateLoaderPrivate *const d_ptr;
181 };
182 
184 
195 class GRANTLEE_TEMPLATES_EXPORT InMemoryTemplateLoader
196  : public AbstractTemplateLoader
197 {
198 public:
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 
224 private:
225  QHash<QString, QString> m_namedTemplates;
226 };
227 }
228 
229 #endif
Grantlee::InMemoryTemplateLoader::canLoadTemplate
bool canLoadTemplate(const QString &name) const override
Grantlee::AbstractTemplateLoader::canLoadTemplate
virtual bool canLoadTemplate(const QString &name) const =0
Grantlee::FileSystemTemplateLoader::themeName
QString themeName() const
Grantlee::FileSystemTemplateLoader::setTemplateDirs
void setTemplateDirs(const QStringList &dirs)
Grantlee::Engine
Grantlee::Engine is the main entry point for creating Grantlee Templates.
Definition: engine.h:121
Grantlee::FileSystemTemplateLoader::~FileSystemTemplateLoader
~FileSystemTemplateLoader() override
Grantlee::InMemoryTemplateLoader::getMediaUri
QPair< QString, QString > getMediaUri(const QString &fileName) const override
Grantlee::InMemoryTemplateLoader::setTemplate
void setTemplate(const QString &name, const QString &content)
Grantlee::AbstractTemplateLoader
An retrieval interface to a storage location for Template objects.
Definition: templateloader.h:49
Grantlee::AbstractTemplateLoader::loadByName
virtual Template loadByName(const QString &name, Engine const *engine) const =0
Grantlee::FileSystemTemplateLoader::setTheme
void setTheme(const QString &themeName)
Grantlee::AbstractTemplateLoader::~AbstractTemplateLoader
virtual ~AbstractTemplateLoader()
Grantlee::InMemoryTemplateLoader
The InMemoryTemplateLoader loads Templates set dynamically in memory.
Definition: templateloader.h:197
Grantlee::InMemoryTemplateLoader::loadByName
Template loadByName(const QString &name, Engine const *engine) const override
Grantlee::FileSystemTemplateLoader
The FileSystemTemplateLoader loads Templates from the file system.
Definition: templateloader.h:139
Grantlee::Template
The Template class is a tree of nodes which may be rendered.
Definition: template.h:96
Grantlee::FileSystemTemplateLoader::canLoadTemplate
bool canLoadTemplate(const QString &name) const override
Grantlee::FileSystemTemplateLoader::FileSystemTemplateLoader
FileSystemTemplateLoader(const QSharedPointer< AbstractLocalizer > localizer={})
Grantlee::FileSystemTemplateLoader::getMediaUri
QPair< QString, QString > getMediaUri(const QString &fileName) const override
Grantlee
The Grantlee namespace holds all public Grantlee API.
Definition: Mainpage.dox:8
Grantlee::AbstractTemplateLoader::getMediaUri
virtual QPair< QString, QString > getMediaUri(const QString &fileName) const =0
Grantlee::FileSystemTemplateLoader::loadByName
Template loadByName(const QString &name, Engine const *engine) const override
Grantlee::FileSystemTemplateLoader::templateDirs
QStringList templateDirs() const