Merge pull request #103397 from KoBeWi/good_luck_finding_where_'is_path_valid'_is_now_assigned
Improve path validation in ScriptCreateDialog
This commit is contained in:
commit
cae8c3e0fa
@ -216,7 +216,7 @@ bool ScriptCreateDialog::_validate_parent(const String &p_string) {
|
||||
|
||||
if (can_inherit_from_file && p_string.is_quoted()) {
|
||||
String p = p_string.substr(1, p_string.length() - 2);
|
||||
if (_validate_path(p, true) == "") {
|
||||
if (_validate_path(p, true).is_empty()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -224,8 +224,11 @@ bool ScriptCreateDialog::_validate_parent(const String &p_string) {
|
||||
return EditorNode::get_editor_data().is_type_recognized(p_string);
|
||||
}
|
||||
|
||||
String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must_exist) {
|
||||
String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must_exist, bool *r_path_valid) {
|
||||
String p = p_path.strip_edges();
|
||||
if (r_path_valid) {
|
||||
*r_path_valid = false;
|
||||
}
|
||||
|
||||
if (p.is_empty()) {
|
||||
return TTR("Path is empty.");
|
||||
@ -263,6 +266,10 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must
|
||||
}
|
||||
}
|
||||
|
||||
if (r_path_valid) {
|
||||
*r_path_valid = true;
|
||||
}
|
||||
|
||||
// Check file extension.
|
||||
String extension = p.get_extension();
|
||||
List<String> extensions;
|
||||
@ -491,10 +498,9 @@ void ScriptCreateDialog::_path_changed(const String &p_path) {
|
||||
return;
|
||||
}
|
||||
|
||||
is_path_valid = false;
|
||||
is_new_script_created = true;
|
||||
|
||||
path_error = _validate_path(p_path, false);
|
||||
path_error = _validate_path(p_path, false, &is_path_valid);
|
||||
if (!path_error.is_empty()) {
|
||||
validation_panel->update();
|
||||
return;
|
||||
@ -506,8 +512,6 @@ void ScriptCreateDialog::_path_changed(const String &p_path) {
|
||||
if (da->file_exists(p)) {
|
||||
is_new_script_created = false;
|
||||
}
|
||||
|
||||
is_path_valid = true;
|
||||
validation_panel->update();
|
||||
}
|
||||
|
||||
|
@ -98,7 +98,7 @@ class ScriptCreateDialog : public ConfirmationDialog {
|
||||
void _built_in_pressed();
|
||||
void _use_template_pressed();
|
||||
bool _validate_parent(const String &p_string);
|
||||
String _validate_path(const String &p_path, bool p_file_must_exist);
|
||||
String _validate_path(const String &p_path, bool p_file_must_exist, bool *r_path_valid = nullptr);
|
||||
void _parent_name_changed(const String &p_parent);
|
||||
void _template_changed(int p_template = 0);
|
||||
void _browse_path(bool browse_parent, bool p_save);
|
||||
|
Loading…
x
Reference in New Issue
Block a user