diff options
author | Kai Koehne <kai.koehne@digia.com> | 2014-06-20 15:35:34 +0200 |
---|---|---|
committer | Kai Koehne <kai.koehne@digia.com> | 2014-07-30 16:27:33 +0200 |
commit | 5b0be0c2173e365b2484844ffd0b23ead5f9a48a (patch) | |
tree | 7fbd450869303c6e7b7ac3f91d75ce40c7049f9e /src | |
parent | b795e8d7c2dbb04ed9bde4500a46511339b8df31 (diff) |
QDebug: Improve QDebug stream operator for QFlags
Use the built-in hex, showbase manipulator to format the number in
hex. Also, apply nospace() only once.
Change-Id: Id4b3d5f082ad13f52c8711408d7ec609bec3a621
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/io/qdebug.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/corelib/io/qdebug.h b/src/corelib/io/qdebug.h index d224359724..6b81d9431f 100644 --- a/src/corelib/io/qdebug.h +++ b/src/corelib/io/qdebug.h @@ -259,21 +259,21 @@ inline QDebug operator<<(QDebug debug, const QContiguousCache<T> &cache) template <class T> inline QDebug operator<<(QDebug debug, const QFlags<T> &flags) { - const bool oldSetting = debug.autoInsertSpaces(); - debug.nospace() << "QFlags("; + QDebugStateSaver saver(debug); + debug.resetFormat(); + debug.nospace() << "QFlags(" << hex << showbase; bool needSeparator = false; for (uint i = 0; i < sizeof(T) * 8; ++i) { if (flags.testFlag(T(1 << i))) { if (needSeparator) - debug.nospace() << '|'; + debug << '|'; else needSeparator = true; - debug.nospace() << "0x" << QByteArray::number(typename QFlags<T>::Int(1) << i, 16).constData(); + debug << (typename QFlags<T>::Int(1) << i); } } debug << ')'; - debug.setAutoInsertSpaces(oldSetting); - return debug.maybeSpace(); + return debug; } QT_END_NAMESPACE |