mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-16 11:17:49 -06:00
Fix 'getQualityChangesGroups' now gives a list issues.
part of CURA-6600
This commit is contained in:
parent
fbf4d42f06
commit
d5a8b2640f
4 changed files with 10 additions and 9 deletions
|
@ -44,11 +44,11 @@ class QualityManagementModel(ListModel):
|
||||||
return
|
return
|
||||||
|
|
||||||
quality_group_dict = ContainerTree.getInstance().getCurrentQualityGroups()
|
quality_group_dict = ContainerTree.getInstance().getCurrentQualityGroups()
|
||||||
quality_changes_group_dict = self._quality_manager.getQualityChangesGroups(global_stack)
|
quality_changes_group_list = self._quality_manager.getQualityChangesGroups(global_stack)
|
||||||
|
|
||||||
available_quality_types = set(quality_type for quality_type, quality_group in quality_group_dict.items()
|
available_quality_types = set(quality_type for quality_type, quality_group in quality_group_dict.items()
|
||||||
if quality_group.is_available)
|
if quality_group.is_available)
|
||||||
if not available_quality_types and not quality_changes_group_dict:
|
if not available_quality_types and not quality_changes_group_list:
|
||||||
# Nothing to show
|
# Nothing to show
|
||||||
self.setItems([])
|
self.setItems([])
|
||||||
return
|
return
|
||||||
|
@ -69,7 +69,7 @@ class QualityManagementModel(ListModel):
|
||||||
|
|
||||||
# Create quality_changes group items
|
# Create quality_changes group items
|
||||||
quality_changes_item_list = []
|
quality_changes_item_list = []
|
||||||
for quality_changes_group in quality_changes_group_dict.values():
|
for quality_changes_group in quality_changes_group_list:
|
||||||
quality_group = quality_group_dict.get(quality_changes_group.quality_type)
|
quality_group = quality_group_dict.get(quality_changes_group.quality_type)
|
||||||
item = {"name": quality_changes_group.name,
|
item = {"name": quality_changes_group.name,
|
||||||
"is_read_only": False,
|
"is_read_only": False,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Copyright (c) 2019 Ultimaker B.V.
|
# Copyright (c) 2019 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from typing import TYPE_CHECKING, Optional, Dict
|
from typing import TYPE_CHECKING, Optional, Dict, List
|
||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot
|
from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ import cura.CuraApplication
|
||||||
from cura.Settings.ExtruderStack import ExtruderStack
|
from cura.Settings.ExtruderStack import ExtruderStack
|
||||||
|
|
||||||
from cura.Machines.ContainerTree import ContainerTree # The implementation that replaces this manager, to keep the deprecated interface working.
|
from cura.Machines.ContainerTree import ContainerTree # The implementation that replaces this manager, to keep the deprecated interface working.
|
||||||
|
from .QualityChangesGroup import QualityChangesGroup
|
||||||
from .QualityGroup import QualityGroup
|
from .QualityGroup import QualityGroup
|
||||||
from .QualityNode import QualityNode
|
from .QualityNode import QualityNode
|
||||||
|
|
||||||
|
@ -75,7 +76,7 @@ class QualityManager(QObject):
|
||||||
return
|
return
|
||||||
|
|
||||||
# Returns a dict of "custom profile name" -> QualityChangesGroup
|
# Returns a dict of "custom profile name" -> QualityChangesGroup
|
||||||
def getQualityChangesGroups(self, machine: "GlobalStack") -> dict:
|
def getQualityChangesGroups(self, machine: "GlobalStack") -> List[QualityChangesGroup]:
|
||||||
variant_names = [extruder.variant.getName() for extruder in machine.extruders.values()]
|
variant_names = [extruder.variant.getName() for extruder in machine.extruders.values()]
|
||||||
material_bases = [extruder.material.getMetaDataEntry("base_file") for extruder in machine.extruders.values()]
|
material_bases = [extruder.material.getMetaDataEntry("base_file") for extruder in machine.extruders.values()]
|
||||||
extruder_enabled = [extruder.isEnabled for extruder in machine.extruders.values()]
|
extruder_enabled = [extruder.isEnabled for extruder in machine.extruders.values()]
|
||||||
|
|
|
@ -1003,11 +1003,11 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
global_stack.setMetaDataEntry(key, value)
|
global_stack.setMetaDataEntry(key, value)
|
||||||
|
|
||||||
if self._quality_changes_to_apply:
|
if self._quality_changes_to_apply:
|
||||||
quality_changes_group_dict = quality_manager.getQualityChangesGroups(global_stack)
|
quality_changes_group_list = quality_manager.getQualityChangesGroups(global_stack)
|
||||||
if self._quality_changes_to_apply not in quality_changes_group_dict:
|
quality_changes_group = next((qcg for qcg in quality_changes_group_list if qcg.name == self._quality_changes_to_apply), None)
|
||||||
|
if not quality_changes_group:
|
||||||
Logger.log("e", "Could not find quality_changes [%s]", self._quality_changes_to_apply)
|
Logger.log("e", "Could not find quality_changes [%s]", self._quality_changes_to_apply)
|
||||||
return
|
return
|
||||||
quality_changes_group = quality_changes_group_dict[self._quality_changes_to_apply]
|
|
||||||
machine_manager.setQualityChangesGroup(quality_changes_group, no_dialog = True)
|
machine_manager.setQualityChangesGroup(quality_changes_group, no_dialog = True)
|
||||||
else:
|
else:
|
||||||
self._quality_type_to_apply = self._quality_type_to_apply.lower()
|
self._quality_type_to_apply = self._quality_type_to_apply.lower()
|
||||||
|
|
|
@ -61,7 +61,7 @@ def test_getQualityChangesGroup(quality_mocked_application):
|
||||||
manager = QualityManager(quality_mocked_application)
|
manager = QualityManager(quality_mocked_application)
|
||||||
manager.initialize()
|
manager.initialize()
|
||||||
|
|
||||||
assert "herp" in manager.getQualityChangesGroups(mocked_stack)
|
assert "herp" in [qcg.name for qcg in manager.getQualityChangesGroups(mocked_stack)]
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip("Doesn't work on remote")
|
@pytest.mark.skip("Doesn't work on remote")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue