From 4d885358f8bf4a5efac284d026f2344840f711b1 Mon Sep 17 00:00:00 2001 From: Rick Vogel Date: Tue, 7 Nov 2023 20:08:01 +0100 Subject: [PATCH] make QskTickmarksMetrics QVariant compatible --- src/nodes/QskTickmarksMetrics.cpp | 38 +++++++++++++++++++++++++------ src/nodes/QskTickmarksMetrics.h | 10 ++++++++ 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/src/nodes/QskTickmarksMetrics.cpp b/src/nodes/QskTickmarksMetrics.cpp index c82da464..866d2367 100644 --- a/src/nodes/QskTickmarksMetrics.cpp +++ b/src/nodes/QskTickmarksMetrics.cpp @@ -1,16 +1,40 @@ #include "QskTickmarksMetrics.h" -constexpr bool test_ctor0() +#include + +static void qskRegisterTickmarksMetrics() { - return QskTickmarksMetrics{} == QskTickmarksMetrics{0,0,0}; + qRegisterMetaType< QskTickmarksMetrics >(); + +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + QMetaType::registerEqualsComparator< QskTickmarksMetrics >(); +#endif } -static_assert(test_ctor0(), "test failed!"); +Q_CONSTRUCTOR_FUNCTION( qskRegisterTickmarksMetrics ) -constexpr bool test_ctor1() +#ifndef QT_NO_DEBUG_STREAM + +#include + +QDebug operator<<( QDebug debug, const QskTickmarksMetrics& metrics ) { - QskTickmarksMetrics m; - return QskTickmarksMetrics{1,1,1} == QskTickmarksMetrics{2,2,2}; + QDebugStateSaver saver( debug ); + debug.nospace(); + + debug << "QskTickmarksMetrics"; + debug << '('; + debug << "minor: "; + debug << metrics.minorRatio(); + debug << ','; + debug << "medium: "; + debug << metrics.mediumRatio(); + debug << ','; + debug << "major: "; + debug << metrics.majorRatio(); + debug << ')'; + + return debug; } -static_assert(test_ctor1(), "test failed!"); \ No newline at end of file +#endif diff --git a/src/nodes/QskTickmarksMetrics.h b/src/nodes/QskTickmarksMetrics.h index 68b1bee9..27fea3a2 100644 --- a/src/nodes/QskTickmarksMetrics.h +++ b/src/nodes/QskTickmarksMetrics.h @@ -141,4 +141,14 @@ inline QskHashValue QskTickmarksMetrics::hash( const QskHashValue seed ) const n return hash; } +#ifndef QT_NO_DEBUG_STREAM + +class QDebug; +QSK_EXPORT QDebug operator<<( QDebug, const QskTickmarksMetrics& ); + +#endif + +Q_DECLARE_TYPEINFO( QskTickmarksMetrics, Q_MOVABLE_TYPE ); +Q_DECLARE_METATYPE( QskTickmarksMetrics ) + #endif \ No newline at end of file