@@ -175,42 +175,32 @@ AbstractButton {
175175 }
176176
177177 onScopeChanged: {
178+ setNewNavigation();
179+ }
180+
181+ function setNewNavigation() {
178182 navigationModel.clear();
179183 if (scope && scope[hasNavigation]) {
180− navigationModel.append({"navigationId": scope[currentNavigationId], "nullifyNavigation": false});
184+ var navigation = getNavigation(scope[currentNavigationId]);
185+ if (navigation.count > 0) {
186+ navigationModel.append({"navigationId": scope[currentNavigationId], "nullifyNavigation": false});
187+ } else {
188+ navigationModel.append({"navigationId": navigation.parentNavigationId, "nullifyNavigation": false});
189+ }
181190 }
182191 }
183192
184193 Connections {
185194 target: scope
186195 // This is duplicated since we can't have something based on the dynamic hasNavigation string property
187− // TODO Try to merge these two together a bit more
188196 onHasNavigationChanged: {
189197 if (!root.isAltNavigation) {
190− if (scope.hasNavigation) {
191− var navigation = scope.getNavigation(scope.currentNavigationId);
192− if (navigation.count > 0) {
193− navigationModel.append({"navigationId": scope.currentNavigationId, "nullifyNavigation": false});
194− } else {
195− navigationModel.append({"navigationId": navigation.parentNavigationId, "nullifyNavigation": false});
196− }
197− } else {
198− navigationModel.clear();
199− }
198+ setNewNavigation();
200199 }
201200 }
202201 onHasAltNavigationChanged: {
203202 if (root.isAltNavigation) {
204− if (scope.hasAltNavigation) {
205− var navigation = scope.getAltNavigation(scope.currentAltNavigationId);
206− if (navigation.count > 0) {
207− navigationModel.append({"navigationId": scope.currentAltNavigationId, "nullifyNavigation": false});
208− } else {
209− navigationModel.append({"navigationId": navigation.parentNavigationId, "nullifyNavigation": false});
210− }
211− } else {
212− navigationModel.clear();
213− }
203+ setNewNavigation();
214204 }
215205 }
216206 }