on xenial help sign in
There can only be one... expanded category
07d670eAlbert Astals
Dash/GenericScopeView.qml+12−3
@@ -53,11 +53,18 @@ ScopeView {
53 onAtYEndChanged: if (atYEnd) endReached()
53 onAtYEndChanged: if (atYEnd) endReached()
54 onMovingChanged: if (moving && atYEnd) endReached()
54 onMovingChanged: if (moving && atYEnd) endReached()
55
55
56+ property int expandedIndex: -1
57+
56 delegate: ListItems.Base {
58 delegate: ListItems.Base {
57 highlightWhenPressed: false
59 highlightWhenPressed: false
58
60
59− function headerClicked() {
61+ function toggleCollapse() {
60 if (rendererLoader.item.expandable) {
62 if (rendererLoader.item.expandable) {
63+ if (index != categoryView.expandedIndex && categoryView.expandedIndex != -1) {
64+ var obj = categoryView.item(categoryView.expandedIndex);
65+ if (obj)
66+ obj.toggleCollapse();
67+ }
61 rendererLoader.item.filter = !rendererLoader.item.filter;
68 rendererLoader.item.filter = !rendererLoader.item.filter;
62 }
69 }
63 }
70 }
@@ -103,8 +110,10 @@ ScopeView {
103 delegateItem.model.metadata)
110 delegateItem.model.metadata)
104 }
111 }
105 onFilterChanged: {
112 onFilterChanged: {
106− if (!target.filter)
113+ if (!target.filter) {
107 categoryView.maximizeVisibleArea(index);
114 categoryView.maximizeVisibleArea(index);
115+ categoryView.expandedIndex = index
116+ }
108 }
117 }
109 }
118 }
110 }
119 }
@@ -117,7 +126,7 @@ ScopeView {
117 onClicked: {
126 onClicked: {
118 var obj = categoryView.item(delegateIndex);
127 var obj = categoryView.item(delegateIndex);
119 if (obj)
128 if (obj)
120− obj.headerClicked();
129+ obj.toggleCollapse();
121 }
130 }
122 }
131 }
123 pageHeader: PageHeader {
132 pageHeader: PageHeader {