From 132ed1d25835cdb45a4be398f1a982067ac09afe Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 16 Sep 2016 13:10:14 +0200 Subject: [PATCH] Pressing inheritance button for category now makes all inherited children visible CURA-2361 --- cura/Settings/SettingInheritanceManager.py | 12 ++++++++++++ resources/qml/Settings/SettingCategory.qml | 6 ++---- resources/qml/Settings/SettingItem.qml | 2 +- resources/qml/Settings/SettingView.qml | 8 ++++++++ 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/cura/Settings/SettingInheritanceManager.py b/cura/Settings/SettingInheritanceManager.py index 51c0109b64..cf3e7a32f6 100644 --- a/cura/Settings/SettingInheritanceManager.py +++ b/cura/Settings/SettingInheritanceManager.py @@ -22,6 +22,18 @@ class SettingInheritanceManager(QObject): def test(self): pass + ## Get the keys of all children settings with an override. + @pyqtSlot(str, result = "QStringList") + def getChildrenKeysWithOverride(self, key): + definitions = self._global_container_stack.getBottom().findDefinitions(key=key) + if not definitions: + return + result = [] + for key in definitions[0].getAllKeys(): + if key in self._settings_with_inheritance_warning: + result.append(key) + return result + def _onActiveExtruderChanged(self): if self._active_container_stack: self._active_container_stack.propertyChanged.disconnect(self._onPropertyChanged) diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 27e4c3b455..fa90617c24 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -17,13 +17,11 @@ Button { signal showTooltip(string text); signal hideTooltip(); signal contextMenuRequested() - signal showAllHiddenInheritedSettings() + signal showAllHiddenInheritedSettings(string category_id) text: definition.label iconSource: UM.Theme.getIcon(definition.icon) - - checkable: true checked: definition.expanded @@ -69,7 +67,7 @@ Button { onClicked: { - base.showAllHiddenInheritedSettings() + base.showAllHiddenInheritedSettings(definition.key) } color: UM.Theme.getColor("setting_control_button") diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index 8bdbc69a35..0d26ecc760 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -34,7 +34,7 @@ Item { signal contextMenuRequested() signal showTooltip(string text); signal hideTooltip(); - + signal showAllHiddenInheritedSettings(string category_id) property string tooltipText: { var affects = settingDefinitionsModel.getRequiredBy(definition.key, "value") diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 50e0ab804f..ae216c9bdf 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -149,6 +149,14 @@ ScrollView } onShowTooltip: base.showTooltip(delegate, { x: 0, y: delegate.height / 2 }, text) onHideTooltip: base.hideTooltip() + onShowAllHiddenInheritedSettings: + { + var test = Cura.SettingInheritanceManager.getChildrenKeysWithOverride(category_id) + for(var i = 0; i < test.length; i++) + { + definitionsModel.setVisible(test[i], true) + } + } } }