diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 011941eec7..ac63270a8e 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -6,7 +6,7 @@ import io import json #To parse the product-to-id mapping file. import os.path #To find the product-to-id mapping. import sys -from typing import Any, Dict, List, Optional, Tuple, cast +from typing import Any, Dict, List, Optional, Tuple, cast, Set import xml.etree.ElementTree as ET from UM.Resources import Resources @@ -117,7 +117,7 @@ class XmlMaterialProfile(InstanceContainer): ## Overridden from InstanceContainer # base file: common settings + supported machines # machine / variant combination: only changes for itself. - def serialize(self, ignored_metadata_keys: Optional[set] = None): + def serialize(self, ignored_metadata_keys: Optional[Set[str]] = None): registry = ContainerRegistry.getInstance() base_file = self.getMetaDataEntry("base_file", "") diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index fc4272dc93..4568ed8f32 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -181,7 +181,18 @@ Item readonly property real paddedWidth: parent.width - padding * 2 property real textWidth: Math.round(paddedWidth * 0.3) - property real controlWidth: paddedWidth - textWidth + property real controlWidth: + { + if(instructionLink == "") + { + return paddedWidth - textWidth + } + else + { + return paddedWidth - textWidth - UM.Theme.getSize("print_setup_big_item").height * 0.5 - UM.Theme.getSize("default_margin").width + } + } + property string instructionLink:Cura.ContainerManager.getContainerMetaDataEntry(Cura.MachineManager.activeStack.material.id, "instruction_link", "") Row { @@ -256,6 +267,27 @@ Item extruderIndex: Cura.ExtruderManager.activeExtruderIndex } } + Item + { + width: instructionButton.width + 2 * UM.Theme.getSize("default_margin").width + height: instructionButton.visible ? materialSelection.height: 0 + Button + { + id: instructionButton + hoverEnabled: true + contentItem: Item {} + height: 0.5 * materialSelection.height + width: height + anchors.centerIn: parent + background: UM.RecolorImage + { + source: UM.Theme.getIcon("printing_guideline") + color: instructionButton.hovered ? UM.Theme.getColor("primary") : UM.Theme.getColor("icon") + } + visible: selectors.instructionLink != "" + onClicked:Qt.openUrlExternally(selectors.instructionLink) + } + } } Row diff --git a/resources/themes/cura-light/icons/printing-guideline.svg b/resources/themes/cura-light/icons/printing_guideline.svg similarity index 100% rename from resources/themes/cura-light/icons/printing-guideline.svg rename to resources/themes/cura-light/icons/printing_guideline.svg