You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are discussions open discussing the change of design of API so that we can become closer to a superset of CXX and allow to mix and match between. Some of the latest design points are in #156
Main Steps
And while doing these consider any general refactoring that can occur :-)
we need to avoid the create_rs etc colliding on the Rust side (we already namespace on the C++ side) but we either need one of these fixed in CXX to support it...
allowing for reusing the same Rust type across bridges (so that we could have a mod ffi and a mod internals_my_object sharing the same type but splitting the create_rs module placement) Extern "Rust" types that are nonlocal dtolnay/cxx#496
or we mangle the names ourselves so they don't collide, but having static method support in CXX would be useful in both directions and avoid the extra namespace etc.
Support multiple macro mod blocks
(0.5) Have the ability to declare a #[property(getter = "...", setter = "...", notify = "...")]
(0.5) Have an attribute on signals to say that that signal already exists ? enum Signal { #[existing_name="data_changed"] DataChanged } which is then matched to the existing name on the base class and prove with static asserts or cxx bridge typing
Investigate how CXX does parsing of syn code to find the macro mods, as we currently pattern match cxx::bridge to be the macro when the developer might do use cxx::bridge; ... #[bridge]
Design
There are discussions open discussing the change of design of API so that we can become closer to a superset of CXX and allow to mix and match between. Some of the latest design points are in #156
Main Steps
And while doing these consider any general refactoring that can occur :-)
make_qobject
tocxxqt::bridge
macro: rename make_qobject to cxx_qt::bridge #158Move current definition to be inside anextern "Qt"
block WIP: syntax: move to using an extern Qt block #159cxxqt::bridge(namespace = "rust::object")
cxx-qt-gen: use namespace = "A::B" from cxx_qt::bridge #194Changeextract_qobject
/extract_extern_qt
to respond with a vector and also have the passthrough contents forextern "C++" / "Rust"
etchandle_property_changed
as it won't be used anymore cxx-qt: remove handle_property_change instead rely on QML/C++ #151type QPoint = cxx_qt_lib::QPoint
cxx-qt-gen: use extern "C++" block to define Qt lib types #167impl Qt<T>
block cxx-qt-gen: use impl cxx_qt::QObject<T> block for invokables #178impl Qt<T>
block onto the Cpp object and update the wrappers to be namespaced free functions Remove CppObj #202Can we use Deref for getters of properties so that we can do UniquePtr -> &T in the same way as T -> &T?cxx-qt-gen/stem.h
andcxx-qt-lib/stem.h
Further independent steps
Change CMake to use a tool CLI tool for generating C++ sources at CMake configure stage #146Stretch improvements (move to 0.5)
Have acxx_qt_lib::prelude!()
to define aunsafe extern "C++"
block with all the types in itSupport having a namespace on further objects, such as on the struct for the QObjectHave the ability to declare a#[property(getter = "...", setter = "...", notify = "...")]
Have an attribute on signals to say that that signal already exists ?enum Signal { #[existing_name="data_changed"] DataChanged }
which is then matched to the existing name on the base class and prove with static asserts or cxx bridge typingInvestigate how CXX does parsing of syn code to find the macro mods, as we currently pattern matchcxx::bridge
to be the macro when the developer might douse cxx::bridge; ... #[bridge]
The text was updated successfully, but these errors were encountered: