Cutelee  6.1.0
engine.h
1 /*
2  This file is part of the Cutelee 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 CUTELEE_ENGINE_H
22 #define CUTELEE_ENGINE_H
23 
24 #include "template.h"
25 #include "templateloader.h"
26 
27 namespace Cutelee
28 {
29 class TagLibraryInterface;
30 
31 class EnginePrivate;
32 
34 
120 class CUTELEE_TEMPLATES_EXPORT Engine : public QObject
121 {
122  Q_OBJECT
123 public:
127  Engine(QObject *parent = nullptr);
128 
132  ~Engine() override;
133 
137  QList<std::shared_ptr<AbstractTemplateLoader> > templateLoaders();
138 
143  void addTemplateLoader(std::shared_ptr<AbstractTemplateLoader> loader);
144 
153  void setPluginPaths(const QStringList &dirs);
154 
158  void addPluginPath(const QString &dir);
159 
163  void removePluginPath(const QString &dir);
164 
168  QStringList pluginPaths() const;
169 
182  std::pair<QString, QString> mediaUri(const QString &fileName) const;
183 
190  Template loadByName(const QString &name) const;
191 
198  Template newTemplate(const QString &content, const QString &name) const;
199 
203  QStringList defaultLibraries() const;
204 
209  void addDefaultLibrary(const QString &libName);
210 
215  void removeDefaultLibrary(const QString &libName);
216 
225  bool smartTrimEnabled() const;
226 
232  void setSmartTrimEnabled(bool enabled);
233 
242  void insertLibrary(const QString &name, TagLibraryInterface *lib);
243 
250  void insertDefaultLibrary(const QString &name, TagLibraryInterface *lib);
251 
252 #ifndef Q_QDOC
258  void loadDefaultLibraries();
259 
268  TagLibraryInterface *loadLibrary(const QString &name);
269 #endif
270 
271 private:
272  Q_DECLARE_PRIVATE(Engine)
273  EnginePrivate *const d_ptr;
274 };
275 }
276 
277 #endif
Cutelee::Engine is the main entry point for creating Cutelee Templates.
Definition: engine.h:121
The TagLibraryInterface returns available tags and filters from libraries.
The Template class is a tree of nodes which may be rendered.
Definition: template.h:95
The Cutelee namespace holds all public Cutelee API.
Definition: Mainpage.dox:8