*/
template <typename T>
-inline T qVariantToHelper(const QVariant::Private &d, QVariant::Type t, const HandlersManager &handlerManager)
+inline T qVariantToHelper(const QVariant::Private &d, const HandlersManager &handlerManager)
{
- if (d.type == t)
+ const QVariant::Type targetType = static_cast<const QVariant::Type>(qMetaTypeId<T>());
+ if (d.type == targetType)
return *v_cast<T>(&d);
T ret;
- handlerManager[d.type]->convert(&d, t, &ret, 0);
+ handlerManager[d.type]->convert(&d, targetType, &ret, 0);
return ret;
}
*/
QStringList QVariant::toStringList() const
{
- return qVariantToHelper<QStringList>(d, StringList, handlerManager);
+ return qVariantToHelper<QStringList>(d, handlerManager);
}
/*!
*/
QString QVariant::toString() const
{
- return qVariantToHelper<QString>(d, String, handlerManager);
+ return qVariantToHelper<QString>(d, handlerManager);
}
/*!
*/
QVariantMap QVariant::toMap() const
{
- return qVariantToHelper<QVariantMap>(d, Map, handlerManager);
+ return qVariantToHelper<QVariantMap>(d, handlerManager);
}
/*!
*/
QVariantHash QVariant::toHash() const
{
- return qVariantToHelper<QVariantHash>(d, Hash, handlerManager);
+ return qVariantToHelper<QVariantHash>(d, handlerManager);
}
/*!
*/
QDate QVariant::toDate() const
{
- return qVariantToHelper<QDate>(d, Date, handlerManager);
+ return qVariantToHelper<QDate>(d, handlerManager);
}
/*!
*/
QTime QVariant::toTime() const
{
- return qVariantToHelper<QTime>(d, Time, handlerManager);
+ return qVariantToHelper<QTime>(d, handlerManager);
}
/*!
*/
QDateTime QVariant::toDateTime() const
{
- return qVariantToHelper<QDateTime>(d, DateTime, handlerManager);
+ return qVariantToHelper<QDateTime>(d, handlerManager);
}
/*!
#ifndef QT_BOOTSTRAPPED
QEasingCurve QVariant::toEasingCurve() const
{
- return qVariantToHelper<QEasingCurve>(d, EasingCurve, handlerManager);
+ return qVariantToHelper<QEasingCurve>(d, handlerManager);
}
#endif
*/
QByteArray QVariant::toByteArray() const
{
- return qVariantToHelper<QByteArray>(d, ByteArray, handlerManager);
+ return qVariantToHelper<QByteArray>(d, handlerManager);
}
#ifndef QT_NO_GEOM_VARIANT
*/
QPoint QVariant::toPoint() const
{
- return qVariantToHelper<QPoint>(d, Point, handlerManager);
+ return qVariantToHelper<QPoint>(d, handlerManager);
}
/*!
*/
QRect QVariant::toRect() const
{
- return qVariantToHelper<QRect>(d, Rect, handlerManager);
+ return qVariantToHelper<QRect>(d, handlerManager);
}
/*!
*/
QSize QVariant::toSize() const
{
- return qVariantToHelper<QSize>(d, Size, handlerManager);
+ return qVariantToHelper<QSize>(d, handlerManager);
}
/*!
*/
QSizeF QVariant::toSizeF() const
{
- return qVariantToHelper<QSizeF>(d, SizeF, handlerManager);
+ return qVariantToHelper<QSizeF>(d, handlerManager);
}
/*!
*/
QRectF QVariant::toRectF() const
{
- return qVariantToHelper<QRectF>(d, RectF, handlerManager);
+ return qVariantToHelper<QRectF>(d, handlerManager);
}
/*!
*/
QLineF QVariant::toLineF() const
{
- return qVariantToHelper<QLineF>(d, LineF, handlerManager);
+ return qVariantToHelper<QLineF>(d, handlerManager);
}
/*!
*/
QLine QVariant::toLine() const
{
- return qVariantToHelper<QLine>(d, Line, handlerManager);
+ return qVariantToHelper<QLine>(d, handlerManager);
}
/*!
*/
QPointF QVariant::toPointF() const
{
- return qVariantToHelper<QPointF>(d, PointF, handlerManager);
+ return qVariantToHelper<QPointF>(d, handlerManager);
}
#endif // QT_NO_GEOM_VARIANT
*/
QUrl QVariant::toUrl() const
{
- return qVariantToHelper<QUrl>(d, Url, handlerManager);
+ return qVariantToHelper<QUrl>(d, handlerManager);
}
/*!
*/
QLocale QVariant::toLocale() const
{
- return qVariantToHelper<QLocale>(d, Locale, handlerManager);
+ return qVariantToHelper<QLocale>(d, handlerManager);
}
/*!
#ifndef QT_NO_REGEXP
QRegExp QVariant::toRegExp() const
{
- return qVariantToHelper<QRegExp>(d, RegExp, handlerManager);
+ return qVariantToHelper<QRegExp>(d, handlerManager);
}
#endif
*/
QChar QVariant::toChar() const
{
- return qVariantToHelper<QChar>(d, Char, handlerManager);
+ return qVariantToHelper<QChar>(d, handlerManager);
}
/*!
*/
QBitArray QVariant::toBitArray() const
{
- return qVariantToHelper<QBitArray>(d, BitArray, handlerManager);
+ return qVariantToHelper<QBitArray>(d, handlerManager);
}
template <typename T>
*/
QVariantList QVariant::toList() const
{
- return qVariantToHelper<QVariantList>(d, List, handlerManager);
+ return qVariantToHelper<QVariantList>(d, handlerManager);
}