diff options
-rw-r--r-- | src/corelib/io/qdebug.cpp | 18 | ||||
-rw-r--r-- | src/corelib/io/qdebug.h | 3 | ||||
-rw-r--r-- | tests/auto/corelib/io/qdebug/tst_qdebug.cpp | 21 |
3 files changed, 42 insertions, 0 deletions
diff --git a/src/corelib/io/qdebug.cpp b/src/corelib/io/qdebug.cpp index 2b5dac8801..07f359672c 100644 --- a/src/corelib/io/qdebug.cpp +++ b/src/corelib/io/qdebug.cpp @@ -162,6 +162,24 @@ */ /*! + \fn bool QDebug::autoInsertSpaces() + + Returns true if this QDebug instance will automatically insert spaces + between writes. + + \since 5.0 +*/ + +/*! + \fn void QDebug::setAutoInsertSpaces(bool b) + + Enables automatic insertion of spaces between writes if \a b is true; otherwise + automatic insertion of spaces is disabled. + + \since 5.0 +*/ + +/*! \fn QDebug &QDebug::operator<<(QChar t) Writes the character, \a t, to the stream and returns a reference to the diff --git a/src/corelib/io/qdebug.h b/src/corelib/io/qdebug.h index 4d546a9ca1..8bc4128a95 100644 --- a/src/corelib/io/qdebug.h +++ b/src/corelib/io/qdebug.h @@ -97,6 +97,9 @@ public: inline QDebug &nospace() { stream->space = false; return *this; } inline QDebug &maybeSpace() { if (stream->space) stream->ts << ' '; return *this; } + bool autoInsertSpaces() const { return stream->space; } + void setAutoInsertSpaces(bool b) { stream->space = b; } + inline QDebug &operator<<(QChar t) { stream->ts << '\'' << t << '\''; return maybeSpace(); } inline QDebug &operator<<(bool t) { stream->ts << (t ? "true" : "false"); return maybeSpace(); } inline QDebug &operator<<(char t) { stream->ts << t; return maybeSpace(); } diff --git a/tests/auto/corelib/io/qdebug/tst_qdebug.cpp b/tests/auto/corelib/io/qdebug/tst_qdebug.cpp index 035c781e4a..3e3204a162 100644 --- a/tests/auto/corelib/io/qdebug/tst_qdebug.cpp +++ b/tests/auto/corelib/io/qdebug/tst_qdebug.cpp @@ -52,6 +52,7 @@ private slots: void warningWithoutDebug() const; void criticalWithoutDebug() const; void debugWithBool() const; + void debugNoSpaces() const; void veryLongWarningMessage() const; void qDebugQStringRef() const; void qDebugQLatin1String() const; @@ -149,6 +150,26 @@ void tst_QDebug::debugWithBool() const QCOMPARE(QString::fromLatin1(s_function), function); } +void tst_QDebug::debugNoSpaces() const +{ + MessageHandlerSetter mhs(myMessageHandler); + { + QDebug d = qDebug(); + QVERIFY(d.autoInsertSpaces()); + d.setAutoInsertSpaces(false); + QVERIFY(!d.autoInsertSpaces()); + d << " "; + d.setAutoInsertSpaces(true); + QVERIFY(d.autoInsertSpaces()); + d << "foo"; + d.nospace(); + d << "key=" << "value"; + d.space(); + d << 1 << 2; + } + QCOMPARE(s_msg, QString::fromLatin1(" foo key=value 1 2 ")); +} + void tst_QDebug::veryLongWarningMessage() const { MessageHandlerSetter mhs(myMessageHandler); |