193#include "private/qtextstream_p.h"
198#include <private/qdebug_p.h>
199#include <private/qtools_p.h>
202#include "private/qlocale_p.h"
203#include "private/qstringconverter_p.h"
211#define CHECK_VALID_STREAM(x) do { \
212 if (!d->string && !d->device) { \
213 qWarning("QTextStream: No device"); \
218#define IMPLEMENT_STREAM_RIGHT_INT_OPERATOR(type) do { \
220 CHECK_VALID_STREAM(*this); \
222 switch (d->getNumber(&tmp)) { \
223 case QTextStreamPrivate::npsOk: \
226 case QTextStreamPrivate::npsMissingDigit: \
227 case QTextStreamPrivate::npsInvalidPrefix: \
229 setStatus(atEnd() ? QTextStream::ReadPastEnd : QTextStream::ReadCorruptData); \
232 return *this; } while (0)
234#define IMPLEMENT_STREAM_RIGHT_REAL_OPERATOR(type) do { \
236 CHECK_VALID_STREAM(*this); \
238 if (d->getReal(&tmp)) { \
242 setStatus(atEnd() ? QTextStream::ReadPastEnd : QTextStream::ReadCorruptData); \
244 return *this; } while (0)
257 : readConverterSavedStateOffset(0),
338#
if !defined(QT_NO_QOBJECT)
373#if defined (QTEXTSTREAM_DEBUG)
377#if defined (QTEXTSTREAM_DEBUG)
378 qDebug(
"QTextStreamPrivate::fillReadBuffer(), device->read(\"%s\", %d) == %d",
386 if (
readBuffer.size() > oldReadBufferSize && textModeEnabled) {
392 int n = oldReadBufferSize;
397 if (++writePtr == endPtr)
415#if defined (QTEXTSTREAM_DEBUG)
416 qDebug(
"QTextStreamPrivate::fillReadBuffer() read %d bytes from device. readBuffer = [%s]",
int(bytesRead),
444 if (
status != QTextStream::Ok)
450#if defined (Q_OS_WIN)
453 if (textModeEnabled) {
465#if defined (QTEXTSTREAM_DEBUG)
466 qDebug(
"QTextStreamPrivate::flushWriteBuffer(), device->write(\"%s\") == %d",
470#if defined (Q_OS_WIN)
477 status = QTextStream::WriteFailed;
489#if defined (QTEXTSTREAM_DEBUG)
490 qDebug(
"QTextStreamPrivate::flushWriteBuffer() wrote %d bytes",
494 status = QTextStream::WriteFailed;
510#if defined (QTEXTSTREAM_DEBUG)
511 qDebug(
"QTextStreamPrivate::read() maxlen = %d, token length = %d", maxlen,
ret.length());
527 bool consumeDelimiter =
false;
528 bool foundToken =
false;
539 chPtr =
string->constData();
540 endOffset =
string->size();
542 chPtr += startOffset;
544 for (; !foundToken && startOffset < endOffset && (!maxlen || totalSize < maxlen); ++startOffset) {
564 delimSize = (lastChar == u
'\r') ? 2 : 1;
565 consumeDelimiter =
true;
572 && (!maxlen || totalSize < maxlen)
575 if (totalSize == 0) {
576#if defined (QTEXTSTREAM_DEBUG)
577 qDebug(
"QTextStreamPrivate::scan() reached the end of input.");
584 if (delimiter ==
EndOfLine && totalSize > 0 && !foundToken) {
586 && lastChar == u
'\r') {
587 consumeDelimiter =
true;
594 *
length = totalSize - delimSize;
601 if (!consumeDelimiter)
604#if defined (QTEXTSTREAM_DEBUG)
605 qDebug(
"QTextStreamPrivate::scan(%p, %p, %d, %x) token length = %d, delimiter = %d",
606 ptr,
length, maxlen, (
int)delimiter, totalSize - delimSize, delimSize);
637#if defined (QTEXTSTREAM_DEBUG)
638 qDebug(
"QTextStreamPrivate::consume(%d)",
size);
718 string->append(
data);
784 if (
params.fieldWidth > 0)
800 const int padSize =
params.fieldWidth -
len;
802 switch (
params.fieldAlignment) {
803 case QTextStream::AlignLeft:
806 case QTextStream::AlignRight:
807 case QTextStream::AlignAccountingStyle:
810 case QTextStream::AlignCenter:
812 right = padSize - padSize/2;
829 if (
params.fieldAlignment == QTextStream::AlignAccountingStyle &&
number) {
858 if (
params.fieldAlignment == QTextStream::AlignAccountingStyle &&
number) {
886QTextStream::QTextStream()
889#if defined (QTEXTSTREAM_DEBUG)
890 qDebug(
"QTextStream::QTextStream()");
902#if defined (QTEXTSTREAM_DEBUG)
903 qDebug(
"QTextStream::QTextStream(QIODevice *device == *%p)",
909 d->deviceClosedNotifier.setupDevice(
this,
d->device);
918QTextStream::QTextStream(
QString *
string, OpenMode openMode)
921#if defined (QTEXTSTREAM_DEBUG)
922 qDebug(
"QTextStream::QTextStream(QString *string == *%p, openMode = %d)",
923 string,
int(openMode));
927 d->stringOpenMode = openMode;
939#if defined (QTEXTSTREAM_DEBUG)
940 qDebug(
"QTextStream::QTextStream(QByteArray *array == *%p, openMode = %d)",
941 array,
int(openMode));
945 d->device->open(openMode);
946 d->deleteDevice =
true;
948 d->deviceClosedNotifier.setupDevice(
this,
d->device);
966#if defined (QTEXTSTREAM_DEBUG)
967 qDebug(
"QTextStream::QTextStream(const QByteArray &array == *(%p), openMode = %d)",
968 &
array,
int(openMode));
976 d->deleteDevice =
true;
978 d->deviceClosedNotifier.setupDevice(
this,
d->device);
994QTextStream::QTextStream(FILE *fileHandle, OpenMode openMode)
997#if defined (QTEXTSTREAM_DEBUG)
998 qDebug(
"QTextStream::QTextStream(FILE *fileHandle = %p, openMode = %d)",
999 fileHandle,
int(openMode));
1006 d->deleteDevice =
true;
1007#ifndef QT_NO_QOBJECT
1008 d->deviceClosedNotifier.setupDevice(
this,
d->device);
1019QTextStream::~QTextStream()
1022#if defined (QTEXTSTREAM_DEBUG)
1023 qDebug(
"QTextStream::~QTextStream()");
1025 if (!
d->writeBuffer.isEmpty())
1026 d->flushWriteBuffer();
1034void QTextStream::reset()
1046void QTextStream::flush()
1049 d->flushWriteBuffer();
1059 d->lastTokenSize = 0;
1063 d->flushWriteBuffer();
1064 if (!
d->device->seek(
pos))
1066 d->resetReadBuffer();
1068 d->toUtf16.resetState();
1069 d->fromUtf16.resetState();
1074 if (
d->string && pos <= d->
string->size()) {
1075 d->stringOffset = int(
pos);
1095qint64 QTextStream::pos()
const
1100 if (
d->readBuffer.isEmpty())
1101 return d->device->pos();
1102 if (
d->device->isSequential())
1106 if (!
d->device->seek(
d->readBufferStartDevicePos))
1114 if (
d->readBufferStartDevicePos == 0)
1119 int oldReadBufferOffset =
d->readBufferOffset +
d->readConverterSavedStateOffset;
1120 while (
d->readBuffer.size() < oldReadBufferOffset) {
1128 return d->device->pos();
1132 return d->stringOffset;
1134 qWarning(
"QTextStream::pos: no device");
1149void QTextStream::skipWhiteSpace()
1154 d->consumeLastToken();
1171 if (
d->deleteDevice) {
1172#ifndef QT_NO_QOBJECT
1173 d->deviceClosedNotifier.disconnect();
1176 d->deleteDevice =
false;
1182 d->resetReadBuffer();
1183#ifndef QT_NO_QOBJECT
1184 d->deviceClosedNotifier.setupDevice(
this,
d->device);
1207void QTextStream::setString(
QString *
string, OpenMode openMode)
1211 if (
d->deleteDevice) {
1212#ifndef QT_NO_QOBJECT
1213 d->deviceClosedNotifier.disconnect();
1214 d->device->blockSignals(
true);
1217 d->deleteDevice =
false;
1223 d->stringOpenMode = openMode;
1232QString *QTextStream::string()
const
1246void QTextStream::setFieldAlignment(FieldAlignment
mode)
1249 d->params.fieldAlignment =
mode;
1257QTextStream::FieldAlignment QTextStream::fieldAlignment()
const
1260 return d->params.fieldAlignment;
1278void QTextStream::setPadChar(
QChar ch)
1281 d->params.padChar =
ch;
1289QChar QTextStream::padChar()
const
1292 return d->params.padChar;
1307void QTextStream::setFieldWidth(
int width)
1310 d->params.fieldWidth =
width;
1318int QTextStream::fieldWidth()
const
1321 return d->params.fieldWidth;
1332void QTextStream::setNumberFlags(NumberFlags
flags)
1335 d->params.numberFlags =
flags;
1343QTextStream::NumberFlags QTextStream::numberFlags()
const
1346 return d->params.numberFlags;
1359void QTextStream::setIntegerBase(
int base)
1362 d->params.integerBase =
base;
1371int QTextStream::integerBase()
const
1374 return d->params.integerBase;
1385void QTextStream::setRealNumberNotation(RealNumberNotation notation)
1388 d->params.realNumberNotation = notation;
1396QTextStream::RealNumberNotation QTextStream::realNumberNotation()
const
1399 return d->params.realNumberNotation;
1412void QTextStream::setRealNumberPrecision(
int precision)
1416 qWarning(
"QTextStream::setRealNumberPrecision: Invalid precision (%d)",
precision);
1417 d->params.realNumberPrecision = 6;
1431int QTextStream::realNumberPrecision()
const
1434 return d->params.realNumberPrecision;
1443QTextStream::Status QTextStream::status()
const
1456void QTextStream::resetStatus()
1472void QTextStream::setStatus(Status status)
1475 if (
d->status ==
Ok)
1485bool QTextStream::atEnd()
const
1491 return d->string->size() ==
d->stringOffset;
1492 return d->readBuffer.isEmpty() &&
d->device->atEnd();
1510 return d->read(INT_MAX);
1534 readLineInto(&
line, maxlen);
1567 if (!
d->string && !
d->device) {
1568 qWarning(
"QTextStream: No device");
1574 const QChar *readPtr;
1584 d->consumeLastToken();
1604 return d->read(
int(maxlen));
1632 }
else if (ch2 == u
'b') {
1655 QChar pf1, pf2, dig;
1657 if (!
getChar(&pf1) || pf1 != u
'0')
1665 if (
n ==
'0' ||
n ==
'1') {
1685 if (!
getChar(&pf) || pf != u
'0')
1714 if (!
sign.isDigit()) {
1726 val +=
ch.digitValue();
1746 QChar pf1, pf2, dig;
1748 if (!
getChar(&pf1) || pf1 != u
'0')
1820 { 0, Sign, Mantissa,
Dot, 0, Inf1, Nan1, 0, 0, 0 },
1821 { 0, 0, Mantissa,
Dot, 0, Inf1, Nan1, 0, 0, 0 },
1822 { Done, Done, Mantissa,
Dot, ExpMark, 0, 0, 0, 0, 0 },
1823 { 0, 0, Abscissa, 0, 0, 0, 0, 0, 0, 0 },
1824 { Done, Done, Abscissa, Done, ExpMark, 0, 0, 0, 0, 0 },
1825 { 0, ExpSign, Exponent, 0, 0, 0, 0, 0, 0, 0 },
1826 { 0, 0, Exponent, 0, 0, 0, 0, 0, 0, 0 },
1827 { Done, Done, Exponent, Done, Done, 0, 0, 0, 0, 0 },
1828 { 0, 0, 0, 0, 0, 0, 0, 0, Nan2, 0 },
1829 { 0, 0, 0, 0, 0, 0, NanInf, 0, 0, 0 },
1830 { 0, 0, 0, 0, 0, 0, Inf2, 0, 0, 0 },
1831 { 0, 0, 0, 0, 0, 0, 0, NanInf, 0, 0 },
1832 { Done, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
1835 ParserState
state = Init;
1847 switch (
c.unicode()) {
1848 case '0':
case '1':
case '2':
case '3':
case '4':
1849 case '5':
case '6':
case '7':
case '8':
case '9':
1900 buf[
i++] =
c.toLatin1();
1943 if (!
d->getChar(&
c))
1944 setStatus(ReadPastEnd);
2112 d->consumeLastToken();
2117 setStatus(ReadPastEnd);
2122 d->consumeLastToken();
2139 d->consumeLastToken();
2144 setStatus(ReadPastEnd);
2151 d->consumeLastToken();
2175 d->consumeLastToken();
2180 setStatus(ReadPastEnd);
2187 d->consumeLastToken();
2199 const QTextStream::NumberFlags numberFlags =
params.numberFlags;
2200 if (numberFlags & QTextStream::ShowBase)
2202 if (numberFlags & QTextStream::ForceSign)
2204 if (numberFlags & QTextStream::UppercaseBase)
2206 if (numberFlags & QTextStream::UppercaseDigits)
2216 if (negative &&
base == 10) {
2219 }
else if (negative) {
2377 d->putNumber(
i,
false);
2394 return *
this << double(
f);
2408 switch (realNumberNotation()) {
2412 case ScientificNotation:
2421 const QLocale::NumberOptions numberOptions =
locale().numberOptions();
2422 if (numberFlags() & ShowBase)
2424 if (numberFlags() & ForceSign)
2426 if (numberFlags() & UppercaseBase)
2428 if (numberFlags() & UppercaseDigits)
2430 if (numberFlags() & ForcePoint) {
2445 d->putString(
num,
true);
2460 d->putString(
string);
2475 d->putString(
string.cbegin(),
int(
string.
size()));
2489 d->putString(
string);
2520QTextStream &QTextStream::operator<<(
const char *
string)
2538 const int oldBase =
d->params.integerBase;
2539 const NumberFlags oldFlags =
d->params.numberFlags;
2540 d->params.integerBase = 16;
2541 d->params.numberFlags |= ShowBase;
2543 d->params.integerBase = oldBase;
2544 d->params.numberFlags = oldFlags;
2560 stream.setIntegerBase(2);
2574 stream.setIntegerBase(8);
2588 stream.setIntegerBase(10);
2603 stream.setIntegerBase(16);
2617 stream.setNumberFlags(
stream.numberFlags() | QTextStream::ShowBase);
2631 stream.setNumberFlags(
stream.numberFlags() | QTextStream::ForceSign);
2645 stream.setNumberFlags(
stream.numberFlags() | QTextStream::ForcePoint);
2659 stream.setNumberFlags(
stream.numberFlags() &= ~QTextStream::ShowBase);
2673 stream.setNumberFlags(
stream.numberFlags() &= ~QTextStream::ForceSign);
2687 stream.setNumberFlags(
stream.numberFlags() &= ~QTextStream::ForcePoint);
2701 stream.setNumberFlags(
stream.numberFlags() | QTextStream::UppercaseBase);
2715 stream.setNumberFlags(
stream.numberFlags() | QTextStream::UppercaseDigits);
2729 stream.setNumberFlags(
stream.numberFlags() & ~QTextStream::UppercaseBase);
2743 stream.setNumberFlags(
stream.numberFlags() & ~QTextStream::UppercaseDigits);
2757 stream.setRealNumberNotation(QTextStream::FixedNotation);
2771 stream.setRealNumberNotation(QTextStream::ScientificNotation);
2785 stream.setFieldAlignment(QTextStream::AlignLeft);
2799 stream.setFieldAlignment(QTextStream::AlignRight);
2813 stream.setFieldAlignment(QTextStream::AlignCenter);
2910 stream.setGenerateByteOrderMark(
true);
2935 if (
d->encoding == encoding)
2939 if (!
d->readBuffer.isEmpty()) {
2940 if (!
d->device->isSequential()) {
2945 d->encoding = encoding;
2947 bool generateBOM = !
d->hasWrittenData &&
d->generateBOM;
2951 if (seekPos >=0 && !
d->readBuffer.isEmpty())
2977void QTextStream::setAutoDetectUnicode(
bool enabled)
2989bool QTextStream::autoDetectUnicode()
const
2992 return d->autoDetectUnicode;
3003void QTextStream::setGenerateByteOrderMark(
bool generate)
3006 if (
d->hasWrittenData ||
d->generateBOM == generate)
3009 d->generateBOM = generate;
3020bool QTextStream::generateByteOrderMark()
const
3023 return d->generateBOM;
3037void QTextStream::setLocale(
const QLocale &locale)
3050QLocale QTextStream::locale()
const
3058#ifndef QT_NO_QOBJECT
3059#include "moc_qtextstream_p.cpp"
IOBluetoothDevice * device
\inmodule QtCore \reentrant
void setData(const QByteArray &data)
Sets the contents of the internal buffer to be data.
const char * constData() const noexcept
Returns a pointer to the const data stored in the byte array.
constexpr bool isDigit() const noexcept
Returns true if the character is a decimal digit (Number_DecimalDigit); otherwise returns false.
QChar toLower() const noexcept
Returns the lowercase equivalent if the character is uppercase or titlecase; otherwise returns the ch...
int digitValue() const noexcept
Returns the numeric value of the digit, or -1 if the character is not a digit.
constexpr char16_t unicode() const noexcept
Returns the numeric Unicode value of the QChar.
static constexpr QChar fromLatin1(char c) noexcept
Converts the Latin-1 character c to its equivalent QChar.
bool flush()
Flushes any buffered data to the file.
int handle() const
Returns the file handle of the file.
bool open(OpenMode flags) override
Opens the file using OpenMode mode, returning true if successful; otherwise false.
\inmodule QtCore \reentrant
virtual qint64 pos() const
For random-access devices, this function returns the position that data is written to or read from.
virtual bool isSequential() const
Returns true if this device is sequential; otherwise returns false.
qint64 readLine(char *data, qint64 maxlen)
This function reads a line of ASCII characters from the device, up to a maximum of maxSize - 1 bytes,...
void setTextModeEnabled(bool enabled)
If enabled is true, this function sets the \l Text flag on the device; otherwise the \l Text flag is ...
qint64 write(const char *data, qint64 len)
Writes at most maxSize bytes of data from data to the device.
virtual bool atEnd() const
Returns true if the current read and write position is at the end of the device (i....
bool isTextModeEnabled() const
Returns true if the \l Text flag is enabled; otherwise returns false.
qint64 read(char *data, qint64 maxlen)
Reads at most maxSize bytes from the device into data, and returns the number of bytes read.
const QLocaleData *const m_data
QString decimalPoint() const
double toDouble(const QString &s, bool *ok=nullptr) const
Returns the double represented by the localized string s.
QString negativeSign() const
QString groupSeparator() const
static QLocale c()
Returns a QLocale object initialized to the "C" locale.
QString exponential() const
QString positiveSign() const
NumberOptions numberOptions() const
@ IncludeTrailingZeroesAfterDot
@ OmitLeadingZeroInExponent
bool blockSignals(bool b) noexcept
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke...
bool isValid() const noexcept
Returns true if this is a valid string converter that can be used for encoding or decoding text.
static Q_CORE_EXPORT const char * nameForEncoding(Encoding e)
Returns the canonical name for encoding e.
void resetState() noexcept
Resets the internal state of the converter, clearing potential errors or partial conversions.
Encoding
\value Utf8 Create a converter to or from UTF-8 \value Utf16 Create a converter to or from UTF-16.
static Q_CORE_EXPORT std::optional< Encoding > encodingForData(QByteArrayView data, char16_t expectedFirstCharacter=0) noexcept
Returns the encoding for the content of data if it can be determined.
QByteArray toUtf8() const
Returns a UTF-8 representation of the string view as a QByteArray.
\macro QT_RESTRICTED_CAST_FROM_ASCII
static QString fromLatin1(QByteArrayView ba)
This is an overloaded member function, provided for convenience. It differs from the above function o...
void clear()
Clears the contents of the string and makes it null.
bool isNull() const
Returns true if this string is null; otherwise returns false.
QString & setUnicode(const QChar *unicode, qsizetype size)
Resizes the string to size characters and copies unicode into the string.
static QString fromUtf8(QByteArrayView utf8)
This is an overloaded member function, provided for convenience. It differs from the above function o...
QString toLower() const &
QString & prepend(QChar c)
void resize(qsizetype size)
Sets the size of the string to size characters.
QTextStream::FieldAlignment fieldAlignment
QTextStream::RealNumberNotation realNumberNotation
QTextStream::NumberFlags numberFlags
void saveConverterState(qint64 newPos)
QTextStreamPrivate(QTextStream *q_ptr)
PaddingResult padding(qsizetype len) const
void restoreToSavedConverterState()
void write(QStringView data)
void writePadding(qsizetype len)
int readConverterSavedStateOffset
QStringDecoder savedToUtf16
const QChar * readPtr() const
void putString(QStringView string, bool number=false)
bool scan(const QChar **ptr, int *tokenLength, int maxlen, TokenDelimiter delimiter)
qint64 readBufferStartDevicePos
bool fillReadBuffer(qint64 maxBytes=-1)
void putNumber(qulonglong number, bool negative)
QTextStream::Status status
QStringConverter::Encoding encoding
NumberParsingStatus getNumber(qulonglong *l)
QIODevice::OpenMode stringOpenMode
Q_QML_PRIVATE_EXPORT QV4::ReturnedValue locale(QV4::ExecutionEngine *engine, const QString &localeName)
Provides locale specific properties and formatted data.
Combined button and popup list for selecting options.
Q_CORE_EXPORT QByteArray toPrintable(const char *data, qint64 len, qsizetype maxSize)
constexpr bool isOctalDigit(char32_t c) noexcept
constexpr int fromHex(char32_t c) noexcept
QTextStream & flush(QTextStream &stream)
Calls QTextStream::flush() on stream and returns stream.
QTextStream & uppercasebase(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::UppercaseBase) on stream ...
QTextStream & bin(QTextStream &stream)
Calls QTextStream::setIntegerBase(2) on stream and returns stream.
QTextStream & showbase(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::ShowBase) on stream and r...
QTextStream & lowercasebase(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::UppercaseBase) on stream...
QTextStream & noforcesign(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::ForceSign) on stream and...
QTextStream & uppercasedigits(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::UppercaseDigits) on strea...
QTextStream & bom(QTextStream &stream)
Toggles insertion of the Byte Order Mark on stream when QTextStream is used with a UTF encoding.
QTextStream & oct(QTextStream &stream)
Calls QTextStream::setIntegerBase(8) on stream and returns stream.
QTextStream & lowercasedigits(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::UppercaseDigits) on stre...
QTextStream & noshowbase(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::ShowBase) on stream and ...
QTextStream & noforcepoint(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::ForcePoint) on stream an...
QTextStream & ws(QTextStream &stream)
Calls \l {QTextStream::}{skipWhiteSpace()} on stream and returns stream.
QTextStream & fixed(QTextStream &stream)
Calls QTextStream::setRealNumberNotation(QTextStream::FixedNotation) on stream and returns stream.
QTextStream & forcesign(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::ForceSign) on stream and ...
QTextStream & center(QTextStream &stream)
Calls QTextStream::setFieldAlignment(QTextStream::AlignCenter) on stream and returns stream.
QTextStream & forcepoint(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::ForcePoint) on stream and...
QTextStream & endl(QTextStream &stream)
Writes '\n' to the stream and flushes the stream.
QTextStream & scientific(QTextStream &stream)
Calls QTextStream::setRealNumberNotation(QTextStream::ScientificNotation) on stream and returns strea...
Q_CORE_EXPORT int qstricmp(const char *, const char *)
static constexpr int BufferSize
static ControlElement< T > * ptr(QWidget *widget)
constexpr const T & qMin(const T &a, const T &b)
constexpr T qAbs(const T &t)
Q_CORE_EXPORT Q_DECL_CONST_FUNCTION double qInf()
Q_CORE_EXPORT Q_DECL_CONST_FUNCTION double qQNaN()
GLenum GLsizei GLuint GLint * bytesWritten
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLenum GLuint GLenum GLsizei length
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLenum GLuint GLenum GLsizei const GLchar * buf
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLfloat GLfloat GLfloat GLfloat h
GLenum GLenum GLenum input
GLenum GLenum GLsizei void * table
GLenum GLint GLint * precision
GLsizei const GLchar *const * string
[0]
GLbitfield GLuint readBuffer
static const QLatin1Char Dot('.')
static QT_BEGIN_NAMESPACE const uint Default
QBasicUtf8StringView< false > QUtf8StringView
#define IMPLEMENT_STREAM_RIGHT_REAL_OPERATOR(type)
#define IMPLEMENT_STREAM_RIGHT_INT_OPERATOR(type)
#define CHECK_VALID_STREAM(x)
static const int QTEXTSTREAM_BUFFERSIZE
\inmodule QtCore \reentrant
QString doubleToString(double d, int precision=-1, DoubleForm form=DFSignificantDigits, int width=-1, unsigned flags=NoFlags) const
QString longLongToString(qint64 l, int precision=-1, int base=10, int width=-1, unsigned flags=NoFlags) const
QString unsLongLongToString(quint64 l, int precision=-1, int base=10, int width=-1, unsigned flags=NoFlags) const