diff --git a/qttypes/src/qtcore/qvariant.rs b/qttypes/src/qtcore/qvariant.rs index c9c9060..b6e24a1 100644 --- a/qttypes/src/qtcore/qvariant.rs +++ b/qttypes/src/qtcore/qvariant.rs @@ -94,6 +94,17 @@ impl QVariant { }) } + /// Return a `null` QVariant, in contrast to `default()` which returns an `undefined` QVariant. + pub fn null() -> QVariant { + cpp!(unsafe [] -> QVariant as "QVariant" { + #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + return QJsonValue().toVariant(); + #else + return QVariant::fromValue(nullptr); + #endif + }) + } + // FIXME: do more wrappers } @@ -304,4 +315,15 @@ mod tests { assert_eq!(qv.to_int(), 313); assert_eq!(format!("{:?}", qv), "QVariant(int: \"313\")"); } + + #[test] + fn qvariant_null() { + let qv_undefined = QVariant::default(); + assert!(qv_undefined.is_null()); + assert!(!qv_undefined.is_valid()); + + let qv_null = QVariant::null(); + assert!(qv_null.is_null()); + assert!(qv_null.is_valid()); + } }