on xenial help sign in
simplify code
commita57ff95df5dc4c438ec9fdfea720444451daa91e authorMichael Zanetti <michael.zanetti@canonical.com> dateMon 3 Feb 2014, 13:28 (13 years ago) parenta84c35b
1 file changed+40−65
qml/Stages/TransformedSpreadDelegate.qml+40−65
qml/Stages/TransformedSpreadDelegate.qml+40−65
@@ -110,115 +110,90 @@ SpreadDelegate {
110110 return priv.selectedXTranslate;
111111 }
112112
113− var translation = 0;
114113 switch (index) {
115114 case 0:
116115 if (spreadView.stage == 0) {
117− translation = linearAnimation(0, spreadView.positionMarker2, 0, -spreadView.width * .25, root.animatedProgress)
118− break;
116+ return linearAnimation(0, spreadView.positionMarker2, 0, -spreadView.width * .25, root.animatedProgress)
119117 } else if (spreadView.stage == 1){
120− translation = linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, -spreadView.width * .25, priv.stage2startTranslate, root.progress)
121− break;
118+ return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, -spreadView.width * .25, priv.stage2startTranslate, root.progress)
122119 } else if (!priv.isSelected){ // Stage 2
123− // Move the first tile a bit to the right to be aligned with the others
124− translation += spreadView.width
125− // apply the same animation as with the rest
126− translation += -easingCurve.value * spreadView.width
127− break;
120+ // Apply the same animation as with the rest but add spreadView.width to align it with the others.
121+ return -easingCurve.value * spreadView.width + spreadView.width
128122 } else if (priv.isSelected) {
129− translation = linearAnimation(selectedProgress, negativeProgress, selectedXTranslate, 0, root.progress)
130− break;
123+ return linearAnimation(selectedProgress, negativeProgress, selectedXTranslate, 0, root.progress)
131124 }
132125
133126 case 1:
134127 if (spreadView.stage == 0 && !priv.isSelected) {
135− translation = linearAnimation(0, spreadView.positionMarker2, 0, -spreadView.width * spreadView.snapPosition, root.animatedProgress)
136− break;
128+ return linearAnimation(0, spreadView.positionMarker2, 0, -spreadView.width * spreadView.snapPosition, root.animatedProgress)
137129 } else if (spreadView.stage == 1 && !priv.isSelected) {
138− translation = linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4,
130+ return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4,
139131 -spreadView.width * spreadView.snapPosition, priv.stage2startTranslate, root.progress);
140− break;
141132 }
133+ }
142134
143− default:
144− // Fix it at the right edge...
145− translation += -((index - 1) * root.startDistance)
146− // ...and use our easing to move them to the left. Stop a bit earlier for each tile
147− translation += -easingCurve.value * spreadView.width + (index * root.endDistance)
148− if (priv.isSelected) {
149− // Distance to left edge
150− var targetTranslate = -spreadView.width - ((index - 1) * root.startDistance)
151− translation = linearAnimation(selectedProgress, negativeProgress, selectedXTranslate, targetTranslate, root.progress)
152− }
135+ if (priv.isSelected) {
136+ // Distance to left edge
137+ var targetTranslate = -spreadView.width - ((index - 1) * root.startDistance)
138+ return linearAnimation(selectedProgress, negativeProgress, selectedXTranslate, targetTranslate, root.progress)
153139 }
154− return translation;
140+
141+ // Fix it at the right edge...
142+ var rightEdgeOffset = -((index - 1) * root.startDistance)
143+ // ...and use our easing to move them to the left. Stop a bit earlier for each tile
144+ return -easingCurve.value * spreadView.width + (index * root.endDistance) + rightEdgeOffset
145+
155146 }
147+
156148 property real angle: {
157149 if (priv.otherSelected) {
158150 return priv.selectedAngle
159151 }
160−
161− var newAngle = 0;
152+ if (priv.isSelected) {
153+ return linearAnimation(selectedProgress, negativeProgress, selectedAngle, 0, root.progress)
154+ }
162155 switch (index) {
163156 case 0:
164157 if (spreadView.stage == 0) {
165− newAngle = linearAnimation(0, spreadView.positionMarker2, 0, root.tile0SnapAngle, root.animatedProgress)
166− break;
158+ return linearAnimation(0, spreadView.positionMarker2, 0, root.tile0SnapAngle, root.animatedProgress)
167159 } else if (spreadView.stage == 1) {
168− newAngle = linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, root.tile0SnapAngle, stage2startAngle, root.progress)
169− break;
160+ return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, root.tile0SnapAngle, stage2startAngle, root.progress)
170161 }
171162 case 1:
172− if (spreadView.stage == 0 && !priv.isSelected) {
173− newAngle = linearAnimation(0, spreadView.positionMarker2, root.startAngle, root.startAngle * (1-spreadView.snapPosition), root.animatedProgress)
174− break;
175− } else if (spreadView.stage == 1 && !priv.isSelected) {
176− newAngle = linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, root.startAngle * (1-spreadView.snapPosition), priv.stage2startAngle, root.progress)
177− break;
178− }
179−
180− default:
181− newAngle = root.startAngle - easingCurve.value * (root.startAngle - root.endAngle)
182− if (priv.isSelected) {
183− newAngle = linearAnimation(selectedProgress, negativeProgress, selectedAngle, 0, root.progress)
163+ if (spreadView.stage == 0) {
164+ return linearAnimation(0, spreadView.positionMarker2, root.startAngle, root.startAngle * (1-spreadView.snapPosition), root.animatedProgress)
165+ } else if (spreadView.stage == 1) {
166+ return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, root.startAngle * (1-spreadView.snapPosition), priv.stage2startAngle, root.progress)
184167 }
185168 }
186−
187− return newAngle;
169+ return root.startAngle - easingCurve.value * (root.startAngle - root.endAngle)
188170 }
171+
189172 property real scale: {
190173 if (priv.otherSelected) {
191174 return priv.selectedScale;
192175 }
176+ if (priv.isSelected) {
177+ return linearAnimation(selectedProgress, negativeProgress, selectedScale, 1, root.progress)
178+ }
193179
194− var newScale = 1;
195180 switch (index) {
196181 case 0:
197182 if (spreadView.stage == 0) {
198− newScale = 1;
199− break
183+ return 1;
200184 } else if(spreadView.stage == 1) {
201− newScale = linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, 1, stage2startScale, root.progress)
202− break;
185+ return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, 1, stage2startScale, root.progress)
203186 }
204187 case 1:
205− if (spreadView.stage == 0 && !priv.isSelected) {
188+ if (spreadView.stage == 0) {
206189 var targetScale = tile1StartScale - ((tile1StartScale - 1) * spreadView.snapPosition);
207− newScale = linearAnimation(0, spreadView.positionMarker2, root.tile1StartScale, targetScale, root.animatedProgress)
208− break;
209− } else if (spreadView.stage == 1 && !priv.isSelected) {
190+ return linearAnimation(0, spreadView.positionMarker2, root.tile1StartScale, targetScale, root.animatedProgress)
191+ } else if (spreadView.stage == 1) {
210192 var startScale = tile1StartScale - ((tile1StartScale - 1) * spreadView.snapPosition);
211− newScale = linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, startScale, priv.stage2startScale, root.progress)
212− break;
213− }
214−
215− default:
216− newScale = root.startScale - easingCurve.value * (root.startScale - root.endScale)
217− if (priv.isSelected) {
218− newScale = linearAnimation(selectedProgress, negativeProgress, selectedScale, 1, root.progress)
193+ return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, startScale, priv.stage2startScale, root.progress)
219194 }
220195 }
221− return newScale;
196+ return root.startScale - easingCurve.value * (root.startScale - root.endScale)
222197 }
223198
224199 property real opacity: {