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 {