📄 kwqstring.h
字号:
uint _maxUnicode:30;
uint _isUnicodeValid:1;
uint _isHeapAllocated:1; // Fragile, but the only way we can be sure the instance was created with 'new'.
uint _maxAscii:31;
uint _isAsciiValid:1;
char _internalBuffer[QS_INTERNAL_BUFFER_SIZE]; // Pad out to a (((size + 1) & ~15) + 14) size
private:
KWQStringData(const KWQStringData &);
KWQStringData &operator=(const KWQStringData &);
};
#define QSTRING_NULL QString()
class QString
OOM_MODIFIED
{
public:
static const char * const null; // not a QString as in Qt (can't have static constructor), but close enough to be compatible in most cases
QString();
QString(QChar);
QString(const QByteArray &);
QString(const QChar *, uint);
QString(const char *);
QString(const char *, int len);
QString(const QString &);
QString &operator=(const QString &);
~QString();
static QString fromLatin1(const char *);
static QString fromLatin1(const char *, int len);
static QString fromUtf8(const char *);
static QString fromUtf8(const char *, int len);
static QString FromDes(const TDesC&);
QString &operator=(char);
QString &operator=(QChar);
QString &operator=(const char *);
QString &operator=(const QCString &);
uint length() const;
const QChar *unicode() const;
const QChar *stableUnicode();
const char *latin1() const;
const char *ascii() const;
bool isAllASCII() const;
bool isAllLatin1() const;
bool hasFastLatin1() const;
void copyLatin1(char *buffer, uint position = 0, uint length = 0xffffffff) const;
QCString utf8() const { int length; return utf8(length); }
QCString utf8(int &length) const;
QCString local8Bit() const;
bool isNull() const;
bool isEmpty() const;
QChar at(uint) const;
int compare(const QString &) const;
int compare(const char *) const;
bool startsWith(const QString &) const;
bool startsWith(const char *) const;
bool startsWith(const char *, bool caseSensitive) const;
int find(char, int index = 0) const;
int find(QChar, int index = 0) const;
int find(const char *, int index = 0, bool cs = true) const;
int find(const QString &, int index = 0, bool cs = true) const;
int find(const QRegExp &, int index = 0) const;
int findRev(char, int index = -1) const;
int findRev(const QString& str, int index, bool cs = true) const;
int findRev(const char *, int index = -1) const;
int contains(char) const;
int contains(const char *, bool cs = true) const;
int contains(const QString &, bool cs = true) const;
int contains(QChar c, bool cs = true) const;
bool endsWith(const QString &) const;
// NOTE: toXXXXX integer functions only support base 10 and base 16
// NOTE: toShort, toUShort, toULong, and toDouble are NOT used but are kept
// for completeness
short toShort(bool *ok=NULL, int base=10) const;
// NOTE: ok and base NOT used for toUShort
ushort toUShort(bool *ok=NULL, int base=10) const;
int toInt(bool *ok=NULL, int base=10) const;
// NOTE: base NOT used for toUInt
uint toUInt(bool *ok=NULL, int base=10) const;
long toLong(bool *ok=NULL, int base=10) const;
ulong toULong(bool *ok=NULL, int base=10) const;
float toFloat(bool *ok=NULL) const;
double toDouble(bool *ok=NULL) const;
static QString number(int);
static QString number(uint);
static QString number(long);
static QString number(ulong);
static QString number(double);
bool findArg(int& pos, int& len) const;
QString arg(const QString &, int width=0) const;
QString arg(short, int width=0) const;
QString arg(ushort, int width=0) const;
QString arg(int, int width=0) const;
QString arg(uint, int width=0) const;
QString arg(long, int width=0) const;
QString arg(ulong, int width=0) const;
QString arg(double, int width=0) const;
QString left(uint) const;
QString right(uint) const;
QString mid(uint, uint len=0xffffffff) const;
QString copy() const;
QString lower() const;
QString stripWhiteSpace() const;
QString simplifyWhiteSpace() const;
QString &setUnicode(const QChar *, uint);
QString &setLatin1(const char *, int len=-1);
QString &setNum(short);
QString &setNum(ushort);
QString &setNum(int);
QString &setNum(uint);
QString &setNum(long);
QString &setNum(ulong);
QString &setNum(double);
QString &sprintf(const char *, ...);// __attribute__ ((format (printf, 2, 3)));
QString &append(const QString &);
QString &append(QChar);
QString &append(char);
QString &insert(uint, const QString &);
QString &insert(uint, QChar);
QString &insert(uint, char);
QString &insert(uint index, const char *insertChars, uint insertLength);
QString &prepend(const QString &);
QString &remove(uint, uint);
QString &replace(uint index, uint len, const QString &s);
QString &replace(char, const QString &);
QString &replace(QChar, const QString &);
QString &replace(const QString &, const QString &);
QString &replace(const QRegExp &, const QString &);
QString &replace(QChar, QChar);
QString &append(const QChar *, uint length);
QString &append(const char *, uint length);
QString &insert(uint position, const QChar *, uint length);
QString &prepend(const QChar *, uint length);
void fill(QChar, int len=-1);
void truncate(uint);
void reserve(uint);
uint hash() const;
bool operator!() const;
const QChar operator[](int) const;
QString &operator+=(const QString &s) { return append(s); }
QString &operator+=(QChar c) { return append(c); }
QString &operator+=(char c) { return append(c); }
TPtrC Des() const;
void SetBufferFromDes(const TDesC& aBuf);
private:
// Used by QConstString.
QString(KWQStringData *constData, bool /*dummy*/);
void detach();
void detachAndDiscardCharacters();
void detachIfInternal();
void deref();
QChar *forceUnicode();
bool setLength(uint);
KWQStringData **dataHandle;
KWQStringData internalData;
static KWQStringData *shared_null;
static KWQStringData *makeSharedNull();
static KWQStringData **shared_null_handle;
static KWQStringData **makeSharedNullHandle();
friend bool operator==(const QString &, const QString &);
friend bool operator==(const QString &, const char *);
friend class QConstString;
friend class QGDict;
friend struct KWQStringData;
};
QString operator+(const QString &, const QString &);
QString operator+(const QString &, const char *);
QString operator+(const QString &, QChar);
QString operator+(const QString &, char);
QString operator+(const char *, const QString &);
QString operator+(QChar, const QString &);
QString operator+(char, const QString &);
inline char *KWQStringData::ascii()
{
return _isAsciiValid ? _ascii : makeAscii();
}
inline QChar *KWQStringData::unicode()
{
return _isUnicodeValid ? _unicode : makeUnicode();
}
inline uint QString::length() const
{
return dataHandle[0]->_length;
}
inline bool QString::isEmpty() const
{
return dataHandle[0]->_length == 0;
}
inline const char *QString::latin1() const
{
return dataHandle[0]->ascii();
}
inline const QChar *QString::unicode() const
{
return dataHandle[0]->unicode();
}
/*inline CFStringRef QString::getCFString() const
{
return (CFStringRef)getNSString();
}*/
inline QString QString::fromLatin1(const char *chs)
{
return chs;
}
inline QString QString::fromLatin1(const char *chs, int length)
{
return QString(chs, length);
}
inline const char *QString::ascii() const
{
return latin1();
}
inline float QString::toFloat(bool *ok) const
{
return toDouble(ok);
}
inline bool QString::operator!() const
{
return isNull();
}
inline const QChar QString::operator[](int index) const
{
return at(index);
}
inline bool operator==(const char *chs, const QString &qs)
{
return qs == chs;
}
inline bool operator!=(const QString &qs1, const QString &qs2)
{
return !(qs1 == qs2);
}
inline bool operator!=(const QString &qs, const char *chs)
{
return !(qs == chs);
}
inline bool operator!=(const char *chs, const QString &qs)
{
return !(qs == chs);
}
inline bool operator<(const QString &qs1, const QString &qs2)
{
return qs1.compare(qs2) < 0;
}
inline bool operator<(const QString &qs, const char *chs)
{
return qs.compare(chs) < 0;
}
inline bool operator<(const char *chs, const QString &qs)
{
return qs.compare(chs) > 0;
}
inline bool operator<=(const QString &qs1, const QString &qs2)
{
return qs1.compare(qs2) <= 0;
}
inline bool operator<=(const QString &qs, const char *chs)
{
return qs.compare(chs) <= 0;
}
inline bool operator<=(const char *chs, const QString &qs)
{
return qs.compare(chs) >= 0;
}
inline bool operator>(const QString &qs1, const QString &qs2)
{
return qs1.compare(qs2) > 0;
}
inline bool operator>(const QString &qs, const char *chs)
{
return qs.compare(chs) > 0;
}
inline bool operator>(const char *chs, const QString &qs)
{
return qs.compare(chs) < 0;
}
inline bool operator>=(const QString &qs1, const QString &qs2)
{
return qs1.compare(qs2) >= 0;
}
inline bool operator>=(const QString &qs, const char *chs)
{
return qs.compare(chs) >= 0;
}
inline bool operator>=(const char *chs, const QString &qs)
{
return qs.compare(chs) <= 0;
}
class QConstString : private QString {
public:
QConstString(const QChar *, uint);
~QConstString();
const QString &string() const { return *this; }
};
//extern const CFDictionaryKeyCallBacks CFDictionaryQStringKeyCallBacks;
#ifdef __WINSCW__
#pragma enumsalwaysint reset
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -