21 #ifndef CUTELEE_SAFESTRING_H
22 #define CUTELEE_SAFESTRING_H
24 #include "cutelee_templates_export.h"
26 #include <QtCore/QString>
27 #include <QtCore/QVariant>
136 void setNeedsEscape(
bool needsEscape);
142 bool needsEscape()
const;
153 void setSafety(Safety safety);
175 #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 2)
179 #ifndef QT_NO_CAST_FROM_ASCII
183 m_safeString->m_safety = IsNotSafe;
184 return *m_safeString;
189 QString::append(str);
190 m_safeString->m_safety = IsNotSafe;
191 return *m_safeString;
200 SafeString &insert(
int position, QLatin1String str);
201 SafeString &insert(
int position,
const QChar *unicode,
int size);
205 SafeString leftJustified(
int width, QChar fill = QLatin1Char(
' '),
206 bool truncate = {})
const;
207 SafeString mid(
int position,
int n = -1)
const;
209 SafeString normalized(NormalizationForm mode)
const;
211 QChar::UnicodeVersion version)
const;
216 #ifndef QT_NO_CAST_FROM_ASCII
219 QString::prepend(ba);
220 m_safeString->m_safety = IsNotSafe;
221 return *m_safeString;
226 QString::prepend(str);
227 m_safeString->m_safety = IsNotSafe;
228 return *m_safeString;
237 SafeString &remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive);
239 Qt::CaseSensitivity cs = Qt::CaseSensitive);
241 Qt::CaseSensitivity cs = Qt::CaseSensitive);
242 SafeString &remove(
const QRegularExpression &rx);
246 SafeString &replace(
int position,
int n,
const QChar *unicode,
int size);
247 SafeString &replace(
int position,
int n, QChar after);
249 Qt::CaseSensitivity cs = Qt::CaseSensitive);
251 Qt::CaseSensitivity cs = Qt::CaseSensitive);
253 Qt::CaseSensitivity cs = Qt::CaseSensitive);
255 Qt::CaseSensitivity cs = Qt::CaseSensitive);
256 SafeString &replace(
const QChar *before,
int blen,
const QChar *after,
257 int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive);
259 Qt::CaseSensitivity cs = Qt::CaseSensitive);
261 Qt::CaseSensitivity cs = Qt::CaseSensitive);
262 SafeString &replace(QChar before, QChar after,
263 Qt::CaseSensitivity cs = Qt::CaseSensitive);
264 SafeString &replace(QLatin1String before, QLatin1String after,
265 Qt::CaseSensitivity cs = Qt::CaseSensitive);
267 Qt::CaseSensitivity cs = Qt::CaseSensitive);
269 Qt::CaseSensitivity cs = Qt::CaseSensitive);
271 Qt::CaseSensitivity cs = Qt::CaseSensitive);
273 Qt::CaseSensitivity cs = Qt::CaseSensitive);
274 SafeString &replace(QChar c, QLatin1String after,
275 Qt::CaseSensitivity cs = Qt::CaseSensitive);
280 SafeString rightJustified(
int width, QChar fill = QLatin1Char(
' '),
281 bool truncate = {})
const;
283 SafeString section(QChar sep,
int start,
int end = -1,
284 SectionFlags flags = SectionDefault)
const;
286 SectionFlags flags = SectionDefault)
const;
288 SectionFlags flags = SectionDefault)
const;
289 SafeString section(
const QRegularExpression ®,
int start,
int end = -1,
290 SectionFlags flags = SectionDefault)
const;
295 SafeString &setNum(qlonglong n,
int base = 10);
296 SafeString &setNum(qulonglong n,
int base = 10);
299 SafeString &setNum(
double n,
char format =
'g',
int precision = 6);
300 SafeString &setNum(
float n,
char format =
'g',
int precision = 6);
301 SafeString &setUnicode(
const QChar *unicode,
int size);
302 SafeString &setUtf16(
const ushort *unicode,
int size);
305 #if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
307 QString::SplitBehavior behavior = QString::KeepEmptyParts,
308 Qt::CaseSensitivity cs = Qt::CaseSensitive)
const;
309 QStringList split(
const QString &sep,
310 QString::SplitBehavior behavior = QString::KeepEmptyParts,
311 Qt::CaseSensitivity cs = Qt::CaseSensitive)
const;
312 QStringList split(
const QChar &sep, QString::SplitBehavior behavior = QString::KeepEmptyParts,
313 Qt::CaseSensitivity cs = Qt::CaseSensitive)
const;
314 QStringList split(
const QRegularExpression &rx,
315 QString::SplitBehavior behavior = QString::KeepEmptyParts)
const;
318 Qt::SplitBehavior behavior = Qt::KeepEmptyParts,
319 Qt::CaseSensitivity cs = Qt::CaseSensitive)
const;
320 QStringList split(
const QString &sep,
321 Qt::SplitBehavior behavior = Qt::KeepEmptyParts,
322 Qt::CaseSensitivity cs = Qt::CaseSensitive)
const;
323 QStringList split(
const QChar &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts,
324 Qt::CaseSensitivity cs = Qt::CaseSensitive)
const;
325 QStringList split(
const QRegularExpression &rx,
326 Qt::SplitBehavior behavior = Qt::KeepEmptyParts)
const;
350 operator QString()
const {
return m_nestedString; }
390 bool operator==(
const SafeString &other)
const;
397 bool operator==(
const QString &other)
const;
402 operator QVariant()
const {
return QVariant::fromValue(*
this); }
406 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.
const NestedString & get() const
@ IsSafe
The string is safe and requires no further escaping.
The Cutelee namespace holds all public Cutelee API.