on xenial help sign in
Remember the expanded categoryId and not the index
7950229Albert Astals
Dash/GenericScopeView.qml+8−7
@@ -59,13 +59,14 @@ ScopeView {
59 onAtYEndChanged: if (atYEnd) endReached()
59 onAtYEndChanged: if (atYEnd) endReached()
60 onMovingChanged: if (moving && atYEnd) endReached()
60 onMovingChanged: if (moving && atYEnd) endReached()
61
61
62− property int expandedIndex: -1
62+ property string expandedCategoryId: ""
63
63
64 delegate: ListItems.Base {
64 delegate: ListItems.Base {
65 highlightWhenPressed: false
65 highlightWhenPressed: false
66
66
67 readonly property bool expandable: rendererLoader.item ? rendererLoader.item.expandable : false
67 readonly property bool expandable: rendererLoader.item ? rendererLoader.item.expandable : false
68 readonly property bool filtered: rendererLoader.item ? rendererLoader.item.filter : true
68 readonly property bool filtered: rendererLoader.item ? rendererLoader.item.filter : true
69+ readonly property string category: rendererLoader.item ? rendererLoader.item.objectName : ""
69
70
70 Loader {
71 Loader {
71 id: rendererLoader
72 id: rendererLoader
@@ -87,7 +88,7 @@ ScopeView {
87 }
88 }
88 item.objectName = Qt.binding(function() { return categoryId })
89 item.objectName = Qt.binding(function() { return categoryId })
89 if (item.expandable) {
90 if (item.expandable) {
90− var shouldFilter = index != categoryView.expandedIndex;
91+ var shouldFilter = item.objectName != categoryView.expandedCategoryId;
91 if (shouldFilter != item.filter) {
92 if (shouldFilter != item.filter) {
92 item.filter = shouldFilter;
93 item.filter = shouldFilter;
93 }
94 }
@@ -123,10 +124,10 @@ ScopeView {
123 }
124 }
124 Connections {
125 Connections {
125 target: categoryView
126 target: categoryView
126− onExpandedIndexChanged: {
127+ onExpandedCategoryIdChanged: {
127 var item = rendererLoader.item;
128 var item = rendererLoader.item;
128 if (item.expandable) {
129 if (item.expandable) {
129− var shouldFilter = index != categoryView.expandedIndex;
130+ var shouldFilter = item.objectName != categoryView.expandedCategoryId;
130 if (shouldFilter != item.filter) {
131 if (shouldFilter != item.filter) {
131 // If the filter animation will be seen start it, otherwise, just flip the switch
132 // If the filter animation will be seen start it, otherwise, just flip the switch
132 var shrinkingVisible = shouldFilter && y + item.collapsedHeight < categoryView.height;
133 var shrinkingVisible = shouldFilter && y + item.collapsedHeight < categoryView.height;
@@ -157,10 +158,10 @@ ScopeView {
157 return "";
158 return "";
158 }
159 }
159 onClicked: {
160 onClicked: {
160− if (categoryView.expandedIndex != delegateIndex)
161+ if (categoryView.expandedCategoryId != delegate.category)
161− categoryView.expandedIndex = delegateIndex;
162+ categoryView.expandedCategoryId = delegate.category;
162 else
163 else
163− categoryView.expandedIndex = -1;
164+ categoryView.expandedCategoryId = "";
164 }
165 }
165 }
166 }
166 pageHeader: PageHeader {
167 pageHeader: PageHeader {