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