From c6cc9ee6ec1025b8b101d0339a0b6b4913034aeb Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Mon, 12 Dec 2022 14:05:39 +0100 Subject: [PATCH] Update validators for SettingTextField to use strings from our validators. You can't access the components directly from javascript without instantiating them so they are instantiated here first. CURA-9793 --- resources/qml/Settings/SettingTextField.qml | 23 +++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index 4e72bca93e..366fd06517 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -4,7 +4,7 @@ import QtQuick 2.15 import QtQuick.Controls 2.15 -import UM 1.5 as UM +import UM 1.7 as UM SettingItem { @@ -159,7 +159,26 @@ SettingItem // should be done as little as possible) clip: definition.type == "str" || definition.type == "[int]" - validator: RegularExpressionValidator { regularExpression: (definition.type == "[int]") ? /^\[?(\s*-?[0-9]{0,11}\s*,)*(\s*-?[0-9]{0,11})\s*\]?$/ : (definition.type == "int") ? /^-?[0-9]{0,12}$/ : (definition.type == "float") ? /^-?[0-9]{0,11}[.,]?[0-9]{0,3}$/ : /^.*$/ } // definition.type property from parent loader used to disallow fractional number entry + readonly property UM.IntValidator intValidator: UM.IntValidator {} + readonly property UM.FloatValidator floatValidator: UM.FloatValidator {} + readonly property UM.IntListValidator intListValidator: UM.IntListValidator {} + validator: RegularExpressionValidator + { + regularExpression: + { + switch (definition.type) + { + case "[int]": + return new RegExp(intListValidator.regexString) + case "int": + return new RegExp(intValidator.regexString) + case "float": + return new RegExp(floatValidator.regexString) + default: + return new RegExp("^.*$") + } + } + } Binding {