Skip to content

0.5.0

Compare
Choose a tag to compare
@Be-ing Be-ing released this 08 Mar 16:24
· 612 commits to main since this release

Added

  • Support for inheriting methods from the superclass into Rust using #[cxx_qt::inherit].
  • Register QML types at build time: #[cxxqt::qobject(qml_uri = "foo.bar", qml_version = "1.0")]
  • Register QRC resources at build time in Cargo builds (don't need to call initialization function from Rust main function)
  • Support for container types: QSet<T>, QHash<K, V>, QList<T>, QMap<K, V>, QVector<T>
  • Support for further types: QByteArray, QCoreApplication, QGuiApplication, QMargins, QMarginsF, QModelIndex, QPersistentModelIndex, QQmlApplicationEngine, QQmlEngine, QStringList, QTimeZone, QVector2D, QVector3D, QVector4D
  • Support for nesting objects in properties, invokables, and signals with *mut T
  • Allow for marking signals as existing in the base class
  • Support for conversions to types in third-party crates: bytes, chrono, http, rgb, time, url
  • Add several quality of life functions to builtin cxx-qt-lib types, including Default constructors, string formatting, std::cmp order and operators

Changed

  • QVariant now has a uses a QVariantValue trait for supported types, allowing custom types to be used with QVariant
  • QtGui and QtQml types in cxx-qt-lib are now behind the features qt_gui and qt_qml

Fixed

  • Support for generating correct C++ code for Pin<T> Rust types
  • Support namespace attribute on shared types, QObject struct, and extern blocks
  • Asserts for 32bit platforms such as Wasm
  • Errors from the generation not pointing to the span where they occurred