From d6d3841e71473d3e9253b3088bc4094a7546600e Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 22 Oct 2014 17:03:48 +0200 Subject: Improve QDebug formatting of QtSql classes. Fix quoting/spaces, introduce QDebugStateSaver, add missing fields of QSqlField. Task-number: QTBUG-39388 Change-Id: Id397f9e79f4d4d2bb5c903cd96bf2c27f8e1b7c3 Reviewed-by: Kai Koehne --- src/sql/kernel/qsqldatabase.cpp | 15 +++++++++------ src/sql/kernel/qsqlerror.cpp | 8 +++++--- src/sql/kernel/qsqlfield.cpp | 23 +++++++++++++---------- src/sql/kernel/qsqlrecord.cpp | 13 ++++++++++--- 4 files changed, 37 insertions(+), 22 deletions(-) (limited to 'src/sql/kernel') diff --git a/src/sql/kernel/qsqldatabase.cpp b/src/sql/kernel/qsqldatabase.cpp index 31f0e2dc9e..dbc95dc5a8 100644 --- a/src/sql/kernel/qsqldatabase.cpp +++ b/src/sql/kernel/qsqldatabase.cpp @@ -1503,15 +1503,18 @@ QSql::NumericalPrecisionPolicy QSqlDatabase::numericalPrecisionPolicy() const #ifndef QT_NO_DEBUG_STREAM QDebug operator<<(QDebug dbg, const QSqlDatabase &d) { + QDebugStateSaver saver(dbg); + dbg.nospace(); + dbg.noquote(); if (!d.isValid()) { - dbg.nospace() << "QSqlDatabase(invalid)"; - return dbg.space(); + dbg << "QSqlDatabase(invalid)"; + return dbg; } - dbg.nospace() << "QSqlDatabase(driver=\"" << d.driverName() << "\", database=\"" - << d.databaseName() << "\", host=\"" << d.hostName() << "\", port=" << d.port() - << ", user=\"" << d.userName() << "\", open=" << d.isOpen() << ")"; - return dbg.space(); + dbg << "QSqlDatabase(driver=\"" << d.driverName() << "\", database=\"" + << d.databaseName() << "\", host=\"" << d.hostName() << "\", port=" << d.port() + << ", user=\"" << d.userName() << "\", open=" << d.isOpen() << ')'; + return dbg; } #endif diff --git a/src/sql/kernel/qsqlerror.cpp b/src/sql/kernel/qsqlerror.cpp index b80b471dfc..470bf57d44 100644 --- a/src/sql/kernel/qsqlerror.cpp +++ b/src/sql/kernel/qsqlerror.cpp @@ -39,9 +39,11 @@ QT_BEGIN_NAMESPACE #ifndef QT_NO_DEBUG_STREAM QDebug operator<<(QDebug dbg, const QSqlError &s) { - dbg.nospace() << "QSqlError(" << s.nativeErrorCode() << ", " << s.driverText() << - ", " << s.databaseText() << ')'; - return dbg.space(); + QDebugStateSaver saver(dbg); + dbg.nospace(); + dbg << "QSqlError(" << s.nativeErrorCode() << ", " << s.driverText() + << ", " << s.databaseText() << ')'; + return dbg; } #endif diff --git a/src/sql/kernel/qsqlfield.cpp b/src/sql/kernel/qsqlfield.cpp index dfd4712071..3fd2c68296 100644 --- a/src/sql/kernel/qsqlfield.cpp +++ b/src/sql/kernel/qsqlfield.cpp @@ -509,21 +509,24 @@ bool QSqlField::isValid() const #ifndef QT_NO_DEBUG_STREAM QDebug operator<<(QDebug dbg, const QSqlField &f) { - dbg.nospace() << "QSqlField(" << f.name() << ", " << QMetaType::typeName(f.type()); + QDebugStateSaver saver(dbg); + dbg.nospace(); + dbg << "QSqlField(" << f.name() << ", " << QMetaType::typeName(f.type()); if (f.length() >= 0) - dbg.nospace() << ", length: " << f.length(); + dbg << ", length: " << f.length(); if (f.precision() >= 0) - dbg.nospace() << ", precision: " << f.precision(); + dbg << ", precision: " << f.precision(); if (f.requiredStatus() != QSqlField::Unknown) - dbg.nospace() << ", required: " - << (f.requiredStatus() == QSqlField::Required ? "yes" : "no"); - dbg.nospace() << ", generated: " << (f.isGenerated() ? "yes" : "no"); + dbg << ", required: " + << (f.requiredStatus() == QSqlField::Required ? "yes" : "no"); + dbg << ", generated: " << (f.isGenerated() ? "yes" : "no"); if (f.typeID() >= 0) - dbg.nospace() << ", typeID: " << f.typeID(); + dbg << ", typeID: " << f.typeID(); if (!f.defaultValue().isNull()) - dbg.nospace() << ", auto-value: \"" << f.defaultValue() << '\"'; - dbg.nospace() << ')'; - return dbg.space(); + dbg << ", defaultValue: \"" << f.defaultValue() << '\"'; + dbg << ", autoValue: " << f.isAutoValue() + << ", readOnly: " << f.isReadOnly() << ')'; + return dbg; } #endif diff --git a/src/sql/kernel/qsqlrecord.cpp b/src/sql/kernel/qsqlrecord.cpp index 7fd64d1307..668392bb5b 100644 --- a/src/sql/kernel/qsqlrecord.cpp +++ b/src/sql/kernel/qsqlrecord.cpp @@ -509,9 +509,16 @@ void QSqlRecord::detach() #ifndef QT_NO_DEBUG_STREAM QDebug operator<<(QDebug dbg, const QSqlRecord &r) { - dbg << "QSqlRecord(" << r.count() << ')'; - for (int i = 0; i < r.count(); ++i) - dbg << '\n' << QString::fromLatin1("%1:").arg(i, 2) << r.field(i) << r.value(i).toString(); + QDebugStateSaver saver(dbg); + dbg.nospace(); + const int count = r.count(); + dbg << "QSqlRecord(" << count << ')'; + for (int i = 0; i < count; ++i) { + dbg.nospace(); + dbg << '\n' << qSetFieldWidth(2) << right << i << left << qSetFieldWidth(0) << ':'; + dbg.space(); + dbg << r.field(i) << r.value(i).toString(); + } return dbg; } #endif -- cgit v1.2.3