21 #ifndef GRANTLEE_SAFESTRING_H
22 #define GRANTLEE_SAFESTRING_H
24 #include "grantlee_templates_export.h"
26 #include <QtCore/QString>
27 #include <QtCore/QVariant>
136 void setNeedsEscape(
bool needsEscape);
153 void setSafety(
Safety safety);
175 SafeString &append(
const QStringRef &reference);
177 #ifndef QT_NO_CAST_FROM_ASCII
181 m_safeString->m_safety = IsNotSafe;
182 return *m_safeString;
187 QString::append(str);
188 m_safeString->m_safety = IsNotSafe;
189 return *m_safeString;
197 SafeString &insert(
int position,
const QString &str);
198 SafeString &insert(
int position,
const QLatin1String &str);
199 SafeString &insert(
int position,
const QChar *unicode,
int size);
203 SafeString leftJustified(
int width, QChar fill = QLatin1Char(
' '),
204 bool truncate = {})
const;
205 SafeString mid(
int position,
int n = -1)
const;
207 SafeString normalized(NormalizationForm mode)
const;
209 QChar::UnicodeVersion version)
const;
213 SafeString &prepend(
const QLatin1String &str);
214 #ifndef QT_NO_CAST_FROM_ASCII
217 QString::prepend(ba);
218 m_safeString->m_safety = IsNotSafe;
219 return *m_safeString;
224 QString::prepend(str);
225 m_safeString->m_safety = IsNotSafe;
226 return *m_safeString;
235 SafeString &remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive);
237 Qt::CaseSensitivity cs = Qt::CaseSensitive);
239 Qt::CaseSensitivity cs = Qt::CaseSensitive);
240 SafeString &remove(
const QRegularExpression &rx);
243 SafeString &replace(
int position,
int n,
const QString &after);
244 SafeString &replace(
int position,
int n,
const QChar *unicode,
int size);
245 SafeString &replace(
int position,
int n, QChar after);
247 Qt::CaseSensitivity cs = Qt::CaseSensitive);
249 Qt::CaseSensitivity cs = Qt::CaseSensitive);
251 Qt::CaseSensitivity cs = Qt::CaseSensitive);
252 SafeString &replace(
const QString &before,
const QString &after,
253 Qt::CaseSensitivity cs = Qt::CaseSensitive);
254 SafeString &replace(
const QChar *before,
int blen,
const QChar *after,
255 int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive);
257 Qt::CaseSensitivity cs = Qt::CaseSensitive);
258 SafeString &replace(QChar ch,
const QString &after,
259 Qt::CaseSensitivity cs = Qt::CaseSensitive);
260 SafeString &replace(QChar before, QChar after,
261 Qt::CaseSensitivity cs = Qt::CaseSensitive);
262 SafeString &replace(
const QLatin1String &before,
const QLatin1String &after,
263 Qt::CaseSensitivity cs = Qt::CaseSensitive);
265 Qt::CaseSensitivity cs = Qt::CaseSensitive);
266 SafeString &replace(
const QLatin1String &before,
const QString &after,
267 Qt::CaseSensitivity cs = Qt::CaseSensitive);
269 Qt::CaseSensitivity cs = Qt::CaseSensitive);
270 SafeString &replace(
const QString &before,
const QLatin1String &after,
271 Qt::CaseSensitivity cs = Qt::CaseSensitive);
272 SafeString &replace(QChar c,
const QLatin1String &after,
273 Qt::CaseSensitivity cs = Qt::CaseSensitive);
275 SafeString &replace(
const QRegularExpression &rx,
const QString &after);
278 SafeString rightJustified(
int width, QChar fill = QLatin1Char(
' '),
279 bool truncate = {})
const;
281 SafeString section(QChar sep,
int start,
int end = -1,
282 SectionFlags flags = SectionDefault)
const;
284 SectionFlags flags = SectionDefault)
const;
285 SafeString section(
const QString &sep,
int start,
int end = -1,
286 SectionFlags flags = SectionDefault)
const;
287 SafeString section(
const QRegularExpression ®,
int start,
int end = -1,
288 SectionFlags flags = SectionDefault)
const;
293 SafeString &setNum(qlonglong n,
int base = 10);
294 SafeString &setNum(qulonglong n,
int base = 10);
297 SafeString &setNum(
double n,
char format =
'g',
int precision = 6);
298 SafeString &setNum(
float n,
char format =
'g',
int precision = 6);
299 SafeString &setUnicode(
const QChar *unicode,
int size);
300 SafeString &setUtf16(
const ushort *unicode,
int size);
304 SplitBehavior behavior = KeepEmptyParts,
305 Qt::CaseSensitivity cs = Qt::CaseSensitive)
const;
306 QStringList split(
const QString &sep,
307 SplitBehavior behavior = KeepEmptyParts,
308 Qt::CaseSensitivity cs = Qt::CaseSensitive)
const;
309 QStringList split(
const QChar &sep, SplitBehavior behavior = KeepEmptyParts,
310 Qt::CaseSensitivity cs = Qt::CaseSensitive)
const;
311 QStringList split(
const QRegularExpression &rx,
312 SplitBehavior behavior = KeepEmptyParts)
const;
335 operator QString()
const {
return m_nestedString; }
387 operator QVariant()
const {
return QVariant::fromValue(*
this); }
391 NestedString m_nestedString;
The NestedString is a QString whose methods always return a SafeString.
A QString wrapper class for containing whether a string is safe or needs to be escaped.
SafeString operator+(const QString &str)
SafeString & operator+=(const SafeString &str)
SafeString operator+(const SafeString &str)
@ IsSafe
The string is safe and requires no further escaping.
const NestedString & get() const
SafeString & operator=(const SafeString &str)
bool operator==(const QString &other) const
bool operator==(const SafeString &other) const
SafeString & operator+=(const QString &str)
SafeString(const SafeString &safeString)
SafeString(const QString &str, Safety safety=IsNotSafe)
SafeString(const QString &str, bool safe)
The Grantlee namespace holds all public Grantlee API.