Conversation
ab218fd to
da9d80d
Compare
|
|
|
@chocola-mint Something like this? |
|
I would write it like this: bool Resource::is_valid_property_value(const String &p_path, const Variant &p_value, String &p_error_message) const {
if (script_instance) {
bool valid;
String ret = script_instance->is_valid_property_value(&valid);
if (valid) {
return ret;
}
}
if (_extension && _extension->is_valid_property_value) {
bool ret;
GDExtensionBool is_valid;
_extension->is_valid_property_value(_extension_instance, &is_valid, &ret);
if (is_valid) {
return ret;
}
}
return _is_valid_property_value();
}
bool Resource::_is_valid_property_value(const String &p_path, const Variant &p_value, String &p_error_message) const
return true;
}You'll need to declare a function pointer called godot/core/extension/gdextension_interface.h Lines 259 to 279 in cb7cd81 Then, add a placeholder function with the same signature in static void placeholder_instance_is_valid_property_value(GDExtensionClassInstancePtr p_instance, GDExtensionBool *r_is_valid, GDExtensionBool *p_out) {
*r_is_valid = true;
}godot/core/object/class_db.cpp Lines 164 to 179 in cb7cd81 You'll then need to add godot/core/extension/gdextension_interface.h Lines 368 to 400 in cb7cd81 And then, add Lines 335 to 350 in cb7cd81 You'll also need to assign godot/core/extension/gdextension.cpp Line 470 in cb7cd81 And also assign the placeholder godot/core/object/class_db.cpp Lines 729 to 744 in cb7cd81 Take a look at how |
11dd819 to
00c0265
Compare
6117231 to
31478b2
Compare
31478b2 to
117d080
Compare
I am working on adding form validation feature in Editor Inspector.
With this feature, we can get a warning color when updating property value is invalid.
And this feature allow us editing unsaved invalid value, without revert invalid value to previous every key pressed.
It is graceful for any suggestion. Thank you very much.
Without validation, we cannot get 'foo'.
without-valid.webm
With validation, we can modify property value to an invalid value and keep editing it.
form-validation.webm
MRP
mrp-validation.zip