21 #ifndef GRANTLEE_SAFESTRING_H
22 #define GRANTLEE_SAFESTRING_H
24 #include "grantlee_core_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 );
152 #ifndef GRANTLEE_NO_CAST_FROM_ASCII
161 SafeString& insert(
int position,
const QString &str );
162 SafeString& insert(
int position,
const QLatin1String &str );
163 SafeString& insert(
int position,
const QChar *unicode,
int size );
167 SafeString leftJustified(
int width, QChar fill = QLatin1Char(
' ' ),
bool truncate =
false )
const;
168 SafeString mid(
int position,
int n = -1 )
const;
170 SafeString normalized( NormalizationForm mode )
const;
171 SafeString normalized( NormalizationForm mode, QChar::UnicodeVersion version )
const;
175 SafeString& prepend(
const QLatin1String &str );
176 #ifndef GRANTLEE_NO_CAST_FROM_ASCII
186 SafeString&
remove( QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive );
188 SafeString&
remove(
const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive );
192 SafeString& replace(
int position,
int n,
const QString &after );
193 SafeString& replace(
int position,
int n,
const QChar *unicode,
int size );
194 SafeString& replace(
int position,
int n, QChar after );
196 SafeString& replace(
const QString &before,
const SafeString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
197 SafeString& replace(
const SafeString &before,
const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
198 SafeString& replace(
const QString &before,
const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
199 SafeString& replace(
const QChar *before,
int blen,
const QChar *after,
int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive );
200 SafeString& replace( QChar ch,
const SafeString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
201 SafeString& replace( QChar ch,
const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
202 SafeString& replace( QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
203 SafeString& replace(
const QLatin1String &before,
const QLatin1String &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
204 SafeString& replace(
const QLatin1String &before,
const SafeString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
205 SafeString& replace(
const QLatin1String &before,
const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
206 SafeString& replace(
const SafeString &before,
const QLatin1String &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
207 SafeString& replace(
const QString &before,
const QLatin1String &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
208 SafeString& replace( QChar c,
const QLatin1String &after, Qt::CaseSensitivity cs = Qt::CaseSensitive );
210 SafeString& replace(
const QRegExp &rx,
const QString &after );
213 SafeString rightJustified(
int width, QChar fill = QLatin1Char(
' ' ),
bool truncate =
false )
const;
215 SafeString section( QChar sep,
int start,
int end = -1, SectionFlags flags = SectionDefault )
const;
216 SafeString section(
const SafeString& sep,
int start,
int end = -1, SectionFlags flags = SectionDefault )
const;
217 SafeString section(
const QString& sep,
int start,
int end = -1, SectionFlags flags = SectionDefault )
const;
218 SafeString section(
const QRegExp& reg,
int start,
int end = -1, SectionFlags flags = SectionDefault )
const;
223 SafeString& setNum( qlonglong n,
int base = 10 );
224 SafeString& setNum( qulonglong n,
int base = 10 );
226 SafeString& setNum( ushort n,
int base = 10 );
227 SafeString& setNum(
double n,
char format =
'g',
int precision = 6 );
228 SafeString& setNum(
float n,
char format =
'g',
int precision = 6 );
229 SafeString& setUnicode(
const QChar * unicode,
int size );
230 SafeString& setUtf16(
const ushort * unicode,
int size );
233 QStringList split(
const SafeString& sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive )
const;
234 QStringList split(
const QString& sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive )
const;
235 QStringList split(
const QChar & sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive )
const;
236 QStringList split(
const QRegExp & rx, SplitBehavior behavior = KeepEmptyParts )
const;
250 return m_nestedString;
257 return m_nestedString;
263 operator QString()
const {
264 return m_nestedString;
305 bool operator==(
const SafeString &other )
const;
312 bool operator==(
const QString &other )
const;
317 operator QVariant()
const {
318 return QVariant::fromValue( *
this );
323 NestedString m_nestedString;