Implement QDebug stream operators for builtin classes
authorJędrzej Nowacki <jedrzej.nowacki@nokia.com>
Wed, 4 Jan 2012 13:14:08 +0000 (14:14 +0100)
committerQt by Nokia <qt-info@nokia.com>
Tue, 10 Jan 2012 00:25:18 +0000 (01:25 +0100)
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 <thiago.macieira@intel.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
22 files changed:
src/corelib/plugin/quuid.cpp
src/corelib/plugin/quuid.h
src/corelib/tools/qbitarray.cpp
src/corelib/tools/qbitarray.h
src/corelib/tools/qlocale.cpp
src/corelib/tools/qlocale.h
src/corelib/tools/qregexp.cpp
src/corelib/tools/qregexp.h
src/gui/image/qimage.cpp
src/gui/image/qimage.h
src/gui/image/qpixmap.cpp
src/gui/image/qpixmap.h
src/gui/kernel/qcursor.cpp
src/gui/kernel/qcursor.h
src/gui/kernel/qpalette.cpp
src/gui/kernel/qpalette.h
src/gui/text/qtextformat.cpp
src/gui/text/qtextformat.h
src/widgets/kernel/qicon.cpp
src/widgets/kernel/qicon.h
src/widgets/kernel/qlayoutitem.cpp
src/widgets/kernel/qsizepolicy.h

index 1cf171f..46589f8 100644 (file)
@@ -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
  */
index e7cc919..2eec157 100644 (file)
@@ -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
index 4ef066c..96811cc 100644 (file)
@@ -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
index 29abf19..83c81ec 100644 (file)
@@ -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)
 
index d977743..1dc3849 100644 (file)
@@ -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
index 100dcc9..9bc4ea7 100644 (file)
@@ -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
index 9be4944..d300ed9 100644 (file)
@@ -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 &regExp)
 }
 #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
index 583fa15..364745e 100644 (file)
@@ -127,6 +127,10 @@ Q_CORE_EXPORT QDataStream &operator<<(QDataStream &out, const QRegExp &regExp);
 Q_CORE_EXPORT QDataStream &operator>>(QDataStream &in, QRegExp &regExp);
 #endif
 
+#ifndef QT_NO_DEBUG_STREAM
+Q_CORE_EXPORT QDebug operator<<(QDebug, const QRegExp &);
+#endif
+
 QT_END_NAMESPACE
 
 QT_END_HEADER
index 0e5a448..564abd2 100644 (file)
@@ -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
index 3abf203..7a5a732 100644 (file)
@@ -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
index cc7171a..48d393c 100644 (file)
@@ -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
index dfb729a..5e8ef70 100644 (file)
@@ -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
index e2fc1e0..bd327e1 100644 (file)
@@ -49,6 +49,7 @@
 #include <qdatastream.h>
 #include <qvariant.h>
 #include <private/qcursor_p.h>
+#include <qdebug.h>
 
 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
 
index 121bd2c..7437da4 100644 (file)
@@ -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
index 0e06739..2dd2ef0 100644 (file)
@@ -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
index 23cecd2..d47854d 100644 (file)
@@ -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
index a118462..4db5728 100644 (file)
@@ -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
index a535f90..2e1bcd8 100644 (file)
@@ -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
index 1b1b490..1855424 100644 (file)
@@ -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
index 76c7fda..a72ae23 100644 (file)
@@ -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
index 8479ae9..732c941 100644 (file)
@@ -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
index 32ef853..8932eb8 100644 (file)
@@ -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();