File indexing completed on 2025-02-09 04:28:36
0001 /* 0002 * This file is part of the KTextTemplate library 0003 * 0004 * SPDX-FileCopyrightText: 2020 Matthias Fehring <mf@huessenbergnetz.de> 0005 * 0006 * SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 0009 #ifndef L10N_FILESIZE_H 0010 #define L10N_FILESIZE_H 0011 0012 #include "node.h" 0013 0014 namespace KTextTemplate 0015 { 0016 class Parser; 0017 } 0018 0019 using namespace KTextTemplate; 0020 0021 class L10nFileSizeNodeFactory : public AbstractNodeFactory 0022 { 0023 Q_OBJECT 0024 public: 0025 L10nFileSizeNodeFactory(); 0026 0027 Node *getNode(const QString &tagContent, Parser *p) const override; 0028 }; 0029 0030 class L10nFileSizeVarNodeFactory : public AbstractNodeFactory 0031 { 0032 Q_OBJECT 0033 public: 0034 L10nFileSizeVarNodeFactory(); 0035 0036 Node *getNode(const QString &tagContent, Parser *p) const override; 0037 }; 0038 0039 class L10nFileSizeNode : public Node 0040 { 0041 Q_OBJECT 0042 public: 0043 L10nFileSizeNode(const FilterExpression &size, 0044 const FilterExpression &unitSystem, 0045 const FilterExpression &precision, 0046 const FilterExpression &multiplier, 0047 QObject *parent = nullptr); 0048 0049 void render(OutputStream *stream, Context *c) const override; 0050 0051 private: 0052 FilterExpression m_size; 0053 FilterExpression m_unitSystem; 0054 FilterExpression m_precision; 0055 FilterExpression m_multiplier; 0056 }; 0057 0058 class L10nFileSizeVarNode : public Node 0059 { 0060 Q_OBJECT 0061 public: 0062 L10nFileSizeVarNode(const FilterExpression &size, 0063 const FilterExpression &unitSystem, 0064 const FilterExpression &precision, 0065 const FilterExpression &multiplier, 0066 const QString &resultName, 0067 QObject *parent = nullptr); 0068 0069 void render(OutputStream *stream, Context *c) const override; 0070 0071 private: 0072 FilterExpression m_size; 0073 FilterExpression m_unitSystem; 0074 FilterExpression m_precision; 0075 FilterExpression m_multiplier; 0076 QString m_resultName; 0077 }; 0078 0079 #endif