mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-08-06 13:34:01 -06:00
Merge remote-tracking branch 'origin/main' into CURA-7951_lock_rotation
# Conflicts: # resources/i18n/cs_CZ/cura.po # resources/i18n/cura.pot # resources/i18n/de_DE/cura.po # resources/i18n/es_ES/cura.po # resources/i18n/fi_FI/cura.po # resources/i18n/fr_FR/cura.po # resources/i18n/hu_HU/cura.po # resources/i18n/it_IT/cura.po # resources/i18n/ja_JP/cura.po # resources/i18n/ko_KR/cura.po # resources/i18n/nl_NL/cura.po # resources/i18n/pl_PL/cura.po # resources/i18n/pt_BR/cura.po # resources/i18n/pt_PT/cura.po # resources/i18n/ru_RU/cura.po # resources/i18n/tr_TR/cura.po # resources/i18n/zh_CN/cura.po # resources/i18n/zh_TW/cura.po
This commit is contained in:
commit
023dd3a9c5
399 changed files with 97363 additions and 146658 deletions
|
@ -1,10 +1,11 @@
|
|||
# Copyright (c) 2022 Ultimaker B.V.
|
||||
# Copyright (c) 2023 UltiMaker
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
import enum
|
||||
import os
|
||||
import sys
|
||||
import tempfile
|
||||
import time
|
||||
import platform
|
||||
from typing import cast, TYPE_CHECKING, Optional, Callable, List, Any, Dict
|
||||
|
||||
import numpy
|
||||
|
@ -147,6 +148,7 @@ class CuraApplication(QtApplication):
|
|||
DefinitionChangesContainer = Resources.UserType + 10
|
||||
SettingVisibilityPreset = Resources.UserType + 11
|
||||
IntentInstanceContainer = Resources.UserType + 12
|
||||
ImageFiles = Resources.UserType + 13
|
||||
|
||||
pyqtEnum(ResourceTypes)
|
||||
|
||||
|
@ -407,6 +409,7 @@ class CuraApplication(QtApplication):
|
|||
|
||||
SettingFunction.registerOperator("extruderValue", self._cura_formula_functions.getValueInExtruder)
|
||||
SettingFunction.registerOperator("extruderValues", self._cura_formula_functions.getValuesInAllExtruders)
|
||||
SettingFunction.registerOperator("anyExtruderNrWithOrDefault", self._cura_formula_functions.getAnyExtruderPositionWithOrDefault)
|
||||
SettingFunction.registerOperator("resolveOrValue", self._cura_formula_functions.getResolveOrValue)
|
||||
SettingFunction.registerOperator("defaultExtruderPosition", self._cura_formula_functions.getDefaultExtruderPosition)
|
||||
SettingFunction.registerOperator("valueFromContainer", self._cura_formula_functions.getValueFromContainerAtIndex)
|
||||
|
@ -425,6 +428,7 @@ class CuraApplication(QtApplication):
|
|||
Resources.addStorageType(self.ResourceTypes.DefinitionChangesContainer, "definition_changes")
|
||||
Resources.addStorageType(self.ResourceTypes.SettingVisibilityPreset, "setting_visibility")
|
||||
Resources.addStorageType(self.ResourceTypes.IntentInstanceContainer, "intent")
|
||||
Resources.addStorageType(self.ResourceTypes.ImageFiles, "images")
|
||||
|
||||
self._container_registry.addResourceType(self.ResourceTypes.QualityInstanceContainer, "quality")
|
||||
self._container_registry.addResourceType(self.ResourceTypes.QualityChangesInstanceContainer, "quality_changes")
|
||||
|
@ -435,6 +439,7 @@ class CuraApplication(QtApplication):
|
|||
self._container_registry.addResourceType(self.ResourceTypes.MachineStack, "machine")
|
||||
self._container_registry.addResourceType(self.ResourceTypes.DefinitionChangesContainer, "definition_changes")
|
||||
self._container_registry.addResourceType(self.ResourceTypes.IntentInstanceContainer, "intent")
|
||||
self._container_registry.addResourceType(self.ResourceTypes.ImageFiles, "images")
|
||||
|
||||
Resources.addType(self.ResourceTypes.QmlFiles, "qml")
|
||||
Resources.addType(self.ResourceTypes.Firmware, "firmware")
|
||||
|
@ -490,6 +495,36 @@ class CuraApplication(QtApplication):
|
|||
def startSplashWindowPhase(self) -> None:
|
||||
"""Runs preparations that needs to be done before the starting process."""
|
||||
|
||||
self.setRequiredPlugins([
|
||||
# Misc.:
|
||||
"ConsoleLogger", # You want to be able to read the log if something goes wrong.
|
||||
"CuraEngineBackend", # Cura is useless without this one since you can't slice.
|
||||
"FileLogger", # You want to be able to read the log if something goes wrong.
|
||||
"XmlMaterialProfile", # Cura crashes without this one.
|
||||
"Marketplace",
|
||||
# This contains the interface to enable/disable plug-ins, so if you disable it you can't enable it back.
|
||||
"PrepareStage", # Cura is useless without this one since you can't load models.
|
||||
"PreviewStage", # This shows the list of the plugin views that are installed in Cura.
|
||||
"MonitorStage", # Major part of Cura's functionality.
|
||||
"LocalFileOutputDevice", # Major part of Cura's functionality.
|
||||
"LocalContainerProvider", # Cura is useless without any profiles or setting definitions.
|
||||
|
||||
# Views:
|
||||
"SimpleView", # Dependency of SolidView.
|
||||
"SolidView", # Displays models. Cura is useless without it.
|
||||
|
||||
# Readers & Writers:
|
||||
"GCodeWriter", # Cura is useless if it can't write its output.
|
||||
"STLReader", # Most common model format, so disabling this makes Cura 90% useless.
|
||||
"3MFWriter", # Required for writing project files.
|
||||
|
||||
# Tools:
|
||||
"CameraTool", # Needed to see the scene. Cura is useless without it.
|
||||
"SelectionTool", # Dependency of the rest of the tools.
|
||||
"TranslateTool", # You'll need this for almost every print.
|
||||
])
|
||||
# Plugins need to be set here, since in the super the check is done if they are actually loaded.
|
||||
|
||||
super().startSplashWindowPhase()
|
||||
|
||||
if not self.getIsHeadLess():
|
||||
|
@ -498,33 +533,7 @@ class CuraApplication(QtApplication):
|
|||
except FileNotFoundError:
|
||||
Logger.log("w", "Unable to find the window icon.")
|
||||
|
||||
self.setRequiredPlugins([
|
||||
# Misc.:
|
||||
"ConsoleLogger", #You want to be able to read the log if something goes wrong.
|
||||
"CuraEngineBackend", #Cura is useless without this one since you can't slice.
|
||||
"FileLogger", #You want to be able to read the log if something goes wrong.
|
||||
"XmlMaterialProfile", #Cura crashes without this one.
|
||||
"Marketplace", #This contains the interface to enable/disable plug-ins, so if you disable it you can't enable it back.
|
||||
"PrepareStage", #Cura is useless without this one since you can't load models.
|
||||
"PreviewStage", #This shows the list of the plugin views that are installed in Cura.
|
||||
"MonitorStage", #Major part of Cura's functionality.
|
||||
"LocalFileOutputDevice", #Major part of Cura's functionality.
|
||||
"LocalContainerProvider", #Cura is useless without any profiles or setting definitions.
|
||||
|
||||
# Views:
|
||||
"SimpleView", #Dependency of SolidView.
|
||||
"SolidView", #Displays models. Cura is useless without it.
|
||||
|
||||
# Readers & Writers:
|
||||
"GCodeWriter", #Cura is useless if it can't write its output.
|
||||
"STLReader", #Most common model format, so disabling this makes Cura 90% useless.
|
||||
"3MFWriter", #Required for writing project files.
|
||||
|
||||
# Tools:
|
||||
"CameraTool", #Needed to see the scene. Cura is useless without it.
|
||||
"SelectionTool", #Dependency of the rest of the tools.
|
||||
"TranslateTool", #You'll need this for almost every print.
|
||||
])
|
||||
self._i18n_catalog = i18nCatalog("cura")
|
||||
|
||||
self._update_platform_activity_timer = QTimer()
|
||||
|
@ -824,6 +833,8 @@ class CuraApplication(QtApplication):
|
|||
def run(self):
|
||||
super().run()
|
||||
|
||||
self._log_hardware_info()
|
||||
|
||||
if len(ApplicationMetadata.DEPENDENCY_INFO) > 0:
|
||||
Logger.debug("Using Conan managed dependencies: " + ", ".join(
|
||||
[dep["recipe"]["id"] for dep in ApplicationMetadata.DEPENDENCY_INFO["installed"] if dep["recipe"]["version"] != "latest"]))
|
||||
|
@ -897,6 +908,14 @@ class CuraApplication(QtApplication):
|
|||
|
||||
self.exec()
|
||||
|
||||
def _log_hardware_info(self):
|
||||
hardware_info = platform.uname()
|
||||
Logger.info(f"System: {hardware_info.system}")
|
||||
Logger.info(f"Release: {hardware_info.release}")
|
||||
Logger.info(f"Version: {hardware_info.version}")
|
||||
Logger.info(f"Processor name: {hardware_info.processor}")
|
||||
Logger.info(f"CPU Cores: {os.cpu_count()}")
|
||||
|
||||
def __setUpSingleInstanceServer(self):
|
||||
if self._use_single_instance:
|
||||
self._single_instance.startServer()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue