@@ -36,6 +36,7 @@ ProjectScene {
3636 fileName: root .fileName
3737 stageWidth: root .stageWidth
3838 stageHeight: root .stageHeight
39+
3940 onLoadingFinished: {
4041 priv .loading = false ;
4142
@@ -44,7 +45,25 @@ ProjectScene {
4445 else
4546 failedToLoad ();
4647 }
48+
4749 onStageChanged: stage .loadCostume ();
50+
51+ onCloneCreated : (cloneModel )=> clones .model .append ({" spriteModel" : cloneModel})
52+
53+ onCloneDeleted : (cloneModel )=> {
54+ // TODO: Removing the clone from C++ would probably be faster
55+ let i;
56+
57+ for (i = 0 ; i < clones .model .count ; i++ ) {
58+ if (clones .model .get (i).spriteModel === cloneModel)
59+ break ;
60+ }
61+
62+ if (i === clones .model .count )
63+ console .error (" error: deleted clone doesn't exist" );
64+ else
65+ clones .model .remove (i);
66+ }
4867 }
4968
5069 function start () {
@@ -78,12 +97,14 @@ ProjectScene {
7897
7998 RenderedTarget {
8099 id: target
81- engine: loader .engine
82- spriteModel: modelData
83100 mouseArea: sceneMouseArea
84101 stageScale: root .stageScale
85102 transform: Scale { xScale: mirrorHorizontally ? - 1 : 1 }
86- Component .onCompleted : modelData .renderedTarget = this
103+ Component .onCompleted : {
104+ engine = loader .engine ;
105+ spriteModel = modelData;
106+ spriteModel .renderedTarget = this ;
107+ }
87108 }
88109 }
89110
@@ -93,6 +114,12 @@ ProjectScene {
93114 delegate: renderedSprite
94115 }
95116
117+ Repeater {
118+ id: clones
119+ model: ListModel {}
120+ delegate: renderedSprite
121+ }
122+
96123 Loader {
97124 anchors .fill : parent
98125 active: showLoadingProgress && loading
0 commit comments