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 I18NCPNODE_H
0011 #define I18NCPNODE_H
0012 
0013 #include "node.h"
0014 
0015 namespace KTextTemplate
0016 {
0017 class Parser;
0018 }
0019 
0020 using namespace KTextTemplate;
0021 
0022 class I18ncpNodeFactory : public AbstractNodeFactory
0023 {
0024     Q_OBJECT
0025 public:
0026     I18ncpNodeFactory();
0027 
0028     Node *getNode(const QString &tagContent, Parser *p) const override;
0029 };
0030 
0031 class I18ncpVarNodeFactory : public AbstractNodeFactory
0032 {
0033     Q_OBJECT
0034 public:
0035     I18ncpVarNodeFactory();
0036 
0037     Node *getNode(const QString &tagContent, Parser *p) const override;
0038 };
0039 
0040 class I18ncpNode : public Node
0041 {
0042     Q_OBJECT
0043 public:
0044     I18ncpNode(const QString &contextText, const QString &sourceText, const QString &pluralTex, const QList<FilterExpression> &feList, QObject *parent = {});
0045     void render(OutputStream *stream, Context *c) const override;
0046 
0047 private:
0048     QString m_contextText;
0049     QString m_sourceText;
0050     QString m_pluralText;
0051     QList<FilterExpression> m_filterExpressionList;
0052 };
0053 
0054 class I18ncpVarNode : public Node
0055 {
0056     Q_OBJECT
0057 public:
0058     I18ncpVarNode(const QString &contextText,
0059                   const QString &sourceText,
0060                   const QString &pluralText,
0061                   const QList<FilterExpression> &feList,
0062                   const QString &resultName,
0063                   QObject *parent = {});
0064     void render(OutputStream *stream, Context *c) const override;
0065 
0066 private:
0067     QString m_contextText;
0068     QString m_sourceText;
0069     QString m_pluralText;
0070     QList<FilterExpression> m_filterExpressionList;
0071     QString m_resultName;
0072 };
0073 
0074 #endif