diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index caa39cc703..b3e6caed4e 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -126,8 +126,6 @@ class CuraApplication(QtApplication): # Cura will always show the Add Machine Dialog upon start. stacksValidationFinished = pyqtSignal() # Emitted whenever a validation is finished - projectFileLoaded = pyqtSignal(str) # Emitted whenever a project file is loaded - def __init__(self): # this list of dir names will be used by UM to detect an old cura directory for dir_name in ["extruders", "machine_instances", "materials", "plugins", "quality", "user", "variants"]: diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index 46d9a61254..0a5db439c3 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -71,7 +71,7 @@ class PrintInformation(QObject): Application.getInstance().globalContainerStackChanged.connect(self._updateJobName) Application.getInstance().fileLoaded.connect(self.setBaseName) - Application.getInstance().projectFileLoaded.connect(self.setProjectName) + Application.getInstance().workspaceLoaded.connect(self.setProjectName) Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged) self._active_material_container = None @@ -264,13 +264,14 @@ class PrintInformation(QObject): def jobName(self): return self._job_name - def _updateJobName(self, empty_name = False): + def _updateJobName(self, is_project_name_empty = False): # if the project name is set, we use the project name as the job name, so the job name should not get updated # if a model file is loaded after that. if self._project_name != "": - if empty_name: + if is_project_name_empty: self._project_name = "" - return + else: + return if self._base_name == "": self._job_name = "" @@ -312,7 +313,7 @@ class PrintInformation(QObject): if name.endswith(".curaproject"): name = name[:name.rfind(".curaproject")] self._base_name = name - self._updateJobName(empty_name = is_empty) + self._updateJobName(is_project_name_empty = is_empty) ## Created an acronymn-like abbreviated machine name from the currently active machine name # Called each time the global stack is switched diff --git a/cura/QualityManager.py b/cura/QualityManager.py index abd14fa841..d2162c2449 100644 --- a/cura/QualityManager.py +++ b/cura/QualityManager.py @@ -183,20 +183,11 @@ class QualityManager: materials = [] - # TODO: fix this - if extruder_stacks: - # Multi-extruder machine detected - for stack in extruder_stacks: - if stack.getId() == active_stack_id and machine_manager.newMaterial: - materials.append(machine_manager.newMaterial) - else: - materials.append(stack.material) - else: - # Machine with one extruder - if global_container_stack.getId() == active_stack_id and machine_manager.newMaterial: + for stack in extruder_stacks: + if stack.getId() == active_stack_id and machine_manager.newMaterial: materials.append(machine_manager.newMaterial) else: - materials.append(global_container_stack.material) + materials.append(stack.material) quality_types = self.findAllQualityTypesForMachineAndMaterials(global_machine_definition, materials) diff --git a/cura/Settings/UserProfilesModel.py b/cura/Settings/UserProfilesModel.py index 5ae9055759..aedbba34d5 100644 --- a/cura/Settings/UserProfilesModel.py +++ b/cura/Settings/UserProfilesModel.py @@ -24,9 +24,6 @@ class UserProfilesModel(ProfilesModel): quality_manager = QualityManager.getInstance() machine_definition = quality_manager.getParentMachineDefinition(global_container_stack.definition) quality_changes_list = quality_manager.findAllQualityChangesForMachine(machine_definition) - - extruder_manager = ExtruderManager.getInstance() - active_extruder = extruder_manager.getActiveExtruderStack() extruder_stacks = self._getOrderedExtruderStacksList() # Fetch the list of usable qualities across all extruders. @@ -35,10 +32,6 @@ class UserProfilesModel(ProfilesModel): # Filter the quality_change by the list of available quality_types quality_type_set = set([x.getMetaDataEntry("quality_type") for x in quality_list]) - filtered_quality_changes = [qc for qc in quality_changes_list if - qc.getMetaDataEntry("quality_type") in quality_type_set and - qc.getMetaDataEntry("extruder") is not None and - (qc.getMetaDataEntry("extruder") == active_extruder.definition.getMetaDataEntry("quality_definition") or - qc.getMetaDataEntry("extruder") == active_extruder.definition.getId())] + filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set] return filtered_quality_changes diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index a3aadc79b8..a237460bab 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -902,7 +902,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): base_file_name = os.path.basename(file_name) if base_file_name.endswith(".curaproject.3mf"): base_file_name = base_file_name[:base_file_name.rfind(".curaproject.3mf")] - Application.getInstance().projectFileLoaded.emit(base_file_name) + self.setWorkspaceName(base_file_name) return nodes ## HACK: Replaces the material container in the given stack with a newly created material container. diff --git a/plugins/GCodeReader/GCodeReader.py b/plugins/GCodeReader/GCodeReader.py index 9f04ae6ba6..2a7e29e370 100755 --- a/plugins/GCodeReader/GCodeReader.py +++ b/plugins/GCodeReader/GCodeReader.py @@ -1,4 +1,4 @@ -# Copyright (c) 2016 Aleph Objects, Inc. +# Copyright (c) 2017 Aleph Objects, Inc. # Cura is released under the terms of the LGPLv3 or higher. from UM.Application import Application diff --git a/plugins/SimulationView/SimulationPass.py b/plugins/SimulationView/SimulationPass.py index 4963568935..2b9063e27a 100644 --- a/plugins/SimulationView/SimulationPass.py +++ b/plugins/SimulationView/SimulationPass.py @@ -20,7 +20,7 @@ from cura.Settings.ExtruderManager import ExtruderManager import os.path ## RenderPass used to display g-code paths. -from plugins.SimulationView.NozzleNode import NozzleNode +from .NozzleNode import NozzleNode class SimulationPass(RenderPass): @@ -100,7 +100,6 @@ class SimulationPass(RenderPass): if isinstance(node, ToolHandle): tool_handle_batch.addItem(node.getWorldTransformation(), mesh = node.getSolidMesh()) - elif isinstance(node, NozzleNode): nozzle_node = node nozzle_node.setVisible(False) @@ -172,11 +171,11 @@ class SimulationPass(RenderPass): batch.render(self._scene.getActiveCamera()) # The nozzle is drawn once we know the correct position - if self._layer_view.getActivity() and nozzle_node is not None: + if not self._compatibility_mode and self._layer_view.getActivity() and nozzle_node is not None: if head_position is not None: nozzle_node.setVisible(True) nozzle_node.setPosition(head_position) - nozzle_batch = RenderBatch(self._nozzle_shader, type = RenderBatch.RenderType.Solid) + nozzle_batch = RenderBatch(self._nozzle_shader, type = RenderBatch.RenderType.Transparent) nozzle_batch.addItem(nozzle_node.getWorldTransformation(), mesh = nozzle_node.getMeshData()) nozzle_batch.render(self._scene.getActiveCamera()) diff --git a/plugins/SimulationView/SimulationView.qml b/plugins/SimulationView/SimulationView.qml index 4c7d99deec..67ca39d992 100644 --- a/plugins/SimulationView/SimulationView.qml +++ b/plugins/SimulationView/SimulationView.qml @@ -168,6 +168,7 @@ Item { layerTypeCombobox.currentIndex = UM.SimulationView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type"); layerTypeCombobox.updateLegends(layerTypeCombobox.currentIndex); + playButton.pauseSimulation(); view_settings.extruder_opacities = UM.Preferences.getValue("layerview/extruder_opacities").split("|"); view_settings.show_travel_moves = UM.Preferences.getValue("layerview/show_travel_moves"); view_settings.show_helpers = UM.Preferences.getValue("layerview/show_helpers"); diff --git a/plugins/SimulationView/SimulationViewProxy.py b/plugins/SimulationView/SimulationViewProxy.py index 2bd707293f..e144b841e6 100644 --- a/plugins/SimulationView/SimulationViewProxy.py +++ b/plugins/SimulationView/SimulationViewProxy.py @@ -15,7 +15,6 @@ class SimulationViewProxy(QObject): self._controller = Application.getInstance().getController() self._controller.activeViewChanged.connect(self._onActiveViewChanged) self._onActiveViewChanged() - self.is_simulationView_selected = False currentLayerChanged = pyqtSignal() @@ -238,7 +237,6 @@ class SimulationViewProxy(QObject): def _onActiveViewChanged(self): active_view = self._controller.getActiveView() if isinstance(active_view, SimulationView.SimulationView.SimulationView): - # remove other connection if once the SimulationView was created. if self.is_simulationView_selected: active_view.currentLayerNumChanged.disconnect(self._onLayerChanged) diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 8bba4cf6fd..fab8dc6130 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -346,7 +346,7 @@ Column Label { id: materialInfoLabel wrapMode: Text.WordWrap - text: catalog.i18nc("@label", "Check material compatibility") + text: catalog.i18nc("@label", "Check compatibility") font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") linkColor: UM.Theme.getColor("text_link") diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg deleted file mode 100644 index b9f35fcfa0..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg +++ /dev/null @@ -1,36 +0,0 @@ -[general] -version = 2 -name = Fine -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_bam_ultimaker3_AA_0.4 -weight = 0 -setting_version = 4 - -[values] -default_material_print_temperature = 225 -cool_fan_full_at_height = =layer_height_0 + 2 * layer_height -cool_fan_speed_max = =cool_fan_speed -cool_min_speed = 7 -machine_nozzle_cool_down_speed = 0.75 -machine_nozzle_heat_up_speed = 1.6 -material_standby_temperature = 100 -# prime_tower_enable: see CURA-4248 -prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 -skin_overlap = 10 -speed_layer_0 = 20 -top_bottom_thickness = 1 -wall_thickness = 1 -support_interface_enable = True -support_interface_density = =min(extruderValues('material_surface_energy')) -support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' -support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height -support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height -support_angle = 45 -support_join_distance = 5 -support_offset = 2 -support_pattern = triangles -support_infill_rate = 10