@@ -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()
56+ property int expandedIndex: -1
56 delegate: ListItems.Base {
58 delegate: ListItems.Base {
57 highlightWhenPressed: false
59 highlightWhenPressed: false
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);
66+ obj.toggleCollapse();
61 rendererLoader.item.filter = !rendererLoader.item.filter;
68 rendererLoader.item.filter = !rendererLoader.item.filter;
@@ -103,8 +110,10 @@ ScopeView {
103 delegateItem.model.metadata)
110 delegateItem.model.metadata)
105 onFilterChanged: {
112 onFilterChanged: {
106− if (!target.filter)
113+ if (!target.filter) {
107 categoryView.maximizeVisibleArea(index);
114 categoryView.maximizeVisibleArea(index);
115+ categoryView.expandedIndex = index
@@ -117,7 +126,7 @@ ScopeView {
117 onClicked: {
126 onClicked: {
118 var obj = categoryView.item(delegateIndex);
127 var obj = categoryView.item(delegateIndex);
120− obj.headerClicked();
129+ obj.toggleCollapse();
123 pageHeader: PageHeader {
132 pageHeader: PageHeader {