@@ -34,11 +34,36 @@ IndicatorBase {
34 Indicators.UnityMenuModelStack {
34 Indicators.UnityMenuModelStack {
35 id: menuStack
35 id: menuStack
36 head: contentActive ? main.menuModel : null
36 head: contentActive ? main.menuModel : null
38+ property var rootMenu: null
43+ } else if (rootMenu != tail) {
44+ if (tail.get(0, "type") === rootMenuType) {
45+ rootMenu = menuStack.tail.submenu(0);
55+ target: menuStack.tail
57+ if (menuStack.rootMenu !== menuStack.tail && menuStack.tail.get(0, "type") === rootMenuType) {
58+ menuStack.rootMenu = menuStack.tail.submenu(0);
59+ menuStack.push(menuStack.rootMenu, 0);
39 ListView {
64 ListView {
40 id: mainMenu
65 id: mainMenu
41− model: menuStack.tail ? menuStack.tail : null
66+ model: menuStack.rootMenu
44 fill: parent
69 fill: parent
@@ -102,7 +127,7 @@ IndicatorBase {
104 id: loader
129 id: loader
105− asynchronous: true
130+ asynchronous: false
107 property int modelIndex: index
132 property int modelIndex: index
@@ -114,10 +139,6 @@ IndicatorBase {
114 sourceComponent: factory.load(model)
139 sourceComponent: factory.load(model)
116 onLoaded: {
141 onLoaded: {
117− if (model.type === rootMenuType) {
118− menuStack.push(mainMenu.model.submenu(index));
121 if (item.hasOwnProperty("menuSelected")) {
142 if (item.hasOwnProperty("menuSelected")) {
122 item.menuSelected = Qt.binding(function() { return mainMenu.selectedIndex == index; });
143 item.menuSelected = Qt.binding(function() { return mainMenu.selectedIndex == index; });
123 item.selectMenu.connect(function() { mainMenu.selectedIndex = index; });
144 item.selectMenu.connect(function() { mainMenu.selectedIndex = index; });