aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmlecmascript/data/scriptConnect.dynamic.2.qml
blob: 9f1f67bbeb5072f45e211f26cf44f65aac4d26fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import Qt.test 1.0
import QtQuick 2.0
import "scriptConnect.6.js" as Script

Item {
    id: root

    property int test: 0
    property var dynamicObjectProperty: undefined

    signal outer
    Component {
        id: comp
        Item {
            signal inner
            onInner: { Script.testFunction(); root.disconnectAndDestroyDynamicObject(); }
        }
    }

    function disconnectAndDestroyDynamicObject() {
        if (dynamicObjectProperty) {
            root.outer.disconnect(dynamicObjectProperty.inner);
            dynamicObjectProperty.destroy();
            dynamicObjectProperty = undefined;
            gc();
        }
    }

    Component.onCompleted: {
        dynamicObjectProperty = comp.createObject(root);
        root.outer.connect(dynamicObjectProperty.inner);
    }
}