Browse Source

Merge branch 'CURA-6959_collapse_categories' of github.com:Ultimaker/Cura

Jaime van Kessel 5 years ago
parent
commit
c261065d68

+ 1 - 1
plugins/PerObjectSettingsTool/PerObjectCategory.qml

@@ -58,5 +58,5 @@ Button {
     checkable: true
     checked: definition.expanded
 
-    onClicked: definition.expanded ? settingDefinitionsModel.collapse(definition.key) : settingDefinitionsModel.expandRecursive(definition.key)
+    onClicked: definition.expanded ? settingDefinitionsModel.collapseRecursive(definition.key) : settingDefinitionsModel.expandRecursive(definition.key)
 }

+ 11 - 0
resources/qml/Menus/SettingVisibilityPresetsMenu.qml

@@ -14,6 +14,8 @@ Menu
 
     property QtObject settingVisibilityPresetsModel: CuraApplication.getSettingVisibilityPresetsModel()
 
+    signal collapseAllCategories()
+
     Instantiator
     {
         model: settingVisibilityPresetsModel.items
@@ -34,6 +36,15 @@ Menu
         onObjectRemoved: menu.removeItem(object)
     }
 
+    MenuSeparator {}
+    MenuItem
+    {
+        text: catalog.i18nc("@action:inmenu", "Collapse All Categories")
+        onTriggered:
+        {
+            collapseAllCategories();
+        }
+    }
     MenuSeparator {}
     MenuItem
     {

+ 9 - 12
resources/qml/Settings/SettingCategory.qml

@@ -30,11 +30,11 @@ Button
             {
                 return UM.Theme.getColor("setting_category_disabled")
             }
-            else if (base.hovered && base.checkable && base.checked)
+            else if (base.hovered && base.expanded)
             {
                 return UM.Theme.getColor("setting_category_active_hover")
             }
-            else if (base.pressed || (base.checkable && base.checked))
+            else if (base.pressed || base.expanded)
             {
                 return UM.Theme.getColor("setting_category_active")
             }
@@ -55,6 +55,7 @@ Button
     signal setActiveFocusToNextSetting(bool forward)
 
     property var focusItem: base
+    property bool expanded: definition.expanded
 
     contentItem: Item
     {
@@ -79,10 +80,10 @@ Button
                 if (!base.enabled)
                 {
                     return UM.Theme.getColor("setting_category_disabled_text")
-                } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked)
+                } else if ((base.hovered || base.activeFocus) && base.expanded)
                 {
                     return UM.Theme.getColor("setting_category_active_hover_text")
-                } else if (base.pressed || (base.checkable && base.checked))
+                } else if (base.pressed || base.expanded)
                 {
                     return UM.Theme.getColor("setting_category_active_text")
                 } else if (base.hovered || base.activeFocus)
@@ -107,7 +108,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")
         }
     }
 
@@ -123,11 +124,11 @@ Button
             {
                 return UM.Theme.getColor("setting_category_disabled_text")
             }
-            else if((base.hovered || base.activeFocus) && base.checkable && base.checked)
+            else if((base.hovered || base.activeFocus) && base.expanded)
             {
                 return UM.Theme.getColor("setting_category_active_hover_text")
             }
-            else if(base.pressed || (base.checkable && base.checked))
+            else if(base.pressed || base.expanded)
             {
                 return UM.Theme.getColor("setting_category_active_text")
             }
@@ -144,14 +145,11 @@ Button
         sourceSize.height: width + 15 * screenScaleFactor
     }
 
-    checkable: true
-    checked: definition.expanded
-
     onClicked:
     {
         if (definition.expanded)
         {
-            settingDefinitionsModel.collapse(definition.key)
+            settingDefinitionsModel.collapseRecursive(definition.key)
         }
         else
         {
@@ -226,7 +224,6 @@ Button
         onClicked:
         {
             settingDefinitionsModel.expandRecursive(definition.key)
-            base.checked = true
             base.showAllHiddenInheritedSettings(definition.key)
         }
 

+ 10 - 1
resources/qml/Settings/SettingView.qml

@@ -185,7 +185,16 @@ Item
             label: Label {}
         }
 
-        menu: SettingVisibilityPresetsMenu {}
+        menu: SettingVisibilityPresetsMenu
+        {
+            onCollapseAllCategories:
+            {
+                settingsSearchTimer.stop()
+                filter.text = "" // clear search field
+                filter.editingFinished()
+                definitionsModel.collapseAllCategories()
+            }
+        }
     }
 
     // Mouse area that gathers the scroll events to not propagate it to the main view.