on xenial help sign in
Faster loading of indicator menus. Fixes: https://bugs.launchpad.net/bugs/1226650.

Approved by PS Jenkins bot, Michael Zanetti.

commit6f78d6e8d4905bc0253d565deb1f672fc3c69115 authorNick Dedekind <nicholas.dedekind@gmail.com> dateFri 1 Nov 2013, 20:25 (13 years ago) parentb238a9df1113a7
1 file changed+27−6
plugins/Unity/Indicators/qml/IndicatorPage.qml+27−6
plugins/Unity/Indicators/qml/IndicatorPage.qml+27−6
@@ -34,11 +34,36 @@ IndicatorBase {
3434 Indicators.UnityMenuModelStack {
3535 id: menuStack
3636 head: contentActive ? main.menuModel : null
37+
38+ property var rootMenu: null
39+
40+ onTailChanged: {
41+ if (!tail) {
42+ rootMenu = null;
43+ } else if (rootMenu != tail) {
44+ if (tail.get(0, "type") === rootMenuType) {
45+ rootMenu = menuStack.tail.submenu(0);
46+ push(rootMenu, 0);
47+ } else {
48+ rootMenu = null;
49+ }
50+ }
51+ }
52+ }
53+
54+ Connections {
55+ target: menuStack.tail
56+ onRowsInserted: {
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);
60+ }
61+ }
3762 }
3863
3964 ListView {
4065 id: mainMenu
41− model: menuStack.tail ? menuStack.tail : null
66+ model: menuStack.rootMenu
4267
4368 anchors {
4469 fill: parent
@@ -102,7 +127,7 @@ IndicatorBase {
102127
103128 Loader {
104129 id: loader
105− asynchronous: true
130+ asynchronous: false
106131
107132 property int modelIndex: index
108133
@@ -114,10 +139,6 @@ IndicatorBase {
114139 sourceComponent: factory.load(model)
115140
116141 onLoaded: {
117− if (model.type === rootMenuType) {
118− menuStack.push(mainMenu.model.submenu(index));
119− }
120−
121142 if (item.hasOwnProperty("menuSelected")) {
122143 item.menuSelected = Qt.binding(function() { return mainMenu.selectedIndex == index; });
123144 item.selectMenu.connect(function() { mainMenu.selectedIndex = index; });