So, how to fix the above? One could easily fix the API break, but one is left with broken APIs all over the place. There's no straightforward deprecation mechanism for QML either, and we've dropped versioned includes.

We haven't actually dropped versioned imports. An unversioned import just always imports the latest version. Versioned imports are somewhat broken in subtle ways (as they have always been). Therefore we recommend unversioned imports, but if there is a specific reason to use a versioned import, you still can.

There is in fact a deprecation mechanism via the @Deprecated QML annotation, but that is not public (yet), and it only works for QML-defined types, not for C++-defined ones. It shouldn't be too hard to add an analogous DEPRECATED property attribute and a Q_DEPRECATED method attribute to moc. Or we might re-use the C++ attributes and macros. Not in 6.4, though.

In the past we have just documented properties and methods as \deprecated in qdoc and left it at that. For example, FileDialog has some deprecated members.

best regards,
Ulf
_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to