diff --git a/resources/qml/WelcomePages/AddLocalPrinterScrollView.qml b/resources/qml/WelcomePages/AddLocalPrinterScrollView.qml index 157a3262ec..37934f9ac2 100644 --- a/resources/qml/WelcomePages/AddLocalPrinterScrollView.qml +++ b/resources/qml/WelcomePages/AddLocalPrinterScrollView.qml @@ -32,6 +32,7 @@ Item // User-editable printer name property alias printerName: printerNameTextField.text + property alias isPrinterNameValid: printerNameTextField.acceptableInput onCurrentItemChanged: { @@ -211,6 +212,10 @@ Item id: printerNameTextField anchors.verticalCenter: parent.verticalCenter width: (parent.width / 2) | 0 + placeholderText: catalog.i18nc("@text", "Please give your printer a name") + + // Make sure that the fill is not empty + validator: RegExpValidator { regExp: /.+/ } } } } diff --git a/resources/qml/WelcomePages/AddNetworkOrLocalPrinterContent.qml b/resources/qml/WelcomePages/AddNetworkOrLocalPrinterContent.qml index b5484e9916..34ec3b4a24 100644 --- a/resources/qml/WelcomePages/AddNetworkOrLocalPrinterContent.qml +++ b/resources/qml/WelcomePages/AddNetworkOrLocalPrinterContent.qml @@ -118,7 +118,10 @@ Item } else { - return addLocalPrinterDropDown.contentItem.currentItem != null + // Printer name cannot be empty + const localPrinterItem = addLocalPrinterDropDown.contentItem.currentItem + const isPrinterNameValid = addLocalPrinterDropDown.contentItem.isPrinterNameValid + return localPrinterItem != null && isPrinterNameValid } } diff --git a/resources/qml/Widgets/TextField.qml b/resources/qml/Widgets/TextField.qml index 8161dfe532..fcdcae53be 100644 --- a/resources/qml/Widgets/TextField.qml +++ b/resources/qml/Widgets/TextField.qml @@ -37,11 +37,28 @@ TextField { return UM.Theme.getColor("setting_control_disabled_border") } + if (!textField.acceptableInput) + { + return UM.Theme.getColor("setting_validation_error") + } if (textField.hovered || textField.activeFocus) { return UM.Theme.getColor("setting_control_border_highlight") } return UM.Theme.getColor("setting_control_border") } + + color: + { + if (!textField.enabled) + { + return UM.Theme.getColor("setting_control_disabled") + } + if (!textField.acceptableInput) + { + return UM.Theme.getColor("setting_validation_error_background") + } + return UM.Theme.getColor("setting_control") + } } }