diff --git a/src/corelib/itemmodels/qabstractitemmodel_p.h b/src/corelib/itemmodels/qabstractitemmodel_p.h index edc5ad61169..564862d0eda 100644 --- a/src/corelib/itemmodels/qabstractitemmodel_p.h +++ b/src/corelib/itemmodels/qabstractitemmodel_p.h @@ -181,10 +181,12 @@ template T legacyEnumValueFromModelData(const QVariant &data) { static_assert(std::is_enum_v); - if (data.userType() == qMetaTypeId()) + if (data.userType() == qMetaTypeId()) { return data.value(); - else if (data.userType() == qMetaTypeId()) + } else if (std::is_same_v, int> || + std::is_same_v, uint>) { return T(data.toInt()); + } return T(); } @@ -192,10 +194,12 @@ T legacyEnumValueFromModelData(const QVariant &data) template T legacyFlagValueFromModelData(const QVariant &data) { - if (data.userType() == qMetaTypeId()) + if (data.userType() == qMetaTypeId()) { return data.value(); - else if (data.userType() == qMetaTypeId()) + } else if (std::is_same_v, int> || + std::is_same_v, uint>) { return T::fromInt(data.toInt()); + } return T(); }