From 56f2407dc00de4adb4e2479202a58f1a8f5b096f Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Mon, 21 Mar 2022 14:33:47 +0100 Subject: [PATCH] QAbstractItemModelTester: use the right types for some roles Models are expected to return Qt::Alignment and Qt::CheckState when asked for the text alignment / check state roles, respectively. However, for legacy reasons, models may return `int` for either possibility. Extend the tester to cover this. Task-number: QTBUG-75172 Change-Id: I64bfc898466e8bb4d4a8a35726986ae610a8ffbe Pick-to: 6.2 6.3 Reviewed-by: Richard Moe Gustavsen --- src/testlib/qabstractitemmodeltester.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/testlib/qabstractitemmodeltester.cpp b/src/testlib/qabstractitemmodeltester.cpp index fd211b3fc5d..a3ba99459d7 100644 --- a/src/testlib/qabstractitemmodeltester.cpp +++ b/src/testlib/qabstractitemmodeltester.cpp @@ -41,6 +41,7 @@ #include "qabstractitemmodeltester.h" #include +#include #include #include #include @@ -674,14 +675,14 @@ void QAbstractItemModelTesterPrivate::data() // Check that the alignment is one we know about QVariant textAlignmentVariant = model->data(model->index(0, 0), Qt::TextAlignmentRole); if (textAlignmentVariant.isValid()) { - Qt::Alignment alignment = qvariant_cast(textAlignmentVariant); + Qt::Alignment alignment = QtPrivate::legacyFlagValueFromModelData(textAlignmentVariant); MODELTESTER_COMPARE(alignment, (alignment & (Qt::AlignHorizontal_Mask | Qt::AlignVertical_Mask))); } // Check that the "check state" is one we know about. QVariant checkStateVariant = model->data(model->index(0, 0), Qt::CheckStateRole); if (checkStateVariant.isValid()) { - int state = checkStateVariant.toInt(); + Qt::CheckState state = QtPrivate::legacyEnumValueFromModelData(checkStateVariant); MODELTESTER_VERIFY(state == Qt::Unchecked || state == Qt::PartiallyChecked || state == Qt::Checked);