qtdeclarative/tests/auto/qml/qmlcppcodegen/data/destroyAndToString.qml

65 lines
1.6 KiB
QML

pragma Strict
import QML
QtObject {
id: self
objectName: "me, myself, and I"
property QtObject delayedShadowable: QtObject {
objectName: "delayedShadowable"
}
property QtObject immediateShadowable: QtObject {
objectName: "immediateShadowable"
}
property QtObject delayedDestroyable: QtObject {
id: destroyDelayed
}
property QtObject immediateDestroyable: QtObject {
id: destroyNow
}
property QtObject scopedImmediateDestroyable: QtObject {
id: scopedImmediate
function destroySelf() { destroy() }
}
property QtObject scopedDelayedDestroyable: QtObject {
id: scopedDelayed
function destroySelf() { destroy(20) }
}
property string stringed: toString()
property string selfStringed: self.toString()
property string immediateShadowableStringed: immediateShadowable.toString()
property string delayedShadowableStringed: delayedShadowable.toString();
function explode() {
delayedShadowable.destroy(20);
immediateShadowable.destroy();
destroyDelayed.destroy(20);
destroyNow.destroy();
scopedImmediate.destroySelf();
scopedDelayed.destroySelf();
}
property QtObject overrides: QtObject {
function toString() : string {
return "yes";
}
function destroy() {
self.objectName = "no";
}
}
function callOverridden() : string {
// toString() can be overridden, destroy() not.
let result = overrides.toString();
overrides.destroy();
return result;
}
}