diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 7dc565ce26..fcf6d99688 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -118,6 +118,7 @@ class XmlMaterialProfile(InstanceContainer): metadata.pop("variant", "") metadata.pop("type", "") metadata.pop("base_file", "") + metadata.pop("approximate_diameter", "") ## Begin Name Block builder.start("name") @@ -437,6 +438,7 @@ class XmlMaterialProfile(InstanceContainer): Logger.log("d", "Unsupported material setting %s", key) self._cached_values = global_setting_values + meta_data["approximate_diameter"] = round(diameter) meta_data["compatible"] = global_compatibility self.setMetaData(meta_data) self._dirty = False diff --git a/resources/qml/Menus/MaterialMenu.qml b/resources/qml/Menus/MaterialMenu.qml index ab38de97aa..cb1a4cf644 100644 --- a/resources/qml/Menus/MaterialMenu.qml +++ b/resources/qml/Menus/MaterialMenu.qml @@ -15,6 +15,15 @@ Menu property int extruderIndex: 0 property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 + UM.SettingPropertyProvider + { + id: materialDiameterProvider + + containerStackId: Cura.MachineManager.activeMachineId + key: "material_diameter" + watchedProperties: [ "value" ] + } + MenuItem { id: automaticMaterial @@ -141,7 +150,7 @@ Menu function materialFilter() { - var result = { "type": "material" }; + var result = { "type": "material", "approximate_diameter": Math.round(materialDiameterProvider.properties.value) }; if(Cura.MachineManager.filterMaterialsByMachine) { result.definition = Cura.MachineManager.activeQualityDefinitionId; diff --git a/resources/qml/Preferences/MaterialsPage.qml b/resources/qml/Preferences/MaterialsPage.qml index 03bf9f5aa1..08cb6d4d13 100644 --- a/resources/qml/Preferences/MaterialsPage.qml +++ b/resources/qml/Preferences/MaterialsPage.qml @@ -18,7 +18,7 @@ UM.ManagementPage { filter: { - var result = { "type": "material" } + var result = { "type": "material", "approximate_diameter": Math.round(materialDiameterProvider.properties.value) } if(Cura.MachineManager.filterMaterialsByMachine) { result.definition = Cura.MachineManager.activeQualityDefinitionId; @@ -327,6 +327,15 @@ UM.ManagementPage id: messageDialog } + UM.SettingPropertyProvider + { + id: materialDiameterProvider + + containerStackId: Cura.MachineManager.activeMachineId + key: "material_diameter" + watchedProperties: [ "value" ] + } + UM.I18nCatalog { id: catalog; name: "cura"; } SystemPalette { id: palette } }