on xenial help sign in
Make the xyscaler be a different item and not scopeItem itself
commite21eb51f523f1806be83d51452943bbbaaa35d16 authorAlbert Astals <albert.astals@canonical.com> dateTue 15 Jul 2014, 12:15 (12 years ago) parentf63ab20
1 file changed+48−34
qml/Dash/Dash.qml+48−34
qml/Dash/Dash.qml+48−34
@@ -111,14 +111,15 @@ Showable {
111111 target: scopesOverview.scope
112112 onOpenScope: {
113113 scopeItem.scope = scope;
114− scopeItem.overviewScale = scopesOverview.allCardSize.width / scopeItem.width;
115− scopeItem.x = scopesOverview.allScopeClickedPos.x -(scopeItem.width - scopeItem.width * scopeItem.overviewScale) / 2;
116− scopeItem.y = scopesOverview.allScopeClickedPos.y -(scopeItem.height - scopeItem.height * scopeItem.overviewScale) / 2;
114+ scopeItem.parent = scopesOverviewXYScaler;
115+ scopesOverviewXYScaler.scale = scopesOverview.allCardSize.width / scopesOverviewXYScaler.width;
116+ scopesOverviewXYScaler.x = scopesOverview.allScopeClickedPos.x -(scopesOverviewXYScaler.width - scopesOverviewXYScaler.width * scopesOverviewXYScaler.scale) / 2;
117+ scopesOverviewXYScaler.y = scopesOverview.allScopeClickedPos.y -(scopesOverviewXYScaler.height - scopesOverviewXYScaler.height * scopesOverviewXYScaler.scale) / 2;
117118 overviewController.showingNonFavoriteScope = true;
118119 scopesOverview.overrideOpacity = 0;
119− scopeItem.overviewScale = 1;
120− scopeItem.x = 0;
121− scopeItem.y = 0;
120+ scopesOverviewXYScaler.scale = 1;
121+ scopesOverviewXYScaler.x = 0;
122+ scopesOverviewXYScaler.y = 0;
122123 }
123124 }
124125 }
@@ -165,41 +166,19 @@ Showable {
165166 DashBackground
166167 {
167168 anchors.fill: scopeItem
168− scale: scopeItem.scale
169169 visible: scopeItem.visible
170+ parent: scopeItem.parent
170171 }
171172
172173 GenericScopeView {
173174 id: scopeItem
174175
175− property real overviewScale: 1
176−
177176 // TODO test this width + dashContent.x still works
178177 x: overviewController.showingNonFavoriteScope ? 0 : width + dashContent.x
179− Behavior on x {
180− enabled: overviewController.showingNonFavoriteScope
181− UbuntuNumberAnimation { }
182− }
183− Behavior on y {
184− enabled: overviewController.showingNonFavoriteScope
185− UbuntuNumberAnimation { }
186− }
178+ z: 1
187179 width: parent.width
188180 height: parent.height
189− scale: dash.contentScale * overviewScale
190− enabled: scale == 1
191− Behavior on overviewScale {
192− enabled: overviewController.showingNonFavoriteScope
193− UbuntuNumberAnimation {
194− onRunningChanged: {
195− if (!running && scopeItem.overviewScale != 1) {
196− scopesOverview.scope.closeScope(scopeItem.scope);
197− overviewController.showingNonFavoriteScope = false;
198− scopeItem.scope = null;
199− }
200− }
201− }
202− }
181+ scale: dash.contentScale
203182 clip: scale != 1.0
204183 visible: scope != null
205184 hasBackAction: true
@@ -207,9 +186,9 @@ Showable {
207186 onBackClicked: {
208187 if (overviewController.showingNonFavoriteScope) {
209188 var v = scopesOverview.allCardSize.width / scopeItem.width;
210− scopeItem.overviewScale = v;
211− scopeItem.x = scopesOverview.allScopeClickedPos.x -(scopeItem.width - scopeItem.width * v) / 2;
212− scopeItem.y = scopesOverview.allScopeClickedPos.y -(scopeItem.height - scopeItem.height * v) / 2;
189+ scopesOverviewXYScaler.scale = v;
190+ scopesOverviewXYScaler.x = scopesOverview.allScopeClickedPos.x -(scopeItem.width - scopeItem.width * v) / 2;
191+ scopesOverviewXYScaler.y = scopesOverview.allScopeClickedPos.y -(scopeItem.height - scopeItem.height * v) / 2;
213192 scopesOverview.overrideOpacity = -1;
214193 } else {
215194 closeOverlayScope();
@@ -228,6 +207,41 @@ Showable {
228207 }
229208 }
230209
210+ Item {
211+ id: scopesOverviewXYScaler
212+ width: parent.width
213+ height: parent.height
214+
215+ clip: scale != 1.0
216+ enabled: scale == 1
217+ opacity: scale
218+
219+ Behavior on x {
220+ enabled: overviewController.showingNonFavoriteScope
221+ UbuntuNumberAnimation { }
222+ }
223+ Behavior on y {
224+ enabled: overviewController.showingNonFavoriteScope
225+ UbuntuNumberAnimation { }
226+ }
227+
228+ Behavior on scale {
229+ enabled: overviewController.showingNonFavoriteScope
230+ UbuntuNumberAnimation {
231+ onRunningChanged: {
232+ if (overviewController.showingNonFavoriteScope) {
233+ if (!running && scopesOverviewXYScaler.scale != 1) {
234+ scopesOverview.scope.closeScope(scopeItem.scope);
235+ overviewController.showingNonFavoriteScope = false;
236+ scopeItem.scope = null;
237+ scopeItem.parent = dash;
238+ }
239+ }
240+ }
241+ }
242+ }
243+ }
244+
231245 EdgeDragArea {
232246 id: overviewDragHandle
233247 z: 1