File indexing completed on 2025-02-09 04:28:33
0001 /* 0002 This file is part of the KTextTemplate library 0003 0004 SPDX-FileCopyrightText: 2009, 2010 Stephen Kelly <steveire@gmail.com> 0005 0006 SPDX-License-Identifier: LGPL-2.1-or-later 0007 0008 */ 0009 0010 #ifndef STRINGFILTERS_H 0011 #define STRINGFILTERS_H 0012 0013 // krazy:excludeall=includes 0014 0015 #include "filter.h" 0016 0017 using namespace KTextTemplate; 0018 0019 class AddSlashesFilter : public Filter 0020 { 0021 public: 0022 bool isSafe() const override 0023 { 0024 return true; 0025 } 0026 0027 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0028 }; 0029 0030 class CapFirstFilter : public Filter 0031 { 0032 public: 0033 bool isSafe() const override 0034 { 0035 return true; 0036 } 0037 0038 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0039 }; 0040 0041 class EscapeJsFilter : public Filter 0042 { 0043 public: 0044 EscapeJsFilter(); 0045 0046 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0047 0048 private: 0049 QList<std::pair<QString, QString>> m_jsEscapes; 0050 }; 0051 0052 class FixAmpersandsFilter : public Filter 0053 { 0054 public: 0055 bool isSafe() const override 0056 { 0057 return true; 0058 } 0059 0060 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0061 }; 0062 0063 class CutFilter : public Filter 0064 { 0065 public: 0066 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0067 }; 0068 0069 class SafeFilter : public Filter 0070 { 0071 public: 0072 bool isSafe() const override 0073 { 0074 return true; 0075 } 0076 0077 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0078 }; 0079 0080 class LineNumbersFilter : public Filter 0081 { 0082 public: 0083 bool isSafe() const override 0084 { 0085 return true; 0086 } 0087 0088 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0089 }; 0090 0091 class LowerFilter : public Filter 0092 { 0093 public: 0094 bool isSafe() const override 0095 { 0096 return true; 0097 } 0098 0099 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0100 }; 0101 0102 class StringFormatFilter : public Filter 0103 { 0104 public: 0105 bool isSafe() const override 0106 { 0107 return true; 0108 } 0109 0110 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0111 }; 0112 0113 class TitleFilter : public Filter 0114 { 0115 public: 0116 bool isSafe() const override 0117 { 0118 return true; 0119 } 0120 0121 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0122 }; 0123 0124 class TruncateWordsFilter : public Filter 0125 { 0126 public: 0127 bool isSafe() const override 0128 { 0129 return true; 0130 } 0131 0132 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0133 }; 0134 0135 class UpperFilter : public Filter 0136 { 0137 public: 0138 // & may be safe, but it will be changed to & which is not safe. 0139 bool isSafe() const override 0140 { 0141 return false; 0142 } 0143 0144 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0145 }; 0146 0147 class WordCountFilter : public Filter 0148 { 0149 public: 0150 bool isSafe() const override 0151 { 0152 return true; 0153 } 0154 0155 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0156 }; 0157 0158 class LJustFilter : public Filter 0159 { 0160 public: 0161 bool isSafe() const override 0162 { 0163 return true; 0164 } 0165 0166 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0167 }; 0168 0169 class RJustFilter : public Filter 0170 { 0171 public: 0172 bool isSafe() const override 0173 { 0174 return true; 0175 } 0176 0177 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0178 }; 0179 0180 class CenterFilter : public Filter 0181 { 0182 public: 0183 bool isSafe() const override 0184 { 0185 return true; 0186 } 0187 0188 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0189 }; 0190 0191 class EscapeFilter : public Filter 0192 { 0193 public: 0194 bool isSafe() const override 0195 { 0196 return true; 0197 } 0198 0199 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0200 }; 0201 0202 class ForceEscapeFilter : public Filter 0203 { 0204 public: 0205 bool isSafe() const override 0206 { 0207 return true; 0208 } 0209 0210 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0211 }; 0212 0213 class RemoveTagsFilter : public Filter 0214 { 0215 public: 0216 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0217 }; 0218 0219 class StripTagsFilter : public Filter 0220 { 0221 public: 0222 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0223 }; 0224 0225 class WordWrapFilter : public Filter 0226 { 0227 public: 0228 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0229 0230 bool isSafe() const override 0231 { 0232 return true; 0233 } 0234 }; 0235 0236 class FloatFormatFilter : public Filter 0237 { 0238 public: 0239 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0240 0241 bool isSafe() const override 0242 { 0243 return true; 0244 } 0245 }; 0246 0247 class SafeSequenceFilter : public Filter 0248 { 0249 public: 0250 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0251 0252 bool isSafe() const override 0253 { 0254 return true; 0255 } 0256 }; 0257 0258 class LineBreaksFilter : public Filter 0259 { 0260 public: 0261 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0262 0263 bool isSafe() const override 0264 { 0265 return true; 0266 } 0267 }; 0268 0269 class LineBreaksBrFilter : public Filter 0270 { 0271 public: 0272 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0273 0274 bool isSafe() const override 0275 { 0276 return true; 0277 } 0278 }; 0279 0280 class SlugifyFilter : public Filter 0281 { 0282 public: 0283 QVariant doFilter(const QVariant &input, const QVariant &argument = {}, bool autoescape = {}) const override; 0284 0285 bool isSafe() const override 0286 { 0287 return true; 0288 } 0289 }; 0290 0291 class FileSizeFormatFilter : public Filter 0292 { 0293 public: 0294 QVariant doFilter(const QVariant &input, const QVariant &argument = QVariant(), bool autoescape = {}) const override; 0295 0296 bool isSafe() const override 0297 { 0298 return true; 0299 } 0300 }; 0301 0302 class TruncateCharsFilter : public Filter 0303 { 0304 public: 0305 QVariant doFilter(const QVariant &input, const QVariant &argument = QVariant(), bool autoescape = {}) const override; 0306 0307 bool isSafe() const override 0308 { 0309 return true; 0310 } 0311 }; 0312 0313 #endif