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
|
** Contact: http://www.qt-project.org/legal
|
||||||
**
|
**
|
||||||
** This file is part of the QtCore module of the Qt Toolkit.
|
** This file is part of the QtCore module of the Qt Toolkit.
|
||||||
@ -151,6 +151,21 @@ QDebug::~QDebug()
|
|||||||
very fast and never fails.
|
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()
|
\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
|
** Contact: http://www.qt-project.org/legal
|
||||||
**
|
**
|
||||||
** This file is part of the QtCore module of the Qt Toolkit.
|
** This file is part of the QtCore module of the Qt Toolkit.
|
||||||
@ -93,6 +93,8 @@ public:
|
|||||||
~QDebug();
|
~QDebug();
|
||||||
inline void swap(QDebug &other) { qSwap(stream, other.stream); }
|
inline void swap(QDebug &other) { qSwap(stream, other.stream); }
|
||||||
|
|
||||||
|
QDebug &resetFormat();
|
||||||
|
|
||||||
inline QDebug &space() { stream->space = true; stream->ts << ' '; return *this; }
|
inline QDebug &space() { stream->space = true; stream->ts << ' '; return *this; }
|
||||||
inline QDebug &nospace() { stream->space = false; return *this; }
|
inline QDebug &nospace() { stream->space = false; return *this; }
|
||||||
inline QDebug &maybeSpace() { if (stream->space) stream->ts << ' '; 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
|
** Contact: http://www.qt-project.org/legal
|
||||||
**
|
**
|
||||||
** This file is part of the test suite of the Qt Toolkit.
|
** This file is part of the test suite of the Qt Toolkit.
|
||||||
@ -64,6 +64,7 @@ private slots:
|
|||||||
void qDebugQLatin1String() const;
|
void qDebugQLatin1String() const;
|
||||||
void qDebugQByteArray() const;
|
void qDebugQByteArray() const;
|
||||||
void textStreamModifiers() const;
|
void textStreamModifiers() const;
|
||||||
|
void resetFormat() const;
|
||||||
void defaultMessagehandler() const;
|
void defaultMessagehandler() const;
|
||||||
void threadSafety() const;
|
void threadSafety() const;
|
||||||
};
|
};
|
||||||
@ -383,6 +384,22 @@ void tst_QDebug::textStreamModifiers() const
|
|||||||
QCOMPARE(QString::fromLatin1(s_function), function);
|
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
|
void tst_QDebug::defaultMessagehandler() const
|
||||||
{
|
{
|
||||||
MessageHandlerSetter mhs(0); // set 0, should set default handler
|
MessageHandlerSetter mhs(0); // set 0, should set default handler
|
||||||
|
Loading…
x
Reference in New Issue
Block a user