qt6-bb10/tests/auto/corelib/kernel
Fabian Kosmale af53fb0e00 QProperty: Treat change listener modifying its source property as a loop
This is in line with QML where

import QtQuick 2.15
Rectangle {
  width: 100
  height: 100
  color: "red"
  Rectangle {
    id:  inner
    x: 10
    y: x
    width: 50
    height: 50
    onYChanged: { console.log("hey"); inner.x = 10}
    TapHandler {
      onTapped: inner.x = 20
    }
  }
}

results in a binding loop warning when the tap handler triggers. While
the change handler would only run once, we cannot statically determine
if we need to loop once, twice, or if there actually is a diverging
loop. Thus we unconditionally warn about the binding loop and stop
executing the binding.

As a drive-by, verify in the related test that a change handler which
overwrites its properties binding itself removes the binding.

Change-Id: I5372019c2389ab724c49cd7489ecbd3ebced1c69
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2021-01-28 18:51:19 +01:00
..
qcoreapplication Remove .prev_CMakeLists.txt files 2021-01-12 20:59:13 +01:00
qdeadlinetimer Remove the qmake project files 2021-01-07 15:32:28 +01:00
qelapsedtimer Remove the qmake project files 2021-01-07 15:32:28 +01:00
qeventdispatcher Remove the qmake project files 2021-01-07 15:32:28 +01:00
qeventloop Remove the qmake project files 2021-01-07 15:32:28 +01:00
qjnienvironment Make QJniObject and QJniEnvironment public API 2021-01-27 17:23:04 +02:00
qjniobject Make QJniObject and QJniEnvironment public API 2021-01-27 17:23:04 +02:00
qmath Add qHypot() to qmath.h, exposing and extending std::hypot() 2021-01-27 15:00:57 +01:00
qmetacontainer Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmetaenum Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmetamethod Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmetaobject Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmetaobjectbuilder Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmetaproperty Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmetatype Remove the qmake project files 2021-01-07 15:32:28 +01:00
qmimedata Remove the qmake project files 2021-01-07 15:32:28 +01:00
qobject Add new special QObjectPrivate::{connect, disconnect} for QML 2021-01-18 15:54:03 +01:00
qpointer Remove the qmake project files 2021-01-07 15:32:28 +01:00
qproperty QProperty: Treat change listener modifying its source property as a loop 2021-01-28 18:51:19 +01:00
qsharedmemory Remove .prev_CMakeLists.txt files 2021-01-12 20:59:13 +01:00
qsignalblocker Remove the qmake project files 2021-01-07 15:32:28 +01:00
qsignalmapper Remove the qmake project files 2021-01-07 15:32:28 +01:00
qsocketnotifier tst_socketnotifier: Fix timeout of QTcpServer::waitForNewConnection() 2021-01-21 08:53:35 +00:00
qsystemsemaphore Remove the qmake project files 2021-01-07 15:32:28 +01:00
qtimer QTimer: port to new property system 2021-01-26 21:47:50 +01:00
qtranslator Remove the qmake project files 2021-01-07 15:32:28 +01:00
qvariant QVariant::fromValue<T>: require T to be copy constructible 2021-01-18 15:51:18 +01:00
qwineventnotifier Remove the qmake project files 2021-01-07 15:32:28 +01:00
CMakeLists.txt Make QJniObject and QJniEnvironment public API 2021-01-27 17:23:04 +02:00