Skip to content

Commit 428d190

Browse files
authored
cxx-qt-lib: implement QVariantValue for QVector2D/3D/4D (#1309)
1 parent cd1d58b commit 428d190

File tree

8 files changed

+132
-0
lines changed

8 files changed

+132
-0
lines changed

crates/cxx-qt-lib/build.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,9 @@ fn main() {
201201
rust_bridges.extend([
202202
"core/qlist/qlist_qcolor",
203203
"core/qvariant/qvariant_qcolor",
204+
"core/qvariant/qvariant_qvector2d",
205+
"core/qvariant/qvariant_qvector3d",
206+
"core/qvariant/qvariant_qvector4d",
204207
"core/qvector/qvector_qcolor",
205208
"gui/qcolor",
206209
"gui/qfont",

crates/cxx-qt-lib/include/core/qvariant.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@
3333

3434
#ifdef CXX_QT_GUI_FEATURE
3535
#include <QtGui/QColor>
36+
#include <QtGui/QVector2D>
37+
#include <QtGui/QVector3D>
38+
#include <QtGui/QVector4D>
3639
#endif
3740

3841
#include "rust/cxx.h"
@@ -80,6 +83,9 @@ CXX_QT_QVARIANT_CAN_CONVERT(I64)
8083
CXX_QT_QVARIANT_CAN_CONVERT(QByteArray)
8184
#ifdef CXX_QT_GUI_FEATURE
8285
CXX_QT_QVARIANT_CAN_CONVERT(QColor)
86+
CXX_QT_QVARIANT_CAN_CONVERT(QVector2D)
87+
CXX_QT_QVARIANT_CAN_CONVERT(QVector3D)
88+
CXX_QT_QVARIANT_CAN_CONVERT(QVector4D)
8389
#endif
8490
CXX_QT_QVARIANT_CAN_CONVERT(QDate)
8591
CXX_QT_QVARIANT_CAN_CONVERT(QDateTime)

crates/cxx-qt-lib/src/core/qvariant/generate.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@ generate_bridge_qt "QStringList" "qstringlist"
117117
generate_bridge_qt "QTime" "qtime"
118118
generate_bridge_qt "QUrl" "qurl"
119119
generate_bridge_qt "QUuid" "quuid"
120+
generate_bridge_qt "QVector2D" "qvector2d"
121+
generate_bridge_qt "QVector3D" "qvector3d"
122+
generate_bridge_qt "QVector4D" "qvector4d"
120123
generate_bridge_primitive "u8" "U8"
121124
generate_bridge_primitive "u16" "U16"
122125
generate_bridge_primitive "u32" "U32"

crates/cxx-qt-lib/src/core/qvariant/mod.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,12 @@ impl_qvariant_value!(crate::QStringList, qvariant_qstringlist);
213213
impl_qvariant_value!(crate::QTime, qvariant_qtime);
214214
impl_qvariant_value!(crate::QUrl, qvariant_qurl);
215215
impl_qvariant_value!(crate::QUuid, qvariant_quuid);
216+
#[cfg(feature = "qt_gui")]
217+
impl_qvariant_value!(crate::QVector2D, qvariant_qvector2d);
218+
#[cfg(feature = "qt_gui")]
219+
impl_qvariant_value!(crate::QVector3D, qvariant_qvector3d);
220+
#[cfg(feature = "qt_gui")]
221+
impl_qvariant_value!(crate::QVector4D, qvariant_qvector4d);
216222
impl_qvariant_value!(u8, qvariant_u8);
217223
impl_qvariant_value!(u16, qvariant_u16);
218224
impl_qvariant_value!(u32, qvariant_u32);

crates/cxx-qt-lib/src/core/qvariant/qvariant.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ CXX_QT_QVARIANT_CAN_CONVERT_IMPL(::std::int64_t, I64)
6868
CXX_QT_QVARIANT_CAN_CONVERT_IMPL(::QByteArray, QByteArray)
6969
#ifdef CXX_QT_GUI_FEATURE
7070
CXX_QT_QVARIANT_CAN_CONVERT_IMPL(::QColor, QColor)
71+
CXX_QT_QVARIANT_CAN_CONVERT_IMPL(::QVector2D, QVector2D)
72+
CXX_QT_QVARIANT_CAN_CONVERT_IMPL(::QVector3D, QVector3D)
73+
CXX_QT_QVARIANT_CAN_CONVERT_IMPL(::QVector4D, QVector4D)
7174
#endif
7275
CXX_QT_QVARIANT_CAN_CONVERT_IMPL(::QDate, QDate)
7376
CXX_QT_QVARIANT_CAN_CONVERT_IMPL(::QDateTime, QDateTime)

crates/cxx-qt-lib/src/core/qvariant/qvariant_qvector2d.rs

Lines changed: 37 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/cxx-qt-lib/src/core/qvariant/qvariant_qvector3d.rs

Lines changed: 37 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/cxx-qt-lib/src/core/qvariant/qvariant_qvector4d.rs

Lines changed: 37 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)