From b119a010ca7ecfec0add86cc8e47c33049053a81 Mon Sep 17 00:00:00 2001 From: Saumya Jain Date: Tue, 5 Mar 2024 16:34:41 +0100 Subject: [PATCH] Moved calculating UCP only to Preread and getting value here CURA-11403 --- cura/CuraActions.py | 10 ---------- cura/CuraApplication.py | 6 ++++++ resources/qml/Cura.qml | 4 ++-- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/cura/CuraActions.py b/cura/CuraActions.py index 9612e473b8..835c46bba8 100644 --- a/cura/CuraActions.py +++ b/cura/CuraActions.py @@ -1,6 +1,5 @@ # Copyright (c) 2023 UltiMaker # Cura is released under the terms of the LGPLv3 or higher. -import zipfile from typing import List, cast from PyQt6.QtCore import QObject, QUrl, pyqtSignal, pyqtProperty @@ -33,8 +32,6 @@ from cura.Operations.SetBuildPlateNumberOperation import SetBuildPlateNumberOper from UM.Logger import Logger from UM.Scene.SceneNode import SceneNode -USER_SETTINGS_PATH = "Cura/user-settings.json" - class CuraActions(QObject): def __init__(self, parent: QObject = None) -> None: super().__init__(parent) @@ -196,13 +193,6 @@ class CuraActions(QObject): operation.addOperation(SetObjectExtruderOperation(node, extruder_id)) operation.push() - @pyqtSlot(str, result = bool) - def isProjectUcp(self, file_url) -> bool: - file_name = QUrl(file_url).toLocalFile() - archive = zipfile.ZipFile(file_name, "r") - cura_file_names = [name for name in archive.namelist() if name.startswith("Cura/")] - return USER_SETTINGS_PATH in cura_file_names - @pyqtSlot(int) def setBuildPlateForSelection(self, build_plate_nr: int) -> None: Logger.log("d", "Setting build plate number... %d" % build_plate_nr) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 39446d0f96..5de74e4714 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -2194,6 +2194,12 @@ class CuraApplication(QtApplication): def addNonSliceableExtension(self, extension): self._non_sliceable_extensions.append(extension) + @pyqtSlot(str, result = bool) + def isProjectUcp(self, file_url) -> bool: + file_path = QUrl(file_url).toLocalFile() + workspace_reader = self.getWorkspaceFileHandler().getReaderForFile(file_path) + return workspace_reader.getIsProjectUcp() + @pyqtSlot(str, result=bool) def checkIsValidProjectFile(self, file_url): """Checks if the given file URL is a valid project file. """ diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index a07bb598d8..776417e15d 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -702,7 +702,7 @@ UM.MainWindow if (hasProjectFile) { var projectFile = projectFileUrlList[0] - var is_ucp = CuraActions.isProjectUcp(projectFile); + var is_ucp = CuraApplication.isProjectUcp(projectFile); if (is_ucp) { askOpenAsProjectOrUcpOrImportModelsDialog.fileUrl = projectFile; @@ -788,7 +788,7 @@ UM.MainWindow target: CuraApplication function onOpenProjectFile(project_file, add_to_recent_files) { - var is_ucp = CuraActions.isProjectUcp(project_file); + var is_ucp = CuraApplication.isProjectUcp(project_file); if (is_ucp) {