diff --git a/qttypes/src/qtcore/qvariant.rs b/qttypes/src/qtcore/qvariant.rs index 434391f..c9c9060 100644 --- a/qttypes/src/qtcore/qvariant.rs +++ b/qttypes/src/qtcore/qvariant.rs @@ -1,7 +1,8 @@ use std::fmt; use crate::{ - cpp, cpp_class, QByteArray, QDate, QDateTime, QString, QStringList, QTime, QUrl, QVariantList, QVariantMap + cpp, cpp_class, QByteArray, QDate, QDateTime, QString, QStringList, QTime, QUrl, QVariantList, + QVariantMap, }; cpp_class!( @@ -118,6 +119,16 @@ impl From for QVariant { }) } } +impl From for QVariant { + /// Wrapper around [`QVariant(const QMap &)`][ctor] constructor. + /// + /// [ctor]: https://doc.qt.io/qt-5/qvariant.html#QVariant-22 + fn from(a: QVariantMap) -> QVariant { + cpp!(unsafe [a as "QVariantMap"] -> QVariant as "QVariant" { + return QVariant(a); + }) + } +} impl From for QVariant { /// Wrapper around [`QVariant(const QByteArray &)`][ctor] constructor. /// @@ -293,4 +304,4 @@ mod tests { assert_eq!(qv.to_int(), 313); assert_eq!(format!("{:?}", qv), "QVariant(int: \"313\")"); } -} \ No newline at end of file +}