cxx_qt_lib/core/
mod.rs

1// SPDX-FileCopyrightText: 2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
2// SPDX-FileContributor: Andrew Hayzen <andrew.hayzen@kdab.com>
3//
4// SPDX-License-Identifier: MIT OR Apache-2.0
5
6mod qbytearray;
7pub use qbytearray::QByteArray;
8
9mod qcoreapplication;
10pub use qcoreapplication::QCoreApplication;
11
12mod qdate;
13pub use qdate::QDate;
14
15#[cfg(not(target_os = "emscripten"))]
16mod qdatetime;
17#[cfg(not(target_os = "emscripten"))]
18pub use qdatetime::QDateTime;
19
20mod qhash;
21pub use qhash::{QHash, QHashPair, QHashPair_QString_QVariant, QHashPair_i32_QByteArray};
22
23mod qline;
24pub use qline::QLine;
25
26mod qlinef;
27pub use qlinef::QLineF;
28
29mod qlist;
30pub use qlist::{QList, QListElement};
31
32mod qmap;
33pub use qmap::{QMap, QMapPair, QMapPair_QString_QVariant};
34
35mod qmargins;
36pub use qmargins::QMargins;
37
38mod qmarginsf;
39pub use qmarginsf::QMarginsF;
40
41// Reexport QMetaObjectConnection and guard from cxx-qt
42pub use cxx_qt::{QMetaObjectConnection, QMetaObjectConnectionGuard};
43
44mod qmodelindex;
45pub use qmodelindex::QModelIndex;
46
47mod qpersistentmodelindex;
48pub use qpersistentmodelindex::QPersistentModelIndex;
49
50mod qrect;
51pub use qrect::QRect;
52
53mod qrectf;
54pub use qrectf::QRectF;
55
56mod qset;
57pub use qset::{QSet, QSetElement};
58
59mod qsize;
60pub use qsize::QSize;
61
62mod qsizef;
63pub use qsizef::QSizeF;
64
65mod qstring;
66pub use qstring::QString;
67
68#[cfg(cxxqt_qt_version_major = "6")]
69mod qanystringview;
70#[cfg(cxxqt_qt_version_major = "6")]
71pub use qanystringview::QAnyStringView;
72
73mod qstringlist;
74pub use qstringlist::QStringList;
75
76mod qt;
77pub use qt::{
78    AspectRatioMode, BGMode, CaseSensitivity, ClipOperation, ConnectionType, DateFormat, FillRule,
79    LayoutDirection, PenCapStyle, PenJoinStyle, PenStyle, SizeMode, SplitBehaviorFlags, TimeSpec,
80    TransformationMode,
81};
82
83mod qtime;
84pub use qtime::QTime;
85
86#[cfg(not(target_os = "emscripten"))]
87mod qtimezone;
88#[cfg(not(target_os = "emscripten"))]
89pub use qtimezone::QTimeZone;
90
91mod qpoint;
92pub use qpoint::QPoint;
93
94mod qpointf;
95pub use qpointf::QPointF;
96
97mod qurl;
98pub use qurl::QUrl;
99
100mod qvariant;
101pub use qvariant::{QVariant, QVariantValue};
102
103mod qvector;
104pub use qvector::{QVector, QVectorElement};
105
106#[cxx::bridge]
107mod ffi {
108    #[namespace = "rust::cxxqtlib1"]
109    unsafe extern "C++" {
110        include!("cxx-qt-lib/common.h");
111        type c_void;
112    }
113}
114
115/// This is a workaround for CXX missing support for `*mut c_void`/`*const c_void` types.
116///
117/// To use this type add this to your bridge:
118/// ```rust
119/// # #[cxx::bridge]
120/// # mod ffi {
121/// #
122/// #[namespace = "rust::cxxqtlib1"]
123/// unsafe extern "C++" {
124///     include!("cxx-qt-lib/common.h");
125///     type c_void = cxx_qt_lib::c_void;
126/// }
127/// #
128/// # }
129/// #
130/// # fn main() {}
131/// ```
132///
133/// See: <https://github.com/dtolnay/cxx/issues/1049>
134pub use ffi::c_void;