GrantleeTheme

qtresourcetemplateloader.cpp
1/*
2 * SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5 *
6 */
7
8#include "qtresourcetemplateloader.h"
9
10#include <KTextTemplate/Engine>
11#include <QFile>
12#include <QTextStream>
13// TODO: remove this class when Grantlee support it
14using namespace GrantleeTheme;
15QtResourceTemplateLoader::QtResourceTemplateLoader(const QSharedPointer<KTextTemplate::AbstractLocalizer> localizer)
16 : KTextTemplate::FileSystemTemplateLoader(localizer)
17{
18}
19KTextTemplate::Template QtResourceTemplateLoader::loadByName(const QString &fileName, const KTextTemplate::Engine *engine) const
20{
21 // Qt resource file
22 if (fileName.startsWith(QLatin1StringView(":/"))) {
23 QFile file;
24 file.setFileName(fileName);
25 if (!file.exists() || !file.open(QIODevice::ReadOnly | QIODevice::Text)) {
26 return {};
27 }
28
29 QTextStream fstream(&file);
30 const auto fileContent = fstream.readAll();
31
32 return engine->newTemplate(fileContent, fileName);
33 } else {
35 }
36}
37
38bool QtResourceTemplateLoader::canLoadTemplate(const QString &name) const
39{
40 // Qt resource file
41 if (name.startsWith(QLatin1StringView(":/"))) {
42 QFile file;
43 file.setFileName(name);
44
45 if (!file.exists() || !file.open(QIODevice::ReadOnly | QIODevice::Text)) {
46 return false;
47 }
48 file.close();
49 return true;
50 } else {
52 }
53}
Template newTemplate(const QString &content, const QString &name) const
Template loadByName(const QString &name, Engine const *engine) const override
bool canLoadTemplate(const QString &name) const override
bool exists(const QString &fileName)
bool open(FILE *fh, OpenMode mode, FileHandleFlags handleFlags)
void setFileName(const QString &name)
virtual void close() override
bool startsWith(QChar c, Qt::CaseSensitivity cs) const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:12:59 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.