2520 QCOMPARE(qvariant_cast<float>(n), 44.0f); |
2520 QCOMPARE(qvariant_cast<float>(n), 44.0f); |
2521 |
2521 |
2522 QCOMPARE(qVariantFromValue(0.25f).toDouble(), 0.25); |
2522 QCOMPARE(qVariantFromValue(0.25f).toDouble(), 0.25); |
2523 } |
2523 } |
2524 |
2524 |
|
2525 struct Blah { int i; }; |
|
2526 |
|
2527 QDataStream& operator>>(QDataStream& s, Blah& c) |
|
2528 { return (s >> c.i); } |
|
2529 |
|
2530 QDataStream& operator<<(QDataStream& s, const Blah& c) |
|
2531 { return (s << c.i); } |
|
2532 |
2525 void tst_QVariant::saveLoadCustomTypes() |
2533 void tst_QVariant::saveLoadCustomTypes() |
2526 { |
2534 { |
2527 QByteArray data; |
2535 QByteArray data; |
2528 |
2536 |
2529 int i = 42; |
2537 Blah i = { 42 }; |
2530 int tp = qRegisterMetaType<int>("Blah"); |
2538 int tp = qRegisterMetaType<Blah>("Blah"); |
2531 QVariant v = QVariant(tp, &i); |
2539 QVariant v = QVariant(tp, &i); |
2532 |
2540 |
2533 qRegisterMetaTypeStreamOperators<int>("Blah"); |
2541 qRegisterMetaTypeStreamOperators<Blah>("Blah"); |
2534 |
2542 |
2535 QCOMPARE(v.userType(), tp); |
2543 QCOMPARE(v.userType(), tp); |
2536 QVERIFY(v.type() == QVariant::UserType); |
2544 QVERIFY(v.type() == QVariant::UserType); |
2537 { |
2545 { |
2538 QDataStream stream(&data, QIODevice::WriteOnly); |
2546 QDataStream stream(&data, QIODevice::WriteOnly); |