QML Connection and IDE - new syntax: Implicitly defined onFoo properties in Connections are deprecated

1.5k Views Asked by At

In the new version of QML 1.5.0, it is recommended to use the new syntax for connection e.g.

MouseArea {
Connections {
    function onClicked (mouse) {foo (mouse)}
}

Using the "Qt Design Studio 1.5.0" or "Qt Creator 4.12.1" IDE I get this warning.

With the old syntax, connections are visible in the Form Editor -> Connection View window and nothing is displayed there after the change for a new one.

Form Editor -> Connection with old syntax.

Being in a UI file e.g. main.ui.qml

Old syntax:

I receive a message:

Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo (<arguments>) {...}

After correcting for the new syntax, the message is: Function are not supported on a Qt Quick UI Form. (M22). and now is no possibility to edit the window using Form Editor.

I also can't make a connection to property e.g.

property bool mouseEnable: false

Connections {
    target: parent
    function onMouseEnableChanged(parent)
}

This is probably intended to be a signal handler but no signal of the target matches the name.

It is possible to stay with the old syntax without displaying a warning or maybe someone knows how to use the new syntax without the above IDE errors?

0

There are 0 best solutions below