From 285a4584e78290a807578d6d54f3ff92eff50ba7 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 8 Oct 2021 18:12:35 +0200 Subject: [PATCH 1/2] Improve speed of the inherit button A few unneeded conversions were done. Also moved one check to python from JS --- cura/Settings/SettingInheritanceManager.py | 4 ++++ resources/qml/Settings/SettingItem.qml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/cura/Settings/SettingInheritanceManager.py b/cura/Settings/SettingInheritanceManager.py index 6179e76ab7..34dfaeb616 100644 --- a/cura/Settings/SettingInheritanceManager.py +++ b/cura/Settings/SettingInheritanceManager.py @@ -61,6 +61,10 @@ class SettingInheritanceManager(QObject): result.append(key) return result + @pyqtSlot(str, str, result = bool) + def hasOverrides(self, key: str, extruder_index: str): + return key in self.getOverridesForExtruder(key, extruder_index) + @pyqtSlot(str, str, result = "QStringList") def getOverridesForExtruder(self, key: str, extruder_index: str) -> List[str]: if self._global_container_stack is None: diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index 98a1601b48..0470e91faa 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -269,7 +269,7 @@ Item } // If the setting does not have a limit_to_extruder property (or is -1), use the active stack. - if (globalPropertyProvider.properties.limit_to_extruder === null || String(globalPropertyProvider.properties.limit_to_extruder) === "-1") + if (globalPropertyProvider.properties.limit_to_extruder === null || globalPropertyProvider.properties.limit_to_extruder === "-1") { return Cura.SettingInheritanceManager.settingsWithInheritanceWarning.indexOf(definition.key) >= 0 } @@ -283,7 +283,7 @@ Item { return false } - return Cura.SettingInheritanceManager.getOverridesForExtruder(definition.key, String(globalPropertyProvider.properties.limit_to_extruder)).indexOf(definition.key) >= 0 + return Cura.SettingInheritanceManager.hasOverrides(definition.key, globalPropertyProvider.properties.limit_to_extruder) } anchors.top: parent.top From 9ca5a526597588427eef2eef710183ef1a681a3a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 8 Oct 2021 18:35:02 +0200 Subject: [PATCH 2/2] Also speed up the expression for the value of a setting item --- resources/qml/Settings/SettingView.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 074946c6bd..cb96728973 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -302,7 +302,7 @@ Item { target: provider property: "containerStackId" - when: model.settable_per_extruder || (inheritStackProvider.properties.limit_to_extruder !== null && inheritStackProvider.properties.limit_to_extruder >= 0); + when: model.settable_per_extruder || (inheritStackProvider.properties.limit_to_extruder !== undefined && inheritStackProvider.properties.limit_to_extruder >= 0); value: { // Associate this binding with Cura.MachineManager.activeMachine.id in the beginning so this @@ -315,10 +315,10 @@ Item //Not settable per extruder or there only is global, so we must pick global. return contents.activeMachineId } - if (inheritStackProvider.properties.limit_to_extruder !== null && inheritStackProvider.properties.limit_to_extruder >= 0) + if (inheritStackProvider.properties.limit_to_extruder !== undefined && inheritStackProvider.properties.limit_to_extruder >= 0) { //We have limit_to_extruder, so pick that stack. - return Cura.ExtruderManager.extruderIds[String(inheritStackProvider.properties.limit_to_extruder)]; + return Cura.ExtruderManager.extruderIds[inheritStackProvider.properties.limit_to_extruder]; } if (Cura.ExtruderManager.activeExtruderStackId) {