File indexing completed on 2024-05-12 05:15:01
0001 /* 0002 * SPDX-FileCopyrightText: 2015 Daniel Vrátil <dvratil@redhat.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-or-later 0005 * 0006 */ 0007 0008 #pragma once 0009 0010 #include "kcalutils_private_export.h" 0011 #include <QSharedPointer> 0012 #include <QVariantHash> 0013 0014 namespace KTextTemplate 0015 { 0016 class Engine; 0017 class FileSystemTemplateLoader; 0018 class TemplateImpl; 0019 class Context; 0020 using Template = QSharedPointer<TemplateImpl>; 0021 } 0022 0023 class QString; 0024 class GrantleeKi18nLocalizer; 0025 0026 class KCALUTILS_TESTS_EXPORT GrantleeTemplateManager 0027 { 0028 public: 0029 ~GrantleeTemplateManager(); 0030 0031 static GrantleeTemplateManager *instance(); 0032 0033 void setTemplatePath(const QString &path); 0034 void setPluginPath(const QString &path); 0035 0036 [[nodiscard]] QString render(const QString &templateName, const QVariantHash &data) const; 0037 0038 private: 0039 Q_DISABLE_COPY(GrantleeTemplateManager) 0040 GrantleeTemplateManager(); 0041 QString errorTemplate(const QString &reason, const QString &origTemplateName, const KTextTemplate::Template &failedTemplate) const; 0042 KTextTemplate::Context createContext(const QVariantHash &hash = QVariantHash()) const; 0043 KTextTemplate::Engine *const mEngine; 0044 QSharedPointer<KTextTemplate::FileSystemTemplateLoader> mLoader; 0045 0046 QSharedPointer<GrantleeKi18nLocalizer> mLocalizer; 0047 0048 static GrantleeTemplateManager *sInstance; 0049 };