21 #ifndef GRANTLEE_SAFESTRING_H
22 #define GRANTLEE_SAFESTRING_H
24 #include "grantlee_templates_export.h"
26 #include <QtCore/QString>
27 #include <QtCore/QVariant>
102 SafeString(
const QString &str, Safety safety = IsNotSafe );
113 void setNeedsEscape(
bool needsEscape );
119 bool needsEscape()
const;
130 void setSafety( Safety safety );
149 SafeString& append(
const QStringRef &reference );
150 SafeString& append(
const QLatin1String &str );
151 #ifndef QT_NO_CAST_FROM_ASCII
154 QString::append( ba );
155 m_safeString->m_safety = IsNotSafe;
156 return *m_safeString;
161 QString::append( str );
162 m_safeString->m_safety = IsNotSafe;
163 return *m_safeString;
171 SafeString& insert(
int position,
const QString &str );
172 SafeString& insert(
int position,
const QLatin1String &str );
173 SafeString& insert(
int position,
const QChar *unicode,
int size );
177 SafeString leftJustified(
int width, QChar fill = QLatin1Char(
' ' ),
bool truncate =
false )
const;
178 SafeString mid(
int position,
int n = -1 )
const;
180 SafeString normalized( NormalizationForm mode )
const;
181 SafeString normalized( NormalizationForm mode, QChar::UnicodeVersion version )
const;
185 SafeString& prepend(
const QLatin1String &str );
186 #ifndef QT_NO_CAST_FROM_ASCII
189 QString::prepend( ba );
190 m_safeString->m_safety = IsNotSafe;
191 return *m_safeString;
196 QString::prepend( str );
197 m_safeString->m_safety = IsNotSafe;
198 return *m_safeString;
207 SafeString&
remove( QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive );
209 SafeString&
remove(
const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive );
213 SafeString& replace(
int position,
int n,
const QString &after );
214 SafeString& replace(
int position,
int n,
const QChar *unicode,
int size );
215 SafeString& replace(
int position,
int n, QChar after );
217 SafeString& replace(
const QString &before,
const SafeString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
218 SafeString& replace(
const SafeString &before,
const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
219 SafeString& replace(
const QString &before,
const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
220 SafeString& replace(
const QChar *before,
int blen,
const QChar *after,
int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive );
221 SafeString& replace( QChar ch,
const SafeString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
222 SafeString& replace( QChar ch,
const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
223 SafeString& replace( QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
224 SafeString& replace(
const QLatin1String &before,
const QLatin1String &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
225 SafeString& replace(
const QLatin1String &before,
const SafeString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
226 SafeString& replace(
const QLatin1String &before,
const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
227 SafeString& replace(
const SafeString &before,
const QLatin1String &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
228 SafeString& replace(
const QString &before,
const QLatin1String &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
229 SafeString& replace( QChar c,
const QLatin1String &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
231 SafeString& replace(
const QRegExp &rx,
const QString &after );
234 SafeString rightJustified(
int width, QChar fill = QLatin1Char(
' ' ),
bool truncate =
false )
const;
236 SafeString section( QChar sep,
int start,
int end = -1, SectionFlags flags = SectionDefault )
const;
237 SafeString section(
const SafeString& sep,
int start,
int end = -1, SectionFlags flags = SectionDefault )
const;
238 SafeString section(
const QString& sep,
int start,
int end = -1, SectionFlags flags = SectionDefault )
const;
239 SafeString section(
const QRegExp& reg,
int start,
int end = -1, SectionFlags flags = SectionDefault )
const;
244 SafeString& setNum( qlonglong n,
int base = 10 );
245 SafeString& setNum( qulonglong n,
int base = 10 );
247 SafeString& setNum( ushort n,
int base = 10 );
248 SafeString& setNum(
double n,
char format =
'g',
int precision = 6 );
249 SafeString& setNum(
float n,
char format =
'g',
int precision = 6 );
250 SafeString& setUnicode(
const QChar * unicode,
int size );
251 SafeString& setUtf16(
const ushort * unicode,
int size );
254 QStringList split(
const SafeString& sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive )
const;
255 QStringList split(
const QString& sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive )
const;
256 QStringList split(
const QChar & sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive )
const;
257 QStringList split(
const QRegExp & rx, SplitBehavior behavior = KeepEmptyParts )
const;
271 return m_nestedString;
278 return m_nestedString;
284 operator QString()
const {
285 return m_nestedString;
326 bool operator==(
const SafeString &other )
const;
333 bool operator==(
const QString &other )
const;
338 operator QVariant()
const {
339 return QVariant::fromValue( *
this );
344 NestedString m_nestedString;
The string is safe and requires no further escaping.
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.
The Grantlee namespace holds all public Grantlee API.