diff --git a/cura/Settings/QualityAndUserProfilesModel.py b/cura/Settings/QualityAndUserProfilesModel.py index 8396e62417..645e63acdb 100644 --- a/cura/Settings/QualityAndUserProfilesModel.py +++ b/cura/Settings/QualityAndUserProfilesModel.py @@ -1,17 +1,21 @@ # Copyright (c) 2016 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from UM.Application import Application +from UM.Settings.ContainerRegistry import ContainerRegistry from cura.QualityManager import QualityManager from cura.Settings.ProfilesModel import ProfilesModel from cura.Settings.ExtruderManager import ExtruderManager + ## QML Model for listing the current list of valid quality and quality changes profiles. # class QualityAndUserProfilesModel(ProfilesModel): def __init__(self, parent = None): super().__init__(parent) + self._empty_quality = ContainerRegistry.getInstance().findInstanceContainers(id = "empty_quality")[0] + ## Fetch the list of containers to display. # # See UM.Settings.Models.InstanceContainersModel._fetchInstanceContainers(). @@ -35,7 +39,9 @@ class QualityAndUserProfilesModel(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.getId():qc for qc in quality_changes_list if + # Also show custom profiles based on "Not Supported" quality profile + quality_type_set.add(self._empty_quality.getMetaDataEntry("quality_type")) + filtered_quality_changes = {qc.getId(): 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 diff --git a/cura/Settings/QualitySettingsModel.py b/cura/Settings/QualitySettingsModel.py index 0e17237ff7..fb1aa9a6b2 100644 --- a/cura/Settings/QualitySettingsModel.py +++ b/cura/Settings/QualitySettingsModel.py @@ -107,7 +107,7 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel): else: quality_changes_container = containers[0] - if quality_changes_container.getMetaDataEntry("quality_type") == "not_supported": + if quality_changes_container.getMetaDataEntry("quality_type") == self._empty_quality.getMetaDataEntry("quality_type"): quality_container = self._empty_quality else: criteria = { diff --git a/cura/Settings/UserProfilesModel.py b/cura/Settings/UserProfilesModel.py index e093c6c132..6605f52f8a 100644 --- a/cura/Settings/UserProfilesModel.py +++ b/cura/Settings/UserProfilesModel.py @@ -2,6 +2,8 @@ # Cura is released under the terms of the LGPLv3 or higher. from UM.Application import Application +from UM.Settings.ContainerRegistry import ContainerRegistry + from cura.QualityManager import QualityManager from cura.Settings.ProfilesModel import ProfilesModel from cura.Settings.ExtruderManager import ExtruderManager @@ -22,6 +24,8 @@ class UserProfilesModel(ProfilesModel): for material in self.__current_materials: material.metaDataChanged.connect(self._onContainerChanged) + self._empty_quality = ContainerRegistry.getInstance().findContainers(id = "empty_quality")[0] + ## Fetch the list of containers to display. # # See UM.Settings.Models.InstanceContainersModel._fetchInstanceContainers(). @@ -45,6 +49,7 @@ 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]) + quality_type_set.add(self._empty_quality.getMetaDataEntry("quality_type")) filtered_quality_changes = {qc.getId():qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and