[Development] QTCS2019 Notes from QtQml session

Ulf Hermann ulf.hermann at qt.io
Thu Nov 21 09:17:11 CET 2019


Hi,

these are the notes on the QtQml session:

Grouped properties
------------------

Grouped properties are incredibly buggy and basically unusable for 
anything but font and anchors right now. The language would be better 
off without the concept, allowing only the replacement of the full 
object (e.g., hypothetically, with inline components: "font: MyText.Font 
{ bold: true }") rather than individual grouped properties. The 
semantics of such would be easier to understand and easier to implement, 
but people don't like this, of course. See also QTBUG-72164


Context properties
------------------

These are remarkably evil and actually unnecessary. You can readily 
replace them with singletons or object properties (possibly required 
ones) already in 5.15. We can deprecate context properties. See also 
QTBUG-73064


Versioning
----------

Once we get rid of unqualified lookups we don't need any QML versioning 
anymore. At least the minor version will become optional already in 5.15 
for well-behaved QML documents. In QML 3 it won't be allowed.


Warnings / Transition to QML 3
------------------------------

We need a way of fine tuning the warnings. If you intend to port your 
program to QML 3 you want to see all deprecation warnings. If not, you 
want to suppress them all. If you want to stay with QML 2 but still fix 
some of the more glaring problems in your code, you may want to enable 
some warnings, but not others. We can have pragmas declaring what your 
code aims for in the QML files themselves and environment variables to 
switch warnings on or off. (In fact we want logging categories, but we 
didn't talk about that). We're not going to add replacement 
functionality (e.g. required properties) to 5.12 anymore. The base for 
porting to QML 3 has to be Qt 5.15.


Smart pointer support
---------------------

We want QML to properly deal with smart pointers. For example, it should 
be possible to transfer ownership by moving a unique pointer. See also 
QTBUG-60136


Sequence types
--------------

We need a way to register your own container classes with the QML engine 
so that they behave the same way as certain auto-registered lists and 
vectors do. See also QTBUG-71574. Also, people would like something akin 
to QQmlListProperty in qtbase. That is, a lightweight "model" that just 
grants access to some sequence data without providing storage for it.


Typed Model Data
----------------

We brainstormed a bit about how a model could declare its items' data 
type in QML, so that we could statically check model against delegate 
types. We will need this when compiling QML 3 to C++. We didn't come up 
with anything really great, though. This needs more work.


Ulf




More information about the Development mailing list