mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
Override resolve strategy is now handled
CURA-1263
This commit is contained in:
parent
cbcc48ff33
commit
d5229992df
1 changed files with 16 additions and 8 deletions
|
@ -29,7 +29,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
self._instance_container_suffix = ContainerRegistry.getMimeTypeForContainer(InstanceContainer).suffixes[0]
|
self._instance_container_suffix = ContainerRegistry.getMimeTypeForContainer(InstanceContainer).suffixes[0]
|
||||||
self._container_stack_suffix = ContainerRegistry.getMimeTypeForContainer(ContainerStack).suffixes[0]
|
self._container_stack_suffix = ContainerRegistry.getMimeTypeForContainer(ContainerStack).suffixes[0]
|
||||||
|
|
||||||
self._resolvement_strategy = None
|
self._resolve_strategy = None
|
||||||
|
|
||||||
def preRead(self, file_name):
|
def preRead(self, file_name):
|
||||||
self._3mf_mesh_reader = Application.getInstance().getMeshFileHandler().getReaderForFile(file_name)
|
self._3mf_mesh_reader = Application.getInstance().getMeshFileHandler().getReaderForFile(file_name)
|
||||||
|
@ -69,13 +69,13 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
conflict = True
|
conflict = True
|
||||||
if conflict:
|
if conflict:
|
||||||
# There is a conflict; User should choose to either update the existing data, add everything as new data or abort
|
# There is a conflict; User should choose to either update the existing data, add everything as new data or abort
|
||||||
self._resolvement_strategy = None
|
self._resolve_strategy = None
|
||||||
self._dialog.show()
|
self._dialog.show()
|
||||||
self._dialog.waitForClose()
|
self._dialog.waitForClose()
|
||||||
if self._dialog.getResult() == "cancel":
|
if self._dialog.getResult() == "cancel":
|
||||||
return WorkspaceReader.PreReadResult.cancelled
|
return WorkspaceReader.PreReadResult.cancelled
|
||||||
|
|
||||||
self._resolvement_strategy = self._dialog.getResult()
|
self._resolve_strategy = self._dialog.getResult()
|
||||||
pass
|
pass
|
||||||
return WorkspaceReader.PreReadResult.accepted
|
return WorkspaceReader.PreReadResult.accepted
|
||||||
|
|
||||||
|
@ -144,12 +144,18 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
user_containers = self._container_registry.findInstanceContainers(id=container_id)
|
user_containers = self._container_registry.findInstanceContainers(id=container_id)
|
||||||
if not user_containers:
|
if not user_containers:
|
||||||
self._container_registry.addContainer(instance_container)
|
self._container_registry.addContainer(instance_container)
|
||||||
|
else:
|
||||||
|
if self._resolve_strategy == "override":
|
||||||
|
user_containers[0].deserialize(archive.open(instance_container_file).read().decode("utf-8"))
|
||||||
user_instance_containers.append(instance_container)
|
user_instance_containers.append(instance_container)
|
||||||
elif container_type == "quality_changes":
|
elif container_type == "quality_changes":
|
||||||
# Check if quality changes already exists.
|
# Check if quality changes already exists.
|
||||||
quality_changes = self._container_registry.findInstanceContainers(id = container_id)
|
quality_changes = self._container_registry.findInstanceContainers(id = container_id)
|
||||||
if not quality_changes:
|
if not quality_changes:
|
||||||
self._container_registry.addContainer(instance_container)
|
self._container_registry.addContainer(instance_container)
|
||||||
|
else:
|
||||||
|
if self._resolve_strategy == "override":
|
||||||
|
quality_changes[0].deserialize(archive.open(instance_container_file).read().decode("utf-8"))
|
||||||
quality_changes_instance_containers.append(instance_container)
|
quality_changes_instance_containers.append(instance_container)
|
||||||
else:
|
else:
|
||||||
continue
|
continue
|
||||||
|
@ -163,13 +169,15 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
container_id = self._stripFileToId(container_stack_file)
|
container_id = self._stripFileToId(container_stack_file)
|
||||||
|
|
||||||
stack = ContainerStack(container_id)
|
stack = ContainerStack(container_id)
|
||||||
# Deserialize stack by converting read data from bytes to string
|
|
||||||
stack.deserialize(archive.open(container_stack_file).read().decode("utf-8"))
|
|
||||||
|
|
||||||
# Check if a stack by this ID already exists;
|
# Check if a stack by this ID already exists;
|
||||||
container_stacks = self._container_registry.findContainerStacks(id=container_id)
|
container_stacks = self._container_registry.findContainerStacks(id=container_id)
|
||||||
if container_stacks:
|
if container_stacks:
|
||||||
print("CONTAINER ALREADY EXISTSSS")
|
if self._resolve_strategy == "override":
|
||||||
|
container_stacks[0].deserialize(archive.open(container_stack_file).read().decode("utf-8"))
|
||||||
|
else:
|
||||||
|
# Deserialize stack by converting read data from bytes to string
|
||||||
|
stack.deserialize(archive.open(container_stack_file).read().decode("utf-8"))
|
||||||
|
self._container_registry.addContainer(stack)
|
||||||
|
|
||||||
if stack.getMetaDataEntry("type") == "extruder_train":
|
if stack.getMetaDataEntry("type") == "extruder_train":
|
||||||
extruder_stacks.append(stack)
|
extruder_stacks.append(stack)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue