mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 14:37:29 -06:00
adding option of opening model as UCP or normal project file
CURA-11403
This commit is contained in:
parent
c817f11c02
commit
f3c49e494e
6 changed files with 187 additions and 35 deletions
|
@ -117,6 +117,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
|||
self._supported_extensions = [".3mf"]
|
||||
self._dialog = WorkspaceDialog()
|
||||
self._3mf_mesh_reader = None
|
||||
self._is_ucp = False
|
||||
self._container_registry = ContainerRegistry.getInstance()
|
||||
|
||||
# suffixes registered with the MimeTypes don't start with a dot '.'
|
||||
|
@ -153,6 +154,9 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
|||
self._load_profile = False
|
||||
self._user_settings = {}
|
||||
|
||||
def setOpenAsUcp(self, openAsUcp: bool):
|
||||
self._is_ucp = openAsUcp
|
||||
|
||||
def getNewId(self, old_id: str):
|
||||
"""Get a unique name based on the old_id. This is different from directly calling the registry in that it caches results.
|
||||
|
||||
|
@ -242,7 +246,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
|||
# Read definition containers
|
||||
#
|
||||
machine_definition_id = None
|
||||
updatable_machines = None if is_ucp else []
|
||||
updatable_machines = None if self._is_ucp else []
|
||||
machine_definition_container_count = 0
|
||||
extruder_definition_container_count = 0
|
||||
definition_container_files = [name for name in cura_file_names if name.endswith(self._definition_container_suffix)]
|
||||
|
@ -609,7 +613,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
|||
|
||||
# Load the user specifically exported settings
|
||||
self._dialog.exportedSettingModel.clear()
|
||||
if is_ucp:
|
||||
if self._is_ucp:
|
||||
try:
|
||||
self._user_settings = json.loads(archive.open("Cura/user-settings.json").read().decode("utf-8"))
|
||||
any_extruder_stack = ExtruderManager.getInstance().getExtruderStack(0)
|
||||
|
@ -658,8 +662,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
|||
self._dialog.setVariantType(variant_type_name)
|
||||
self._dialog.setHasObjectsOnPlate(Application.getInstance().platformActivity)
|
||||
self._dialog.setMissingPackagesMetadata(missing_package_metadata)
|
||||
self._dialog.setHasVisibleSelectSameProfileChanged(is_ucp)
|
||||
self._dialog.setAllowCreatemachine(not is_ucp)
|
||||
self._dialog.setHasVisibleSelectSameProfileChanged(self._is_ucp)
|
||||
self._dialog.setAllowCreatemachine(not self._is_ucp)
|
||||
self._dialog.show()
|
||||
|
||||
|
||||
|
@ -701,7 +705,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
|||
if self._dialog.getResult() == {}:
|
||||
return WorkspaceReader.PreReadResult.cancelled
|
||||
|
||||
self._load_profile = not is_ucp or (self._dialog.selectSameProfileChecked and self._dialog.isCompatibleMachine)
|
||||
self._load_profile = not self._is_ucp
|
||||
|
||||
self._resolve_strategies = self._dialog.getResult()
|
||||
#
|
||||
|
@ -717,7 +721,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
|||
if key not in containers_found_dict or strategy is not None:
|
||||
continue
|
||||
self._resolve_strategies[key] = "override" if containers_found_dict[key] else "new"
|
||||
|
||||
self._is_ucp = False
|
||||
return WorkspaceReader.PreReadResult.accepted
|
||||
|
||||
@call_on_qt_thread
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue