File indexing completed on 2025-02-09 04:28:36

0001 /*
0002   This file is part of the KTextTemplate library
0003 
0004   SPDX-FileCopyrightText: 2010 Stephen Kelly <steveire@gmail.com>
0005 
0006   SPDX-License-Identifier: LGPL-2.0-or-later
0007 
0008 */
0009 
0010 #ifndef I18NNODE_H
0011 #define I18NNODE_H
0012 
0013 #include "node.h"
0014 
0015 namespace KTextTemplate
0016 {
0017 class Parser;
0018 }
0019 
0020 using namespace KTextTemplate;
0021 
0022 class I18nNodeFactory : public AbstractNodeFactory
0023 {
0024     Q_OBJECT
0025 public:
0026     I18nNodeFactory();
0027 
0028     Node *getNode(const QString &tagContent, Parser *p) const override;
0029 };
0030 
0031 class I18nVarNodeFactory : public AbstractNodeFactory
0032 {
0033     Q_OBJECT
0034 public:
0035     I18nVarNodeFactory();
0036 
0037     Node *getNode(const QString &tagContent, Parser *p) const override;
0038 };
0039 
0040 class I18nNode : public Node
0041 {
0042     Q_OBJECT
0043 public:
0044     I18nNode(const QString &sourceText, const QList<FilterExpression> &feList, QObject *parent = {});
0045     void render(OutputStream *stream, Context *c) const override;
0046 
0047 private:
0048     QString m_sourceText;
0049     QList<FilterExpression> m_filterExpressionList;
0050 };
0051 
0052 class I18nVarNode : public Node
0053 {
0054     Q_OBJECT
0055 public:
0056     I18nVarNode(const QString &sourceText, const QList<FilterExpression> &feList, const QString &resultName, QObject *parent = {});
0057     void render(OutputStream *stream, Context *c) const override;
0058 
0059 private:
0060     QString m_sourceText;
0061     QList<FilterExpression> m_filterExpressionList;
0062     QString m_resultName;
0063 };
0064 
0065 #endif