Merge pull request #16711 from Ultimaker/CURA-10915_open_projects_anyway

Opening the value of setting only if they are not in missing packages
This commit is contained in:
Erwan MATHIEU 2023-09-15 11:47:12 +02:00 committed by GitHub
commit 40602591d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1095,6 +1095,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
if global_stack.getProperty(key, "settable_per_extruder"):
values_to_set_for_extruders[key] = value
else:
if not self._settingIsFromMissingPackage(key, value):
global_stack.definitionChanges.setProperty(key, "value", value)
for position, extruder_stack in extruder_stack_dict.items():
@ -1109,6 +1110,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
extruder_stack.definitionChanges.setProperty(key, "value", value)
if parser is not None:
for key, value in parser["values"].items():
if not self._settingIsFromMissingPackage(key, value):
extruder_stack.definitionChanges.setProperty(key, "value", value)
def _applyUserChanges(self, global_stack, extruder_stack_dict):
@ -1119,6 +1121,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
if global_stack.getProperty(key, "settable_per_extruder"):
values_to_set_for_extruder_0[key] = value
else:
if not self._settingIsFromMissingPackage(key, value):
global_stack.userChanges.setProperty(key, "value", value)
for position, extruder_stack in extruder_stack_dict.items():
@ -1133,6 +1136,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
extruder_stack.userChanges.setProperty(key, "value", value)
if parser is not None:
for key, value in parser["values"].items():
if not self._settingIsFromMissingPackage(key, value):
extruder_stack.userChanges.setProperty(key, "value", value)
def _applyVariants(self, global_stack, extruder_stack_dict):
@ -1208,6 +1212,15 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
if key not in _ignored_machine_network_metadata:
global_stack.setMetaDataEntry(key, value)
def _settingIsFromMissingPackage(self, key, value):
# Check if the key and value pair is from the missing package
for package in self._dialog.missingPackages:
if value.startswith("PLUGIN::"):
if (package['id'] + "@" + package['package_version']) in value:
Logger.log("w", f"Ignoring {key} value {value} from missing package")
return True
return False
def _updateActiveMachine(self, global_stack):
# Actually change the active machine.
machine_manager = Application.getInstance().getMachineManager()
@ -1327,3 +1340,4 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
missing_packages.append(package)
return missing_packages