QDebug: Add resetFormat()
Similar to QTextStream::reset(), this resets the stream format to the defaults. Its primary use is inside custom operator<< implementations, where you'd want to have a fixed format regardless of the current stream state. Change-Id: I421d76c61f164579bb90cf4195cc5376e2dcf0f3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This commit is contained in:
parent
45854c75aa
commit
87aceebf42
@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
@ -151,6 +151,21 @@ QDebug::~QDebug()
|
||||
very fast and never fails.
|
||||
*/
|
||||
|
||||
/*!
|
||||
Resets the stream formatting options, bringing it back to its original constructed state.
|
||||
|
||||
\sa space(), quote()
|
||||
\since 5.4
|
||||
*/
|
||||
QDebug &QDebug::resetFormat()
|
||||
{
|
||||
stream->ts.reset();
|
||||
stream->space = true;
|
||||
if (stream->context.version > 1)
|
||||
stream->flags = 0;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/*!
|
||||
\fn QDebug &QDebug::space()
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
@ -93,6 +93,8 @@ public:
|
||||
~QDebug();
|
||||
inline void swap(QDebug &other) { qSwap(stream, other.stream); }
|
||||
|
||||
QDebug &resetFormat();
|
||||
|
||||
inline QDebug &space() { stream->space = true; stream->ts << ' '; return *this; }
|
||||
inline QDebug &nospace() { stream->space = false; return *this; }
|
||||
inline QDebug &maybeSpace() { if (stream->space) stream->ts << ' '; return *this; }
|
||||
|
@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the test suite of the Qt Toolkit.
|
||||
@ -64,6 +64,7 @@ private slots:
|
||||
void qDebugQLatin1String() const;
|
||||
void qDebugQByteArray() const;
|
||||
void textStreamModifiers() const;
|
||||
void resetFormat() const;
|
||||
void defaultMessagehandler() const;
|
||||
void threadSafety() const;
|
||||
};
|
||||
@ -383,6 +384,22 @@ void tst_QDebug::textStreamModifiers() const
|
||||
QCOMPARE(QString::fromLatin1(s_function), function);
|
||||
}
|
||||
|
||||
void tst_QDebug::resetFormat() const
|
||||
{
|
||||
MessageHandlerSetter mhs(myMessageHandler);
|
||||
{
|
||||
QDebug d = qDebug();
|
||||
d.nospace().noquote() << hex << int(0xf);
|
||||
d.resetFormat() << int(0xf) << QStringLiteral("foo");
|
||||
}
|
||||
QString file = __FILE__; int line = __LINE__ - 4; QString function = Q_FUNC_INFO;
|
||||
QCOMPARE(s_msgType, QtDebugMsg);
|
||||
QCOMPARE(s_msg, QString::fromLatin1("f15 \"foo\""));
|
||||
QCOMPARE(QString::fromLatin1(s_file), file);
|
||||
QCOMPARE(s_line, line);
|
||||
QCOMPARE(QString::fromLatin1(s_function), function);
|
||||
}
|
||||
|
||||
void tst_QDebug::defaultMessagehandler() const
|
||||
{
|
||||
MessageHandlerSetter mhs(0); // set 0, should set default handler
|
||||
|
Loading…
x
Reference in New Issue
Block a user