on xenial help sign in
No need to go through activate now that i have the scopeId
8365782Albert Astals
qml/Dash/Dash.qml+16−18
@@ -82,6 +82,7 @@ Showable {
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 property bool growingDashFromAll: false
85+ property var allScopePosition: undefined
85 Behavior on progress {
86 Behavior on progress {
86 id: progressAnimation
87 id: progressAnimation
87 UbuntuNumberAnimation { }
88 UbuntuNumberAnimation { }
@@ -112,6 +113,19 @@ Showable {
112 animateDashFromAll();
113 animateDashFromAll();
113 hide();
114 hide();
114 }
115 }
116+ onAllSelected: {
117+ scopeItem.scope = scopes.getScope(scopeId);
118+ scopeItem.parent = scopesOverviewXYScaler;
119+ scopesOverviewXYScaler.scale = scopesOverview.allCardSize.width / scopesOverviewXYScaler.width;
120+ scopesOverviewXYScaler.x = pos.x -(scopesOverviewXYScaler.width - scopesOverviewXYScaler.width * scopesOverviewXYScaler.scale) / 2;
121+ scopesOverviewXYScaler.y = pos.y -(scopesOverviewXYScaler.height - scopesOverviewXYScaler.height * scopesOverviewXYScaler.scale) / 2;
122+ overviewController.showingNonFavoriteScope = true;
123+ overviewController.allScopePosition = pos;
124+ scopesOverview.overrideOpacity = 0;
125+ scopesOverviewXYScaler.scale = 1;
126+ scopesOverviewXYScaler.x = 0;
127+ scopesOverviewXYScaler.y = 0;
128+ }
115 function hide() {
129 function hide() {
116 overviewController.enableAnimation = true;
130 overviewController.enableAnimation = true;
117 overviewController.progress = 0;
131 overviewController.progress = 0;
@@ -127,22 +141,6 @@ Showable {
127 scopesOverviewXYScaler.x = 0;
141 scopesOverviewXYScaler.x = 0;
128 scopesOverviewXYScaler.y = 0;
142 scopesOverviewXYScaler.y = 0;
129 }
143 }
130−
131− Connections {
132− target: scopesOverview.scope
133− onOpenScope: {
134− scopeItem.scope = scope;
135− scopeItem.parent = scopesOverviewXYScaler;
136− scopesOverviewXYScaler.scale = scopesOverview.allCardSize.width / scopesOverviewXYScaler.width;
137− scopesOverviewXYScaler.x = scopesOverview.allScopeClickedPos.x -(scopesOverviewXYScaler.width - scopesOverviewXYScaler.width * scopesOverviewXYScaler.scale) / 2;
138− scopesOverviewXYScaler.y = scopesOverview.allScopeClickedPos.y -(scopesOverviewXYScaler.height - scopesOverviewXYScaler.height * scopesOverviewXYScaler.scale) / 2;
139− overviewController.showingNonFavoriteScope = true;
140− scopesOverview.overrideOpacity = 0;
141− scopesOverviewXYScaler.scale = 1;
142− scopesOverviewXYScaler.x = 0;
143− scopesOverviewXYScaler.y = 0;
144− }
145− }
146 }
144 }
147
145
148 DashContent {
146 DashContent {
@@ -216,8 +214,8 @@ Showable {
216 if (overviewController.showingNonFavoriteScope) {
214 if (overviewController.showingNonFavoriteScope) {
217 var v = scopesOverview.allCardSize.width / scopeItem.width;
215 var v = scopesOverview.allCardSize.width / scopeItem.width;
218 scopesOverviewXYScaler.scale = v;
216 scopesOverviewXYScaler.scale = v;
219− scopesOverviewXYScaler.x = scopesOverview.allScopeClickedPos.x -(scopeItem.width - scopeItem.width * v) / 2;
217+ scopesOverviewXYScaler.x = overviewController.allScopePosition.x -(scopeItem.width - scopeItem.width * v) / 2;
220− scopesOverviewXYScaler.y = scopesOverview.allScopeClickedPos.y -(scopeItem.height - scopeItem.height * v) / 2;
218+ scopesOverviewXYScaler.y = overviewController.allScopePosition.y -(scopeItem.height - scopeItem.height * v) / 2;
221 scopesOverview.overrideOpacity = -1;
219 scopesOverview.overrideOpacity = -1;
222 } else {
220 } else {
223 closeOverlayScope();
221 closeOverlayScope();
qml/Dash/ScopesOverview.qml+2−7
@@ -47,12 +47,11 @@ Item {
47 }
47 }
48 return Qt.size(0, 0);
48 return Qt.size(0, 0);
49 }
49 }
50− property var allScopeClickedPos
51
50
52 signal done()
51 signal done()
53 signal favoriteSelected(int index)
52 signal favoriteSelected(int index)
54 signal allFavoriteSelected(var scopeId)
53 signal allFavoriteSelected(var scopeId)
55− signal allSelected(var scope)
54+ signal allSelected(var scopeId, var pos)
56
55
57 function allScopeCardPosition(scopeId) {
56 function allScopeCardPosition(scopeId) {
58 if (middleItems.count > 1) {
57 if (middleItems.count > 1) {
@@ -220,11 +219,7 @@ Item {
220 if (index > 0) {
219 if (index > 0) {
221 root.allFavoriteSelected(itemModel.scopeId);
220 root.allFavoriteSelected(itemModel.scopeId);
222 } else {
221 } else {
223− // This will result in an openScope
224− // that we handle in Dash.qml
225− // TODO use and not do the openScope thing Q_INVOKABLE unity::shell::scopes::ScopeInterface* getScope(const QString& scope_id) const override;
226− root.allScopeClickedPos = item.mapToItem(null, 0, 0);
222+ root.allSelected(itemModel.scopeId, item.mapToItem(null, 0, 0));
227− scope.activate(result);
228 }
223 }
229 }
224 }
230 }
225 }