@@ -81,6 +81,7 @@ Showable {
81 property alias enableAnimation: progressAnimation.enabled
81 property alias enableAnimation: progressAnimation.enabled
82 property real progress: 0
82 property real progress: 0
83 property bool showingNonFavoriteScope: false
83 property bool showingNonFavoriteScope: false
84+ property bool growingDashFromAll: false
84 Behavior on progress {
85 Behavior on progress {
85 id: progressAnimation
86 id: progressAnimation
86 UbuntuNumberAnimation { }
87 UbuntuNumberAnimation { }
@@ -96,7 +97,20 @@ Showable {
96 scopeScale: 1 - overviewController.progress * 0.6
97 scopeScale: 1 - overviewController.progress * 0.6
97 visible: scopeScale != 1
98 visible: scopeScale != 1
98 currentIndex: dashContent.currentIndex
99 currentIndex: dashContent.currentIndex
99− onDone: hide();
100+ onDone: {
101+ if (dashContent.parent == scopesOverviewXYScaler) {
102+ // Animate Dash growing from the All screen
103+ // TODO find where the thing comes from for that x, y
104+ scopesOverviewXYScaler.scale = scopesOverview.allCardSize.width / scopesOverviewXYScaler.width;
105+ scopesOverviewXYScaler.x = /*scopesOverview.allScopeClickedPos.x*/ -(scopesOverviewXYScaler.width - scopesOverviewXYScaler.width * scopesOverviewXYScaler.scale) / 2;
106+ scopesOverviewXYScaler.y = /*scopesOverview.allScopeClickedPos.y*/ -(scopesOverviewXYScaler.height - scopesOverviewXYScaler.height * scopesOverviewXYScaler.scale) / 2;
107+ overviewController.growingDashFromAll = true;
108+ scopesOverviewXYScaler.scale = 1;
109+ scopesOverviewXYScaler.x = 0;
110+ scopesOverviewXYScaler.y = 0;
100 onFavoriteSelected: {
114 onFavoriteSelected: {
101 dashContent.setCurrentScopeAtIndex(index, false, false);
115 dashContent.setCurrentScopeAtIndex(index, false, false);
@@ -126,7 +140,15 @@ Showable {
127 DashContent {
141 DashContent {
128 id: dashContent
142 id: dashContent
129− parent: overviewController.progress == 0 ? dash : scopesOverview.dashItemEater
144+ if (overviewController.progress == 0) {
146+ } else if (scopesOverview.dashItemEater) {
147+ return scopesOverview.dashItemEater;
149+ return scopesOverviewXYScaler;
130 objectName: "dashContent"
152 objectName: "dashContent"
131 width: dash.width
153 width: dash.width
132 height: dash.height
154 height: dash.height
@@ -160,7 +182,7 @@ Showable {
162 enabled: opacity == 1
184 enabled: opacity == 1
163− opacity: 1 - overviewController.progress
185+ opacity: overviewController.growingDashFromAll ? 1 : 1 - overviewController.progress
166 DashBackground
188 DashBackground
@@ -216,25 +238,29 @@ Showable {
216 enabled: scale == 1
238 enabled: scale == 1
217 opacity: scale
239 opacity: scale
241+ property bool animationsEnabled: overviewController.showingNonFavoriteScope || overviewController.growingDashFromAll
219 Behavior on x {
243 Behavior on x {
220− enabled: overviewController.showingNonFavoriteScope
244+ enabled: scopesOverviewXYScaler.animationsEnabled
221 UbuntuNumberAnimation { }
245 UbuntuNumberAnimation { }
223 Behavior on y {
247 Behavior on y {
224− enabled: overviewController.showingNonFavoriteScope
248+ enabled: scopesOverviewXYScaler.animationsEnabled
225 UbuntuNumberAnimation { }
249 UbuntuNumberAnimation { }
228 Behavior on scale {
252 Behavior on scale {
229− enabled: overviewController.showingNonFavoriteScope
253+ enabled: scopesOverviewXYScaler.animationsEnabled
230 UbuntuNumberAnimation {
254 UbuntuNumberAnimation {
231 onRunningChanged: {
255 onRunningChanged: {
232− if (overviewController.showingNonFavoriteScope) {
257+ if (overviewController.showingNonFavoriteScope && scopesOverviewXYScaler.scale != 1) {
233− if (!running && scopesOverviewXYScaler.scale != 1) {
234 scopesOverview.scope.closeScope(scopeItem.scope);
258 scopesOverview.scope.closeScope(scopeItem.scope);
235 overviewController.showingNonFavoriteScope = false;
259 overviewController.showingNonFavoriteScope = false;
236 scopeItem.scope = null;
260 scopeItem.scope = null;
237 scopeItem.parent = dash;
261 scopeItem.parent = dash;
262+ } else if (overviewController.growingDashFromAll) {
263+ overviewController.growingDashFromAll = false;