summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/io/qdebug.cpp18
-rw-r--r--src/corelib/io/qdebug.h3
-rw-r--r--tests/auto/corelib/io/qdebug/tst_qdebug.cpp21
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);