Merge branch 'refactoring_machine_manager' of github.com:Ultimaker/Cura into refactoring_machine_manager

This commit is contained in:
Jack Ha 2018-02-27 13:57:37 +01:00
commit fae82ef242
3 changed files with 10 additions and 31 deletions

View file

@ -288,7 +288,7 @@ class MachineManager(QObject):
Logger.log("w", "Quality type [%s] not found in available qualities [%s]", quality_type, str(quality_groups.values()))
return
new_quality_group = quality_groups[quality_type]
self._setQualityGroup(new_quality_group)
self._setQualityGroup(new_quality_group, empty_quality_changes = True)
@pyqtSlot(str)
def setActiveMachine(self, stack_id: str) -> None:

View file

@ -1082,11 +1082,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
CuraApplication.getInstance().getMachineManager().activeQualityChanged.emit()
# Actually change the active machine.
machine_manager = Application.getInstance().getMachineManager()
machine_manager.setActiveMachine(global_stack.getId())
# Notify everything/one that is to notify about changes.
global_stack.containersChanged.emit(global_stack.getTop())
CuraApplication.getInstance().callLater(self._updateActiveMachine, global_stack)
# Load all the nodes / meshdata of the workspace
nodes = self._3mf_mesh_reader.read(file_name)
@ -1099,6 +1095,14 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
self.setWorkspaceName(base_file_name)
return nodes
def _updateActiveMachine(self, global_stack):
# Actually change the active machine.
machine_manager = Application.getInstance().getMachineManager()
machine_manager.setActiveMachine(global_stack.getId())
# Notify everything/one that is to notify about changes.
global_stack.containersChanged.emit(global_stack.getTop())
## HACK: Replaces the material container in the given stack with a newly created material container.
# This function is used when the user chooses to resolve material conflicts by creating new ones.
def _replaceStackMaterialWithNew(self, stack, old_new_material_dict):

View file

@ -116,31 +116,6 @@ def test_addExtruder(global_stack):
# global_stack.addExtruder(unittest.mock.MagicMock())
assert len(global_stack.extruders) == 2 #Didn't add the faulty extruder.
## Tests getting the approximate material diameter.
@pytest.mark.parametrize("diameter, approximate_diameter", [
#Some real-life cases that are common in printers.
(2.85, 3),
(1.75, 2),
(3.0, 3),
(2.0, 2),
#Exceptional cases.
(0, 0),
(-10.1, -10),
(-1, -1),
(9000.1, 9000)
])
def test_approximateMaterialDiameter(diameter, approximate_diameter, global_stack):
global_stack.definition = DefinitionContainer(container_id = "TestDefinition")
material_diameter = UM.Settings.SettingDefinition.SettingDefinition(key = "material_diameter", container = global_stack.definition)
material_diameter.addSupportedProperty("value", UM.Settings.SettingDefinition.DefinitionPropertyType.Any, default = diameter)
global_stack.definition.definitions.append(material_diameter)
assert float(global_stack.approximateMaterialDiameter) == approximate_diameter
## Tests getting the material diameter when there is no material diameter.
def test_approximateMaterialDiameterNoDiameter(global_stack):
global_stack.definition = DefinitionContainer(container_id = "TestDefinition")
assert global_stack.approximateMaterialDiameter == "-1"
#Tests setting user changes profiles to invalid containers.
@pytest.mark.parametrize("container", [
getInstanceContainer(container_type = "wrong container type"),