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,7 +151,6 @@ icon: model.decoration label: model.display separatorVisible: false - highlighted: focus Accessible.role: Accessible.ListItem Accessible.name: model.display onClicked: { @@ -174,7 +173,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,13 @@ icon: model.decoration label: model.display separatorVisible: false - highlighted: focus 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 } } }