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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
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;
}
}
|