65 lines
1.6 KiB
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;
|
|
}
|
|
}
|