From 19dd244345b304f778a2ba0157e88424a13c09d9 Mon Sep 17 00:00:00 2001 From: Matti Viljanen Date: Mon, 5 Aug 2024 10:48:53 +0300 Subject: [PATCH] Add null QVariant constructor --- qttypes/src/qtcore/qvariant.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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()); + } }