diff --git a/resources/qml/Menus/SettingVisibilityPresetsMenu.qml b/resources/qml/Menus/SettingVisibilityPresetsMenu.qml index 8116b6def1..b6edc3a4a9 100644 --- a/resources/qml/Menus/SettingVisibilityPresetsMenu.qml +++ b/resources/qml/Menus/SettingVisibilityPresetsMenu.qml @@ -15,6 +15,7 @@ Menu property QtObject settingVisibilityPresetsModel: CuraApplication.getSettingVisibilityPresetsModel() signal showAllSettings() + signal collapseAllCategories() Instantiator { @@ -49,6 +50,15 @@ Menu } MenuSeparator {} MenuItem + { + text: catalog.i18nc("@action:inmenu", "Collapse All Categories") + onTriggered: + { + collapseAllCategories(); + } + } + MenuSeparator {} + MenuItem { text: catalog.i18nc("@action:inmenu", "Manage Setting Visibility...") iconName: "configure" diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index bcb0ce3480..0d6f8ec319 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -107,7 +107,7 @@ Button height: UM.Theme.getSize("standard_arrow").height sourceSize.height: width color: UM.Theme.getColor("setting_control_button") - source: base.checked ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") + source: definition.expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") } } @@ -226,7 +226,7 @@ Button onClicked: { settingDefinitionsModel.expandRecursive(definition.key) - base.checked = true + base.checked = true //todo should not be necessary and also breaks binding, right? base.showAllHiddenInheritedSettings(definition.key) } diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 5aea939728..2687c9e6f9 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -192,6 +192,12 @@ Item definitionsModel.setAllVisible(true) filter.updateDefinitionModel() } + + onCollapseAllCategories: + { + definitionsModel.collapseAllCategories() + filter.updateDefinitionModel() + } } }