diff --git a/sidebar/SidebarMode.cpp b/sidebar/SidebarMode.cpp --- a/sidebar/SidebarMode.cpp +++ b/sidebar/SidebarMode.cpp @@ -413,10 +413,12 @@ void SidebarMode::setActiveCategory(int cat) { const QModelIndex idx = d->searchModel->index(cat, 0); - d->activeCategoryIndex = idx; const int newCategoryRow = d->searchModel->mapToSource(idx).row(); - if (d->activeCategory ==newCategoryRow) { + if (d->activeCategory == newCategoryRow) { + return; + } + if( !d->moduleView->resolveChanges() ) { return; } @@ -440,6 +442,10 @@ return; } + if( !d->moduleView->resolveChanges() ) { + return; + } + d->activeSubCategory = cat; d->moduleView->closeModules(); d->moduleView->loadModule( d->subCategoryModel->index(cat, 0) ); diff --git a/sidebar/package/contents/ui/CategoriesPage.qml b/sidebar/package/contents/ui/CategoriesPage.qml --- a/sidebar/package/contents/ui/CategoriesPage.qml +++ b/sidebar/package/contents/ui/CategoriesPage.qml @@ -151,19 +151,22 @@ icon: model.decoration label: model.display separatorVisible: false - highlighted: focus Accessible.role: Accessible.ListItem Accessible.name: model.display onClicked: { if (systemsettings.activeCategory == index) { root.pageStack.currentIndex = 1; } else { + console.log("DAVE", index); systemsettings.activeCategory = index; subCategoryColumn.title = model.display; + console.log("DAVE2", systemsettings.activeCategory); } } + onHighlightedChanged: {console.log("HHH", index)} onHoveredChanged: { if (hovered) { + console.log("DAVE", delegate.checked, delegate.highlighted, delegate.pressed) systemsettings.requestToolTip(index, delegate.mapToItem(root, 0, 0, width, height)); } else { systemsettings.hideToolTip(); @@ -174,7 +177,7 @@ onCurrentIndexChanged: categoryView.positionViewAtIndex(index, ListView.Contain); } } - checked: systemsettings.activeCategory == index + highlighted: systemsettings.activeCategory == index } } } diff --git a/sidebar/package/contents/ui/SubCategoryPage.qml b/sidebar/package/contents/ui/SubCategoryPage.qml --- a/sidebar/package/contents/ui/SubCategoryPage.qml +++ b/sidebar/package/contents/ui/SubCategoryPage.qml @@ -118,17 +118,14 @@ icon: model.decoration label: model.display separatorVisible: false - highlighted: focus + checkable: false onClicked: systemsettings.activeSubCategory = index onFocusChanged: { if (focus) { onCurrentIndexChanged: subCategoryView.positionViewAtIndex(index, ListView.Contain); } } - checked: systemsettings.activeSubCategory == index - //checkable: false - //FIXME: Qt 5.7 doesn't have checkable, this way fails at runtime but still works correctly on 5.7 - Component.onCompleted: delegate.checkable = true; + highlighted: systemsettings.activeSubCategory == index } } }