summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/itemmodels
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2020-06-10 11:26:31 +0200
committerLars Knoll <lars.knoll@qt.io>2020-08-13 08:48:32 +0200
commit048debe8f9a99bfd5db44b48657c4e1bc28c3448 (patch)
tree883b318fe4ba0bc99af320554d241cba66c8cfd6 /tests/auto/corelib/itemmodels
parent4a69cd7f72140c8f4c83f986b3366f7bd9ba69a3 (diff)
Restrict QVariant::isNull() behavior
isNull() would forward to the contained type and check that type's isNull() method for some of the builtin types. Remove that behavior and only return true in isNull(), if the variant is invalid, doesn't contain data or contains a null pointer. In addition, implement more consistent behavior when constructing a QVariant using the internal API taking a copy from a void *. isNull() should return true in both cases. This mainly changes behavior for some corner cases and when using our internal API. [ChangeLog][Important Behavior Changes] QVariant::isNull() no longer returns true when the variant contains an object of some type with an isNull() method, that returns true for the object; QVariant::isNull() now only returns true when the variant contains no object or a null pointer. Change-Id: I3125041c4f8f8618a04aa375aa0a56b19c02dcf5 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tests/auto/corelib/itemmodels')
-rw-r--r--tests/auto/corelib/itemmodels/qtransposeproxymodel/tst_qtransposeproxymodel.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/tests/auto/corelib/itemmodels/qtransposeproxymodel/tst_qtransposeproxymodel.cpp b/tests/auto/corelib/itemmodels/qtransposeproxymodel/tst_qtransposeproxymodel.cpp
index a5043b956a..8e8d1ec709 100644
--- a/tests/auto/corelib/itemmodels/qtransposeproxymodel/tst_qtransposeproxymodel.cpp
+++ b/tests/auto/corelib/itemmodels/qtransposeproxymodel/tst_qtransposeproxymodel.cpp
@@ -442,7 +442,8 @@ void tst_QTransposeProxyModel::insertRowBase()
const int oldColCount = proxy.columnCount(proxy.mapFromSource(parent));
QVERIFY(model->insertRow(1, parent));
QCOMPARE(proxy.columnCount(proxy.mapFromSource(parent)), oldColCount + 1);
- QVERIFY(proxy.index(0, 1, proxy.mapFromSource(parent)).data().isNull());
+ QVariant result = proxy.index(0, 1, proxy.mapFromSource(parent)).data();
+ QVERIFY(result.isNull() || (result.metaType().id() == QMetaType::QString && result.toString().isNull()));
QCOMPARE(columnsInsertSpy.count(), 1);
QCOMPARE(columnsAboutToBeInsertSpy.count(), 1);
for (const auto &spyArgs : {columnsInsertSpy.takeFirst(),
@@ -540,8 +541,10 @@ void tst_QTransposeProxyModel::insertColumnProxy()
QVERIFY(proxy.insertColumn(1, proxyParent));
QCOMPARE(proxy.columnCount(proxyParent), oldColCount + 1);
QCOMPARE(model->rowCount(sourceParent), oldRowCount + 1);
- QVERIFY(proxy.index(0, 1, proxyParent).data().isNull());
- QVERIFY(model->index(1, 0, sourceParent).data().isNull());
+ QVariant result = proxy.index(0, 1, proxyParent).data();
+ QVERIFY(result.isNull() || (result.metaType().id() == QMetaType::QString && result.toString().isNull()));
+ result = model->index(1, 0, sourceParent).data();
+ QVERIFY(result.isNull() || (result.metaType().id() == QMetaType::QString && result.toString().isNull()));
QCOMPARE(columnsInsertSpy.count(), 1);
QCOMPARE(columnsAboutToBeInsertSpy.count(), 1);
QCOMPARE(rowsInsertSpy.count(), 1);