From 18617f2824af67a690ade336f5d27f09752c7206 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Nowacki?= Date: Wed, 4 Jan 2012 14:14:08 +0100 Subject: Implement QDebug stream operators for builtin classes QDebug stream operator was added for: QPixmap, QImage, QUuid, QBitArray, QLocale, QRegExp, QCursor, QPalette, QTextFormat, QTextLength, QIcon and QSizePolicy Change-Id: Ibcf5c9b599ba322d53cb106d8e5e157427ebe757 Reviewed-by: Thiago Macieira Reviewed-by: Bradley T. Hughes Reviewed-by: Denis Dzyubenko --- src/corelib/plugin/quuid.cpp | 9 +++++++++ src/corelib/plugin/quuid.h | 4 ++++ src/corelib/tools/qbitarray.cpp | 18 ++++++++++++++++++ src/corelib/tools/qbitarray.h | 4 ++++ src/corelib/tools/qlocale.cpp | 10 ++++++++++ src/corelib/tools/qlocale.h | 4 ++++ src/corelib/tools/qregexp.cpp | 10 ++++++++++ src/corelib/tools/qregexp.h | 4 ++++ src/gui/image/qimage.cpp | 8 ++++++++ src/gui/image/qimage.h | 5 +++++ src/gui/image/qpixmap.cpp | 8 ++++++++ src/gui/image/qpixmap.h | 4 ++++ src/gui/kernel/qcursor.cpp | 10 ++++++++++ src/gui/kernel/qcursor.h | 5 +++++ src/gui/kernel/qpalette.cpp | 9 +++++++++ src/gui/kernel/qpalette.h | 4 ++++ src/gui/text/qtextformat.cpp | 15 +++++++++++++++ src/gui/text/qtextformat.h | 8 ++++++++ src/widgets/kernel/qicon.cpp | 8 ++++++++ src/widgets/kernel/qicon.h | 4 ++++ src/widgets/kernel/qlayoutitem.cpp | 10 ++++++++++ src/widgets/kernel/qsizepolicy.h | 4 ++++ 22 files changed, 165 insertions(+) (limited to 'src') diff --git a/src/corelib/plugin/quuid.cpp b/src/corelib/plugin/quuid.cpp index 1cf171f663..46589f88bc 100644 --- a/src/corelib/plugin/quuid.cpp +++ b/src/corelib/plugin/quuid.cpp @@ -43,6 +43,7 @@ #include "qdatastream.h" #include "qendian.h" +#include "qdebug.h" QT_BEGIN_NAMESPACE @@ -918,6 +919,14 @@ QUuid QUuid::createUuid() guid; otherwise returns false. */ +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug dbg, const QUuid &id) +{ + dbg.nospace() << "QUuid(" << id.toString() << ')'; + return dbg.space(); +} +#endif + /** Returns a hash of the QUuid */ diff --git a/src/corelib/plugin/quuid.h b/src/corelib/plugin/quuid.h index e7cc919ad5..2eec1575e5 100644 --- a/src/corelib/plugin/quuid.h +++ b/src/corelib/plugin/quuid.h @@ -189,6 +189,10 @@ Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QUuid &); Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QUuid &); #endif +#ifndef QT_NO_DEBUG_STREAM +Q_CORE_EXPORT QDebug operator<<(QDebug, const QUuid &); +#endif + Q_CORE_EXPORT uint qHash(const QUuid &uuid); QT_END_NAMESPACE diff --git a/src/corelib/tools/qbitarray.cpp b/src/corelib/tools/qbitarray.cpp index 4ef066cf8b..96811cc179 100644 --- a/src/corelib/tools/qbitarray.cpp +++ b/src/corelib/tools/qbitarray.cpp @@ -725,6 +725,24 @@ QDataStream &operator>>(QDataStream &in, QBitArray &ba) } #endif // QT_NO_DATASTREAM +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug dbg, const QBitArray &array) +{ + dbg.nospace() << "QBitArray("; + for (int i = 0; i < array.size();) { + if (array.testBit(i)) + dbg.nospace() << '1'; + else + dbg.nospace() << '0'; + i += 1; + if (!(i % 4) && (i < array.size())) + dbg.nospace() << ' '; + } + dbg.nospace() << ')'; + return dbg.space(); +} +#endif + /*! \fn DataPtr &QBitArray::data_ptr() \internal diff --git a/src/corelib/tools/qbitarray.h b/src/corelib/tools/qbitarray.h index 29abf19573..83c81eca90 100644 --- a/src/corelib/tools/qbitarray.h +++ b/src/corelib/tools/qbitarray.h @@ -170,6 +170,10 @@ Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QBitArray &); Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QBitArray &); #endif +#ifndef QT_NO_DEBUG_STREAM +Q_CORE_EXPORT QDebug operator<<(QDebug, const QBitArray &); +#endif + Q_DECLARE_TYPEINFO(QBitArray, Q_MOVABLE_TYPE); Q_DECLARE_SHARED(QBitArray) diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index d9777433d4..1dc384985b 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -56,6 +56,7 @@ QT_END_NAMESPACE #include "qplatformdefs.h" #include "qdatastream.h" +#include "qdebug.h" #include "qstring.h" #include "qlocale.h" #include "qlocale_p.h" @@ -3325,4 +3326,13 @@ QString QLocale::nativeCountryName() const return getLocaleData(endonyms_data + d()->m_country_endonym_idx, d()->m_country_endonym_size); } +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug dbg, const QLocale &l) +{ + dbg.nospace() << "QLocale(" << qPrintable(QLocale::languageToString(l.language())) + << ", " << qPrintable(QLocale::scriptToString(l.script())) + << ", " << qPrintable(QLocale::countryToString(l.country())) << ')'; + return dbg.space(); +} +#endif QT_END_NAMESPACE diff --git a/src/corelib/tools/qlocale.h b/src/corelib/tools/qlocale.h index 100dcc9722..9bc4ea70b8 100644 --- a/src/corelib/tools/qlocale.h +++ b/src/corelib/tools/qlocale.h @@ -806,6 +806,10 @@ Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QLocale &); Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QLocale &); #endif +#ifndef QT_NO_DEBUG_STREAM +Q_CORE_EXPORT QDebug operator<<(QDebug, const QLocale &); +#endif + QT_END_NAMESPACE #ifndef QT_NO_SYSTEMLOCALE diff --git a/src/corelib/tools/qregexp.cpp b/src/corelib/tools/qregexp.cpp index 9be494472f..d300ed967d 100644 --- a/src/corelib/tools/qregexp.cpp +++ b/src/corelib/tools/qregexp.cpp @@ -45,6 +45,7 @@ #include "qbitarray.h" #include "qcache.h" #include "qdatastream.h" +#include "qdebug.h" #include "qlist.h" #include "qmap.h" #include "qmutex.h" @@ -4571,4 +4572,13 @@ QDataStream &operator>>(QDataStream &in, QRegExp ®Exp) } #endif // QT_NO_DATASTREAM +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug dbg, const QRegExp &r) +{ + dbg.nospace() << "QRegExp(patternSyntax=" << r.patternSyntax() + << ", pattern='"<< r.pattern() << "')"; + return dbg.space(); +} +#endif + QT_END_NAMESPACE diff --git a/src/corelib/tools/qregexp.h b/src/corelib/tools/qregexp.h index 583fa15a5f..364745e24a 100644 --- a/src/corelib/tools/qregexp.h +++ b/src/corelib/tools/qregexp.h @@ -127,6 +127,10 @@ Q_CORE_EXPORT QDataStream &operator<<(QDataStream &out, const QRegExp ®Exp); Q_CORE_EXPORT QDataStream &operator>>(QDataStream &in, QRegExp ®Exp); #endif +#ifndef QT_NO_DEBUG_STREAM +Q_CORE_EXPORT QDebug operator<<(QDebug, const QRegExp &); +#endif + QT_END_NAMESPACE QT_END_HEADER diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index 0e5a4484dc..564abd2af2 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -5863,4 +5863,12 @@ bool QImageData::convertInPlace(QImage::Format newFormat, Qt::ImageConversionFla \internal */ +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug dbg, const QImage &i) +{ + dbg.nospace() << "QImage(" << i.size() << ')'; + return dbg.space(); +} +#endif + QT_END_NAMESPACE diff --git a/src/gui/image/qimage.h b/src/gui/image/qimage.h index 3abf203b3b..7a5a732c9a 100644 --- a/src/gui/image/qimage.h +++ b/src/gui/image/qimage.h @@ -406,6 +406,11 @@ Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QImage &); Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QImage &); #endif +#ifndef QT_NO_DEBUG_STREAM +Q_GUI_EXPORT QDebug operator<<(QDebug, const QImage &); +#endif + + QT_END_NAMESPACE QT_END_HEADER diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp index cc7171a598..48d393cc24 100644 --- a/src/gui/image/qpixmap.cpp +++ b/src/gui/image/qpixmap.cpp @@ -1631,4 +1631,12 @@ QPlatformPixmap* QPixmap::handle() const return data.data(); } +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug dbg, const QPixmap &r) +{ + dbg.nospace() << "QPixmap(" << r.size() << ')'; + return dbg.space(); +} +#endif + QT_END_NAMESPACE diff --git a/src/gui/image/qpixmap.h b/src/gui/image/qpixmap.h index dfb729a77d..5e8ef70828 100644 --- a/src/gui/image/qpixmap.h +++ b/src/gui/image/qpixmap.h @@ -238,6 +238,10 @@ Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QPixmap &); Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QPixmap &); #endif +#ifndef QT_NO_DEBUG_STREAM +Q_GUI_EXPORT QDebug operator<<(QDebug, const QPixmap &); +#endif + QT_END_NAMESPACE QT_END_HEADER diff --git a/src/gui/kernel/qcursor.cpp b/src/gui/kernel/qcursor.cpp index e2fc1e0c99..bd327e1eb1 100644 --- a/src/gui/kernel/qcursor.cpp +++ b/src/gui/kernel/qcursor.cpp @@ -49,6 +49,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -564,6 +565,15 @@ QCursor::operator QVariant() const { return QVariant(QVariant::Cursor, this); } + +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug dbg, const QCursor &c) +{ + dbg.nospace() << "QCursor(Qt::CursorShape(" << c.shape() << "))"; + return dbg.space(); +} +#endif + QT_END_NAMESPACE #endif // QT_NO_CURSOR diff --git a/src/gui/kernel/qcursor.h b/src/gui/kernel/qcursor.h index 121bd2c2e6..7437da4aba 100644 --- a/src/gui/kernel/qcursor.h +++ b/src/gui/kernel/qcursor.h @@ -126,6 +126,11 @@ private: Q_GUI_EXPORT QDataStream &operator<<(QDataStream &outS, const QCursor &cursor); Q_GUI_EXPORT QDataStream &operator>>(QDataStream &inS, QCursor &cursor); #endif + +#ifndef QT_NO_DEBUG_STREAM +Q_GUI_EXPORT QDebug operator<<(QDebug, const QCursor &); +#endif + #endif // QT_NO_CURSOR QT_END_NAMESPACE diff --git a/src/gui/kernel/qpalette.cpp b/src/gui/kernel/qpalette.cpp index 0e067392c6..2dd2ef00c5 100644 --- a/src/gui/kernel/qpalette.cpp +++ b/src/gui/kernel/qpalette.cpp @@ -43,6 +43,7 @@ #include "qguiapplication.h" #include "qdatastream.h" #include "qvariant.h" +#include "qdebug.h" QT_BEGIN_NAMESPACE @@ -1081,4 +1082,12 @@ void QPalette::setColorGroup(ColorGroup cg, const QBrush &foreground, const QBru setBrush(cg, ToolTipText, toolTipText); } +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug dbg, const QPalette &) +{ + dbg.nospace() << "QPalette()"; + return dbg.space(); +} +#endif + QT_END_NAMESPACE diff --git a/src/gui/kernel/qpalette.h b/src/gui/kernel/qpalette.h index 23cecd2cfc..d47854df07 100644 --- a/src/gui/kernel/qpalette.h +++ b/src/gui/kernel/qpalette.h @@ -190,6 +190,10 @@ Q_GUI_EXPORT QDataStream &operator<<(QDataStream &ds, const QPalette &p); Q_GUI_EXPORT QDataStream &operator>>(QDataStream &ds, QPalette &p); #endif // QT_NO_DATASTREAM +#ifndef QT_NO_DEBUG_STREAM +Q_GUI_EXPORT QDebug operator<<(QDebug, const QPalette &); +#endif + QT_END_NAMESPACE QT_END_HEADER diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp index a118462514..4db57282b7 100644 --- a/src/gui/text/qtextformat.cpp +++ b/src/gui/text/qtextformat.cpp @@ -3321,4 +3321,19 @@ void QTextFormatCollection::setDefaultFont(const QFont &f) formats[i].d->resolveFont(defaultFnt); } +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug dbg, const QTextLength &l) +{ + dbg.nospace() << "QTextLength(QTextLength::Type(" << l.type() << "))"; + return dbg.space(); +} + +QDebug operator<<(QDebug dbg, const QTextFormat &f) +{ + dbg.nospace() << "QTextFormat(QTextFormat::FormatType(" << f.type() << "))"; + return dbg.space(); +} + +#endif + QT_END_NAMESPACE diff --git a/src/gui/text/qtextformat.h b/src/gui/text/qtextformat.h index a535f900a7..2e1bcd8d33 100644 --- a/src/gui/text/qtextformat.h +++ b/src/gui/text/qtextformat.h @@ -81,6 +81,10 @@ Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QTextLength &); Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QTextLength &); #endif +#ifndef QT_NO_DEBUG_STREAM +Q_GUI_EXPORT QDebug operator<<(QDebug, const QTextLength &); +#endif + class Q_GUI_EXPORT QTextLength { public: @@ -126,6 +130,10 @@ Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QTextFormat &); Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QTextFormat &); #endif +#ifndef QT_NO_DEBUG_STREAM +Q_GUI_EXPORT QDebug operator<<(QDebug, const QTextFormat &); +#endif + class Q_GUI_EXPORT QTextFormat { Q_GADGET diff --git a/src/widgets/kernel/qicon.cpp b/src/widgets/kernel/qicon.cpp index 1b1b490d2b..185542420e 100644 --- a/src/widgets/kernel/qicon.cpp +++ b/src/widgets/kernel/qicon.cpp @@ -1161,6 +1161,14 @@ QDataStream &operator>>(QDataStream &s, QIcon &icon) #endif //QT_NO_DATASTREAM +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug dbg, const QIcon &i) +{ + dbg.nospace() << "QIcon(" << i.name() << ')'; + return dbg.space(); +} +#endif + /*! \fn DataPtr &QIcon::data_ptr() \internal diff --git a/src/widgets/kernel/qicon.h b/src/widgets/kernel/qicon.h index 76c7fda7e2..a72ae236f1 100644 --- a/src/widgets/kernel/qicon.h +++ b/src/widgets/kernel/qicon.h @@ -136,6 +136,10 @@ Q_WIDGETS_EXPORT QDataStream &operator<<(QDataStream &, const QIcon &); Q_WIDGETS_EXPORT QDataStream &operator>>(QDataStream &, QIcon &); #endif +#ifndef QT_NO_DEBUG_STREAM +Q_WIDGETS_EXPORT QDebug operator<<(QDebug dbg, const QIcon &); +#endif + QT_END_NAMESPACE QT_END_HEADER diff --git a/src/widgets/kernel/qlayoutitem.cpp b/src/widgets/kernel/qlayoutitem.cpp index 8479ae92c5..732c941c74 100644 --- a/src/widgets/kernel/qlayoutitem.cpp +++ b/src/widgets/kernel/qlayoutitem.cpp @@ -42,6 +42,7 @@ #include "qlayout.h" #include "qapplication.h" +#include "qdebug.h" #include "qlayoutengine_p.h" #include "qmenubar.h" #include "qtoolbar.h" @@ -836,4 +837,13 @@ int QWidgetItemV2::heightForWidth(int width) const return height; } +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug dbg, const QSizePolicy &p) +{ + dbg.nospace() << "QSizePolicy(horizontalPolicy = " << p.horizontalPolicy() + << ", verticalPolicy = " << p.verticalPolicy() << ')'; + return dbg.space(); +} +#endif + QT_END_NAMESPACE diff --git a/src/widgets/kernel/qsizepolicy.h b/src/widgets/kernel/qsizepolicy.h index 32ef8535f1..8932eb8ed8 100644 --- a/src/widgets/kernel/qsizepolicy.h +++ b/src/widgets/kernel/qsizepolicy.h @@ -181,6 +181,10 @@ Q_WIDGETS_EXPORT QDataStream &operator<<(QDataStream &, const QSizePolicy &); Q_WIDGETS_EXPORT QDataStream &operator>>(QDataStream &, QSizePolicy &); #endif +#ifndef QT_NO_DEBUG_STREAM +Q_WIDGETS_EXPORT QDebug operator<<(QDebug dbg, const QSizePolicy &); +#endif + inline void QSizePolicy::transpose() { Policy hData = horizontalPolicy(); Policy vData = verticalPolicy(); -- cgit v1.2.3