Update plugins
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
extends Control
|
||||
class_name FormValidator
|
||||
|
||||
signal control_validated(control: Control, passed: bool, messages: PackedStringArray)
|
||||
signal control_validated(control, passed, messages)
|
||||
|
||||
class ValidatorInfo extends RefCounted:
|
||||
var control: Control
|
||||
@@ -14,8 +14,8 @@ class ValidatorInfo extends RefCounted:
|
||||
validation_method = value
|
||||
_update_validation_methods()
|
||||
|
||||
var _control_validator_map: Dictionary[Control, Validator] = {}
|
||||
var _control_messages_map: Dictionary[Control, PackedStringArray] = {}
|
||||
var _control_validator_map: Dictionary = {}
|
||||
var _control_messages_map: Dictionary = {}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
@@ -36,38 +36,29 @@ func get_messages_for_control(control: Control) -> PackedStringArray:
|
||||
|
||||
func validate() -> bool:
|
||||
_control_messages_map.clear()
|
||||
var list: Array[ValidatorInfo] = _get_validator_info_list()
|
||||
var valid: bool = true
|
||||
for info: ValidatorInfo in list:
|
||||
var list = _get_validator_info_list()
|
||||
var valid = true
|
||||
for info in list:
|
||||
if info.validator.skip_validation:
|
||||
continue
|
||||
var control: Control = info.control as Control
|
||||
if control == null:
|
||||
Log.error("FormValidator: ValidatorInfo.control is not a Control: %s" % [info.control])
|
||||
continue
|
||||
var passed: bool = info.validator.validate(control)
|
||||
var messages: PackedStringArray = info.validator.get_messages()
|
||||
var passed = info.validator.validate(info.control)
|
||||
var messages = info.validator.get_messages()
|
||||
if not passed:
|
||||
_control_messages_map[control] = messages
|
||||
control_validated.emit(control, passed, messages)
|
||||
_control_messages_map[info.control] = messages
|
||||
control_validated.emit(info.control, passed, messages)
|
||||
valid = valid and passed
|
||||
if not valid and validation_method == Validation.Method.IMMEDIATE:
|
||||
return valid
|
||||
return valid
|
||||
|
||||
|
||||
|
||||
func _get_validator_info_list() -> Array[ValidatorInfo]:
|
||||
var list: Array[ValidatorInfo] = []
|
||||
for controlKey: Control in _control_validator_map.keys():
|
||||
var control: Control = controlKey as Control
|
||||
if control == null:
|
||||
Log.error("FormValidator: _control_validator_map key is not a Control")
|
||||
continue
|
||||
var validator: Validator = _control_validator_map[control]
|
||||
for control in _control_validator_map.keys():
|
||||
var validator = _control_validator_map[control]
|
||||
if not validator:
|
||||
continue
|
||||
var info: ValidatorInfo = ValidatorInfo.new()
|
||||
var info = ValidatorInfo.new()
|
||||
info.control = control
|
||||
info.validator = validator
|
||||
list.append(info)
|
||||
@@ -78,9 +69,9 @@ func _get_validator_info_list() -> Array[ValidatorInfo]:
|
||||
|
||||
|
||||
func _update_validation_methods() -> void:
|
||||
var validators: Array = _control_validator_map.values()
|
||||
var validators = _control_validator_map.values()
|
||||
for item in validators:
|
||||
var validator: Validator = item as Validator
|
||||
var validator = item as Validator
|
||||
if not validator:
|
||||
continue
|
||||
validator.validation_method = validation_method
|
||||
@@ -88,7 +79,7 @@ func _update_validation_methods() -> void:
|
||||
|
||||
func _find_validators(node: Node) -> void:
|
||||
for child in node.get_children():
|
||||
var control_validator: ControlValidator = child as ControlValidator
|
||||
var control_validator = child as ControlValidator
|
||||
if control_validator:
|
||||
control_validator._on_validator_added()
|
||||
_find_validators(child)
|
||||
@@ -97,10 +88,10 @@ func _find_validators(node: Node) -> void:
|
||||
func _auto_validate(control: Control) -> void:
|
||||
if not auto_validate:
|
||||
return
|
||||
var validator: Validator = _control_validator_map[control] as Validator
|
||||
var validator = _control_validator_map[control] as Validator
|
||||
if not validator:
|
||||
return
|
||||
var passed: bool = validator.validate(control)
|
||||
var passed = validator.validate(control)
|
||||
control_validated.emit(control, passed, validator.get_messages())
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user