summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2017-03-03 14:20:42 +0100
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2017-04-18 09:40:41 +0000
commit46976eea1890a0094da421a6dc4ac1276cfccff0 (patch)
tree1dab08b103ed2ce1b97654afb499739e21b26606
parent18934bcb0c388eb4723043cb5001702fecaf90bc (diff)
Add debug operators for font database structs for easier debugging
Change-Id: Ice1b27ff93de2d369dc6b66c72a64eb05da5639c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-rw-r--r--src/gui/text/qplatformfontdatabase.cpp21
-rw-r--r--src/gui/text/qplatformfontdatabase.h7
-rw-r--r--src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm18
3 files changed, 46 insertions, 0 deletions
diff --git a/src/gui/text/qplatformfontdatabase.cpp b/src/gui/text/qplatformfontdatabase.cpp
index 599b18ac05..4ad826e87b 100644
--- a/src/gui/text/qplatformfontdatabase.cpp
+++ b/src/gui/text/qplatformfontdatabase.cpp
@@ -45,6 +45,7 @@
#include <qpa/qplatformscreen.h>
#include <QtCore/QLibraryInfo>
#include <QtCore/QDir>
+#include <QtCore/QMetaEnum>
#include <algorithm>
#include <iterator>
@@ -201,6 +202,26 @@ QSupportedWritingSystems &QSupportedWritingSystems::operator=(const QSupportedWr
return *this;
}
+#ifndef QT_NO_DEBUG_STREAM
+QDebug operator<<(QDebug debug, const QSupportedWritingSystems &sws)
+{
+ QMetaObject mo = QFontDatabase::staticMetaObject;
+ QMetaEnum me = mo.enumerator(mo.indexOfEnumerator("WritingSystem"));
+
+ QDebugStateSaver saver(debug);
+ debug.nospace() << "QSupportedWritingSystems(";
+ int i = sws.d->vector.indexOf(true);
+ while (i > 0) {
+ debug << me.valueToKey(i);
+ i = sws.d->vector.indexOf(true, i + 1);
+ if (i > 0)
+ debug << ", ";
+ }
+ debug << ")";
+ return debug;
+}
+#endif
+
/*!
Destroys the supported writing systems object.
*/
diff --git a/src/gui/text/qplatformfontdatabase.h b/src/gui/text/qplatformfontdatabase.h
index 2d99183ca3..2ca783f0fd 100644
--- a/src/gui/text/qplatformfontdatabase.h
+++ b/src/gui/text/qplatformfontdatabase.h
@@ -84,11 +84,18 @@ private:
friend Q_GUI_EXPORT bool operator==(const QSupportedWritingSystems &, const QSupportedWritingSystems &);
friend Q_GUI_EXPORT bool operator!=(const QSupportedWritingSystems &, const QSupportedWritingSystems &);
+#ifndef QT_NO_DEBUG_STREAM
+ friend Q_GUI_EXPORT QDebug operator<<(QDebug, const QSupportedWritingSystems &);
+#endif
};
Q_GUI_EXPORT bool operator==(const QSupportedWritingSystems &, const QSupportedWritingSystems &);
Q_GUI_EXPORT bool operator!=(const QSupportedWritingSystems &, const QSupportedWritingSystems &);
+#ifndef QT_NO_DEBUG_STREAM
+Q_GUI_EXPORT QDebug operator<<(QDebug, const QSupportedWritingSystems &);
+#endif
+
class QFontRequestPrivate;
class QFontEngineMulti;
diff --git a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
index 3b9a456be0..d89a81be6b 100644
--- a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
+++ b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
@@ -251,6 +251,24 @@ struct FontDescription {
QSupportedWritingSystems writingSystems;
};
+#ifndef QT_NO_DEBUG_STREAM
+Q_DECL_UNUSED static inline QDebug operator<<(QDebug debug, const FontDescription &fd)
+{
+ QDebugStateSaver saver(debug);
+ return debug.nospace() << "FontDescription("
+ << "familyName=" << QString(fd.familyName)
+ << ", styleName=" << QString(fd.styleName)
+ << ", foundry=" << fd.foundryName
+ << ", weight=" << fd.weight
+ << ", style=" << fd.style
+ << ", stretch=" << fd.stretch
+ << ", pixelSize=" << fd.pixelSize
+ << ", fixedPitch=" << fd.fixedPitch
+ << ", writingSystems=" << fd.writingSystems
+ << ")";
+}
+#endif
+
static void getFontDescription(CTFontDescriptorRef font, FontDescription *fd)
{
QCFType<CFDictionaryRef> styles = (CFDictionaryRef) CTFontDescriptorCopyAttribute(font, kCTFontTraitsAttribute);