diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index 734bafd4fb..714b1a78b9 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -68,11 +68,14 @@ class GlobalStack(CuraContainerStack): def getLoadingPriority(cls) -> int: return 2 - # The configured connection types can be used to find out if the global stack is configured to be connected with - # a printer, without having to know all the details as to how this is exactly done (and without actually setting - # the stack to be active). This data can then in turn also be used when the global stack is active; If we can't - # get a network connection, but it is configured to have one, we can display a different icon to indicate the - # difference. + ## The configured connection types can be used to find out if the global + # stack is configured to be connected with a printer, without having to + # know all the details as to how this is exactly done (and without + # actually setting the stack to be active). + # + # This data can then in turn also be used when the global stack is active; + # If we can't get a network connection, but it is configured to have one, + # we can display a different icon to indicate the difference. @pyqtProperty("QVariantList", notify=configuredConnectionTypesChanged) def configuredConnectionTypes(self): # Requesting it from the metadata actually gets them as strings (as that's what you get from serializing). @@ -80,7 +83,7 @@ class GlobalStack(CuraContainerStack): connection_types = self.getMetaDataEntry("connection_type", "").split(",") return [int(connection_type) for connection_type in connection_types if connection_type != ""] - # \sa configuredConnectionTypes + ## \sa configuredConnectionTypes def addConfiguredConnectionType(self, connection_type): configured_connection_types = self.configuredConnectionTypes if connection_type not in configured_connection_types: @@ -88,7 +91,7 @@ class GlobalStack(CuraContainerStack): configured_connection_types.append(str(connection_type)) self.setMetaDataEntry("connection_type", ",".join(configured_connection_types)) - # \sa configuredConnectionTypes + ## \sa configuredConnectionTypes def removeConfiguredConnectionType(self, connection_type): configured_connection_types = self.configuredConnectionTypes if connection_type in self.configured_connection_types: diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 5cecda4e5c..09ea8300ad 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -288,6 +288,57 @@ Item menu: Cura.NozzleMenu { extruderIndex: Cura.ExtruderManager.activeExtruderIndex } } } + + Row + { + height: UM.Theme.getSize("print_setup_big_item").height + visible: buildplateCompatibilityError || buildplateCompatibilityWarning + + property bool buildplateCompatibilityError: !Cura.MachineManager.variantBuildplateCompatible && !Cura.MachineManager.variantBuildplateUsable + property bool buildplateCompatibilityWarning: Cura.MachineManager.variantBuildplateUsable + + // This is a space holder aligning the warning messages. + Label + { + text: "" + width: selectors.textWidth + renderType: Text.NativeRendering + } + + Item + { + width: selectors.controlWidth + height: parent.height + + UM.RecolorImage + { + id: warningImage + anchors.left: parent.left + source: UM.Theme.getIcon("warning") + width: UM.Theme.getSize("section_icon").width + height: UM.Theme.getSize("section_icon").height + sourceSize.width: width + sourceSize.height: height + color: UM.Theme.getColor("material_compatibility_warning") + visible: !Cura.MachineManager.isCurrentSetupSupported || buildplateCompatibilityError || buildplateCompatibilityWarning + } + + Label + { + id: materialCompatibilityLabel + anchors.left: warningImage.right + anchors.leftMargin: UM.Theme.getSize("default_margin").width + verticalAlignment: Text.AlignVCenter + width: selectors.controlWidth - warningImage.width - UM.Theme.getSize("default_margin").width + text: catalog.i18nc("@label", "Use glue for better adhesion with this material combination.") + font: UM.Theme.getFont("very_small") + color: UM.Theme.getColor("text") + visible: CuraSDKVersion == "dev" ? false : buildplateCompatibilityError || buildplateCompatibilityWarning + wrapMode: Text.WordWrap + renderType: Text.NativeRendering + } + } + } } } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 3d5aba7477..805df3d0ca 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -294,7 +294,7 @@ "setting_validation_ok": [255, 255, 255, 255], "setting_filter_field" : [153, 153, 153, 255], - "material_compatibility_warning": [0, 0, 0, 255], + "material_compatibility_warning": [243, 166, 59, 255], "progressbar_background": [245, 245, 245, 255], "progressbar_control": [50, 130, 255, 255],