Grantlee  5.1.0
engine.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_ENGINE_H
22 #define GRANTLEE_ENGINE_H
23 
24 #include "template.h"
25 #include "templateloader.h"
26 
27 namespace Grantlee
28 {
29 class TagLibraryInterface;
30 
31 class EnginePrivate;
32 
34 
123 class GRANTLEE_TEMPLATES_EXPORT Engine : public QObject
124 {
125  Q_OBJECT
126 public:
130  Engine(QObject *parent = 0);
131 
135  ~Engine() override;
136 
140  QList<QSharedPointer<AbstractTemplateLoader>> templateLoaders();
141 
145  void addTemplateLoader(QSharedPointer<AbstractTemplateLoader> loader);
146 
155  void setPluginPaths(const QStringList &dirs);
156 
160  void addPluginPath(const QString &dir);
161 
165  void removePluginPath(const QString &dir);
166 
170  QStringList pluginPaths() const;
171 
185  QPair<QString, QString> mediaUri(const QString &fileName) const;
186 
193  Template loadByName(const QString &name) const;
194 
202  Template newTemplate(const QString &content, const QString &name) const;
203 
207  QStringList defaultLibraries() const;
208 
213  void addDefaultLibrary(const QString &libName);
214 
220  void removeDefaultLibrary(const QString &libName);
221 
230  bool smartTrimEnabled() const;
231 
237  void setSmartTrimEnabled(bool enabled);
238 
239 #ifndef Q_QDOC
240 
245  void loadDefaultLibraries();
246 
255  TagLibraryInterface *loadLibrary(const QString &name);
256 #endif
257 
258 private:
259  Q_DECLARE_PRIVATE(Engine)
260  EnginePrivate *const d_ptr;
261 };
262 }
263 
264 #endif
The Template class is a tree of nodes which may be rendered.
Definition: template.h:94
The TagLibraryInterface returns available tags and filters from libraries.
The Grantlee namespace holds all public Grantlee API.
Definition: Mainpage.dox:7
Grantlee::Engine is the main entry point for creating Grantlee Templates.
Definition: engine.h:123