Browse Source

Add a settings menu option to collapse all categories

CURA-6959
Nino van Hooff 5 years ago
parent
commit
d780efd76c

+ 10 - 0
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"

+ 2 - 2
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)
         }
 

+ 6 - 0
resources/qml/Settings/SettingView.qml

@@ -192,6 +192,12 @@ Item
                 definitionsModel.setAllVisible(true)
                 filter.updateDefinitionModel()
             }
+
+            onCollapseAllCategories:
+            {
+                definitionsModel.collapseAllCategories()
+                filter.updateDefinitionModel()
+            }
         }
     }