diff --git a/cura/PrinterOutput/ExtruderConfigurationModel.py b/cura/PrinterOutput/ExtruderConfigurationModel.py index e49ffe13d7..bc7f1a7c07 100644 --- a/cura/PrinterOutput/ExtruderConfigurationModel.py +++ b/cura/PrinterOutput/ExtruderConfigurationModel.py @@ -37,13 +37,18 @@ class ExtruderConfigurationModel(QObject): ## This method is intended to indicate whether the configuration is valid or not. # The method checks if the mandatory fields are or not set + # At this moment is always valid since we allow to have empty material and variants. def isValid(self): - return self._material is not None and self._hotend_id is not None and self.material.guid is not None + return True def __str__(self): - if not self.isValid(): - return "No information" - return "Position: " + str(self._position) + " - Material: " + self._material.type + " - HotendID: " + self._hotend_id + message_chunks = [] + message_chunks.append("Position: " + str(self._position)) + message_chunks.append("-") + message_chunks.append("Material: " + self.material.type if self.material else "empty") + message_chunks.append("-") + message_chunks.append("HotendID: " + self.hotendID if self.hotendID else "empty") + return " ".join(message_chunks) def __eq__(self, other): return hash(self) == hash(other) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index e8ee0b6657..cc7852ede4 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -361,19 +361,10 @@ class MachineManager(QObject): # \param metadata_filter \type{dict} list of metadata keys and values used for filtering @staticmethod def getMachine(definition_id: str, metadata_filter: Dict[str, str] = None) -> Optional["GlobalStack"]: - machines = ContainerRegistry.getInstance().findContainerStacks(type = "machine") + machines = ContainerRegistry.getInstance().findContainerStacks(type = "machine", **metadata_filter) for machine in machines: if machine.definition.getId() == definition_id: - if metadata_filter: - pass_all_filters = True - for key in metadata_filter: - if machine.getMetaDataEntry(key) != metadata_filter[key]: - pass_all_filters = False - break - if pass_all_filters: - return machine - else: - return machine + return machine return None @pyqtSlot(str, str)