19#include <QtCore/private/qglobal_p.h>
20#include "QtCore/qdebug.h"
21#include "QtCore/qmetaobject.h"
22#include "QtCore/qflags.h"
23#include "QtCore/qbytearray.h"
38 debug << point.x() <<
',' << point.y();
42static inline void formatQSize(QDebug &debug,
const Size &size)
44 debug << size.width() <<
", " << size.height();
48static inline void formatQRect(QDebug &debug,
const Rect &rect)
50 debug << rect.x() <<
',' << rect.y() <<
' ';
51 if constexpr (std::is_same_v<Rect, QRect>) {
53 const qint64 w = qint64(rect.right()) - rect.left() + 1;
54 const qint64 h = qint64(rect.bottom()) - rect.top() + 1;
55 debug << w <<
'x' << h;
57 constexpr qint64 M = (std::numeric_limits<
int>::max)();
59 debug <<
" (oversized)";
61 debug << rect.width() <<
'x' << rect.height();
65template <
class Margins>
68 debug << margins.left() <<
", " << margins.top() <<
", " << margins.right()
69 <<
", " << margins.bottom();
76 const QMetaObject *metaObject = qt_getEnumMetaObject(value);
77 const QMetaEnum me = metaObject->enumerator(metaObject->indexOfEnumerator(qt_getEnumName(value)));
78 if (
const char *key = me.valueToKey(
int(value)))
89 formatQEnum(debug, value);
94static inline void formatQFlags(QDebug &debug,
const QFlags<Enum> &value)
96 const QMetaEnum me = QMetaEnum::fromType<QFlags<Enum>>();
97 const QDebugStateSaver saver(debug);
99 debug << me.valueToKeys(value.toInt());
107 formatQFlags(debug, value);
static void formatNonNullQEnum(QDebug &debug, const char *prefix, QEnum value)
static void formatQEnum(QDebug &debug, QEnum value)
static void formatQRect(QDebug &debug, const Rect &rect)
static void formatQMargins(QDebug &debug, const Margins &margins)
static void formatQFlags(QDebug &debug, const QFlags< Enum > &value)
static void formatQSize(QDebug &debug, const Size &size)
static void formatQPoint(QDebug &debug, const Point &point)
static void formatNonNullQFlags(QDebug &debug, const char *prefix, const QFlags< Enum > &value)