42 case QMetaType::Type::UnknownType:
44 case QMetaType::Type::Bool:
45 return QObject::tr(
"Boolean" );
46 case QMetaType::Type::Int:
47 return QObject::tr(
"Integer (32 bit)" );
48 case QMetaType::Type::UInt:
49 return QObject::tr(
"Integer (unsigned 32 bit)" );
50 case QMetaType::Type::LongLong:
51 return QObject::tr(
"Integer (64 bit)" );
52 case QMetaType::Type::ULongLong:
53 return QObject::tr(
"Integer (unsigned 64 bit)" );
54 case QMetaType::Type::Double:
55 return QObject::tr(
"Decimal (double)" );
56 case QMetaType::Type::QChar:
57 return QObject::tr(
"Character" );
58 case QMetaType::Type::QVariantMap:
59 return QObject::tr(
"Map" );
60 case QMetaType::Type::QVariantList:
64 case QMetaType::Type::Int:
65 return QObject::tr(
"Integer List" );
66 case QMetaType::Type::LongLong:
67 return QObject::tr(
"Integer (64 bit) List" );
68 case QMetaType::Type::Double:
69 return QObject::tr(
"Decimal (double) List" );
71 return QObject::tr(
"List" );
74 case QMetaType::Type::QString:
75 return QObject::tr(
"Text (string)" );
76 case QMetaType::Type::QStringList:
77 return QObject::tr(
"String List" );
78 case QMetaType::Type::QByteArray:
79 return QObject::tr(
"Binary Object (BLOB)" );
80 case QMetaType::Type::QBitArray:
81 return QObject::tr(
"Bit Array" );
82 case QMetaType::Type::QDate:
83 return QObject::tr(
"Date" );
84 case QMetaType::Type::QTime:
85 return QObject::tr(
"Time" );
86 case QMetaType::Type::QDateTime:
87 return QObject::tr(
"Date & Time" );
88 case QMetaType::Type::QUrl:
89 return QObject::tr(
"URL" );
90 case QMetaType::Type::QLocale:
91 return QObject::tr(
"Locale" );
92 case QMetaType::Type::QRect:
93 case QMetaType::Type::QRectF:
94 return QObject::tr(
"Rectangle" );
95 case QMetaType::Type::QSize:
96 case QMetaType::Type::QSizeF:
97 return QObject::tr(
"Size" );
98 case QMetaType::Type::QLine:
99 case QMetaType::Type::QLineF:
100 return QObject::tr(
"Line" );
101 case QMetaType::Type::QPoint:
102 case QMetaType::Type::QPointF:
103 return QObject::tr(
"Point" );
104 case QMetaType::Type::QRegularExpression:
105 return QObject::tr(
"Regular Expression" );
106 case QMetaType::Type::QVariantHash:
107 return QObject::tr(
"Hash" );
108 case QMetaType::Type::QEasingCurve:
109 return QObject::tr(
"Easing Curve" );
110 case QMetaType::Type::QUuid:
111 return QObject::tr(
"UUID" );
112 case QMetaType::Type::QModelIndex:
113 case QMetaType::Type::QPersistentModelIndex:
114 return QObject::tr(
"Model Index" );
115 case QMetaType::Type::QFont:
116 return QObject::tr(
"Font" );
117 case QMetaType::Type::QPixmap:
118 return QObject::tr(
"Pixmap" );
119 case QMetaType::Type::QBrush:
120 return QObject::tr(
"Brush" );
121 case QMetaType::Type::QColor:
122 return QObject::tr(
"Color" );
123 case QMetaType::Type::QPalette:
124 return QObject::tr(
"Palette" );
125 case QMetaType::Type::QImage:
126 return QObject::tr(
"Image" );
127 case QMetaType::Type::QPolygon:
128 case QMetaType::Type::QPolygonF:
129 return QObject::tr(
"Polygon" );
130 case QMetaType::Type::QRegion:
131 return QObject::tr(
"Region" );
132 case QMetaType::Type::QBitmap:
133 return QObject::tr(
"Bitmap" );
134 case QMetaType::Type::QCursor:
135 return QObject::tr(
"Cursor" );
136 case QMetaType::Type::QKeySequence:
137 return QObject::tr(
"Key Sequence" );
138 case QMetaType::Type::QPen:
139 return QObject::tr(
"Pen" );
140 case QMetaType::Type::QTextLength:
141 return QObject::tr(
"Text Length" );
142 case QMetaType::Type::QTextFormat:
143 return QObject::tr(
"Text Format" );
144 case QMetaType::Type::QMatrix4x4:
145 return QObject::tr(
"Matrix" );
146 case QMetaType::Type::QTransform:
147 return QObject::tr(
"Transform" );
148 case QMetaType::Type::QVector2D:
149 case QMetaType::Type::QVector3D:
150 case QMetaType::Type::QVector4D:
151 return QObject::tr(
"Vector" );
152 case QMetaType::Type::QQuaternion:
153 return QObject::tr(
"Quaternion" );
154 case QMetaType::Type::QIcon:
155 return QObject::tr(
"Icon" );
156 case QMetaType::Type::QSizePolicy:
157 return QObject::tr(
"Size Policy" );
173 ( void )silenceNullWarnings;
176 if ( variant.isNull() || !variant.isValid() )
179 switch ( variant.userType() )
181 case QMetaType::Type::UnknownType:
182 case QMetaType::Type::Bool:
183 case QMetaType::Type::Int:
184 case QMetaType::Type::UInt:
185 case QMetaType::Type::LongLong:
186 case QMetaType::Type::ULongLong:
187 case QMetaType::Type::Double:
188 case QMetaType::Type::QVariantMap:
189 case QMetaType::Type::QVariantList:
190 case QMetaType::Type::QStringList:
191 case QMetaType::Type::QUrl:
192 case QMetaType::Type::QLocale:
193 case QMetaType::Type::QRegularExpression:
194 case QMetaType::Type::QVariantHash:
195 case QMetaType::Type::QEasingCurve:
196 case QMetaType::Type::QModelIndex:
197 case QMetaType::Type::QPersistentModelIndex:
201 case QMetaType::Type::QDate:
202 if ( variant.toDate().isNull() )
204 if ( !silenceNullWarnings )
206 QgsDebugError( QStringLiteral(
"NULL QDateTime was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
211 case QMetaType::Type::QTime:
212 if ( variant.toTime().isNull() )
214 if ( !silenceNullWarnings )
216 QgsDebugError( QStringLiteral(
"NULL QTime was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
221 case QMetaType::Type::QDateTime:
222 if ( variant.toDate().isNull() )
224 if ( !silenceNullWarnings )
226 QgsDebugError( QStringLiteral(
"NULL QDate was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
231 case QMetaType::Type::QChar:
232 if ( variant.toChar().isNull() )
234 if ( !silenceNullWarnings )
236 QgsDebugError( QStringLiteral(
"NULL QChar was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
241 case QMetaType::Type::QString:
242 if ( variant.toString().isNull() )
244 if ( !silenceNullWarnings )
246 QgsDebugError( QStringLiteral(
"NULL QString was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
251 case QMetaType::Type::QByteArray:
252 if ( variant.toByteArray().isNull() )
254 if ( !silenceNullWarnings )
256 QgsDebugError( QStringLiteral(
"NULL QByteArray was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
261 case QMetaType::Type::QBitArray:
262 if ( variant.toBitArray().isNull() )
264 if ( !silenceNullWarnings )
266 QgsDebugError( QStringLiteral(
"NULL QBitArray was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
271 case QMetaType::Type::QRect:
272 if ( variant.toRect().isNull() )
274 if ( !silenceNullWarnings )
276 QgsDebugError( QStringLiteral(
"NULL QRect was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
281 case QMetaType::Type::QRectF:
282 if ( variant.toRectF().isNull() )
284 if ( !silenceNullWarnings )
286 QgsDebugError( QStringLiteral(
"NULL QRectF was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
291 case QMetaType::Type::QSize:
292 if ( variant.toSize().isNull() )
294 if ( !silenceNullWarnings )
296 QgsDebugError( QStringLiteral(
"NULL QSize was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
301 case QMetaType::Type::QSizeF:
302 if ( variant.toSizeF().isNull() )
304 if ( !silenceNullWarnings )
306 QgsDebugError( QStringLiteral(
"NULL QSizeF was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
311 case QMetaType::Type::QLine:
312 if ( variant.toLine().isNull() )
314 if ( !silenceNullWarnings )
316 QgsDebugError( QStringLiteral(
"NULL QLine was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
321 case QMetaType::Type::QLineF:
322 if ( variant.toLineF().isNull() )
324 if ( !silenceNullWarnings )
326 QgsDebugError( QStringLiteral(
"NULL QLineF was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
331 case QMetaType::Type::QPoint:
332 if ( variant.toPoint().isNull() )
334 if ( !silenceNullWarnings )
336 QgsDebugError( QStringLiteral(
"NULL QPoint was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
341 case QMetaType::Type::QPointF:
342 if ( variant.toPointF().isNull() )
344 if ( !silenceNullWarnings )
346 QgsDebugError( QStringLiteral(
"NULL QPointF was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
351 case QMetaType::Type::QUuid:
352 if ( variant.toUuid().isNull() )
354 if ( !silenceNullWarnings )
356 QgsDebugError( QStringLiteral(
"NULL QUuid was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
361 case QMetaType::Type::QPixmap:
362 if ( variant.value< QPixmap >().isNull() )
364 if ( !silenceNullWarnings )
366 QgsDebugError( QStringLiteral(
"NULL QPixmap was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
371 case QMetaType::Type::QImage:
372 if ( variant.value< QImage >().isNull() )
374 if ( !silenceNullWarnings )
376 QgsDebugError( QStringLiteral(
"NULL QImage was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
381 case QMetaType::Type::QRegion:
382 if ( variant.value< QRegion >().isNull() )
384 if ( !silenceNullWarnings )
386 QgsDebugError( QStringLiteral(
"NULL QRegion was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
391 case QMetaType::Type::QBitmap:
392 if ( variant.value< QBitmap >().isNull() )
394 if ( !silenceNullWarnings )
396 QgsDebugError( QStringLiteral(
"NULL QBitmap was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
401 case QMetaType::Type::QIcon:
402 if ( variant.value< QIcon >().isNull() )
404 if ( !silenceNullWarnings )
406 QgsDebugError( QStringLiteral(
"NULL QIcon was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
411 case QMetaType::Type::QVector2D:
412 if ( variant.value< QVector2D >().isNull() )
414 if ( !silenceNullWarnings )
416 QgsDebugError( QStringLiteral(
"NULL QVector2D was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
421 case QMetaType::Type::QVector3D:
422 if ( variant.value< QVector3D >().isNull() )
424 if ( !silenceNullWarnings )
426 QgsDebugError( QStringLiteral(
"NULL QVector3D was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
431 case QMetaType::Type::QVector4D:
432 if ( variant.value< QVector4D >().isNull() )
434 if ( !silenceNullWarnings )
436 QgsDebugError( QStringLiteral(
"NULL QVector4D was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
441 case QMetaType::Type::QQuaternion:
442 if ( variant.value< QQuaternion >().isNull() )
444 if ( !silenceNullWarnings )
446 QgsDebugError( QStringLiteral(
"NULL QQuaternion was stored in a QVariant -- stop it! Always use an invalid QVariant() instead." ) );
452 case QMetaType::Type::QColor:
453 case QMetaType::Type::QFont:
454 case QMetaType::Type::QBrush:
455 case QMetaType::Type::QPolygon:
456 case QMetaType::Type::QPalette:
457 case QMetaType::Type::QCursor:
458 case QMetaType::Type::QKeySequence:
459 case QMetaType::Type::QPen:
460 case QMetaType::Type::QTextLength:
461 case QMetaType::Type::QPolygonF:
462 case QMetaType::Type::QTextFormat:
463 case QMetaType::Type::QTransform:
464 case QMetaType::Type::QMatrix4x4:
465 case QMetaType::Type::QSizePolicy:
466 case QMetaType::Type::User:
507 case QMetaType::Bool:
509 case QMetaType::UInt:
510 case QMetaType::LongLong:
511 case QMetaType::ULongLong:
512 case QMetaType::Double:
513 case QMetaType::QChar:
514 case QMetaType::QVariantMap:
515 case QMetaType::QVariantList:
516 case QMetaType::QString:
517 case QMetaType::QStringList:
518 case QMetaType::QByteArray:
519 case QMetaType::QBitArray:
520 case QMetaType::QDate:
521 case QMetaType::QTime:
522 case QMetaType::QDateTime:
523 case QMetaType::QUrl:
524 case QMetaType::QLocale:
525 case QMetaType::QRect:
526 case QMetaType::QRectF:
527 case QMetaType::QSize:
528 case QMetaType::QSizeF:
529 case QMetaType::QLine:
530 case QMetaType::QLineF:
531 case QMetaType::QPoint:
532 case QMetaType::QPointF:
533 case QMetaType::QRegularExpression:
534 case QMetaType::QVariantHash:
535 case QMetaType::QEasingCurve:
536 case QMetaType::QUuid:
537 case QMetaType::QModelIndex:
538 case QMetaType::QPersistentModelIndex:
539 case QMetaType::QFont:
540 case QMetaType::QPixmap:
541 case QMetaType::QBrush:
542 case QMetaType::QColor:
543 case QMetaType::QPalette:
544 case QMetaType::QImage:
545 case QMetaType::QPolygon:
546 case QMetaType::QRegion:
547 case QMetaType::QBitmap:
548 case QMetaType::QCursor:
549 case QMetaType::QKeySequence:
550 case QMetaType::QPen:
551 case QMetaType::QTextLength:
552 case QMetaType::QTextFormat:
553 case QMetaType::QTransform:
554 case QMetaType::QMatrix4x4:
555 case QMetaType::QVector2D:
556 case QMetaType::QVector3D:
557 case QMetaType::QVector4D:
558 case QMetaType::QQuaternion:
559 case QMetaType::QPolygonF:
560 case QMetaType::QIcon:
561 case QMetaType::QSizePolicy:
562 case QMetaType::UnknownType:
563 case QMetaType::User:
564 return static_cast< QVariant::Type
>( metaType );
568 case QMetaType::Long:
569 return QVariant::Type::LongLong;
571 case QMetaType::ULong:
572 return QVariant::Type::ULongLong;
574 case QMetaType::Char:
575#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
576 case QMetaType::Char16:
577 case QMetaType::Char32:
579 case QMetaType::Short:
580 case QMetaType::SChar:
581 return QVariant::Type::Int;
583 case QMetaType::UShort:
584 case QMetaType::UChar:
585 return QVariant::Type::UInt;
587 case QMetaType::Float:
588#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
589 case QMetaType::Float16:
591 return QVariant::Type::Double;
594 case QMetaType::Nullptr:
595 case QMetaType::QCborSimpleType:
596 case QMetaType::Void:
597 case QMetaType::VoidStar:
598 case QMetaType::QVariant:
599 case QMetaType::QJsonValue:
600 case QMetaType::QJsonObject:
601 case QMetaType::QJsonArray:
602 case QMetaType::QJsonDocument:
603 case QMetaType::QCborValue:
604 case QMetaType::QCborArray:
605 case QMetaType::QCborMap:
606 case QMetaType::QObjectStar:
607#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
608 case QMetaType::QVariantPair:
610 case QMetaType::QByteArrayList:
611 case QMetaType::QColorSpace:
618 return QVariant::Type::UserType;