Open
Description
This is a tracking issue for an upgrade process ongoing to adapt wrappers to major changes in Qt 6.
Some functionality have been completely removed in Qt 6, while others were only deprecated for the time being. One such class is QMouseEvent
which is now full of deprecated methods. What's worse, they are not actually rendered as deprecated in official documentation (QTBUG-95310). (fixed)
So, currently our Qt 6 builds are flashing with warnings coming from C++ compiler.
The task is to
- forward those deprecation warnings to Rust using
#[deprecated]
attribute in tandem with some sort of#[cfg_if(qt_6_0)]
versioning; - modify wrappers such that they don't produce warnings just because we merely compile them as part of out wrappers framework; i.e. don't shoot the messenger — only blame users who actually use those methods.
- Fix things that should actually be fixed (upgraded) on qmetaobject-rs side.
List of warnings:
- «QMetaType::MovableType» => RelocatableType
- «static int QMetaType::type(const char*)»
- «static const char* QMetaType::typeName(int)»
- «bool QVariant::canConvert(int) const»
- «bool QVariant::convert(int)»
- «QPointF QMouseEvent::localPos() const»
All links are hard-wired to commit b81438c to avoid ambiguity. Use git blame to locate them within latest changes.
Also,
- make a tutorial for qmetaobject-rs developers on how to deal with deprecated functionality while still keeping backward compatibility with Qt 5 and earlier versions of Qt 6.