Skip to content

Commit

Permalink
Merge pull request #94457 from BastiaanOlij/fix_load_action_map
Browse files Browse the repository at this point in the history
Fix creating default action map
  • Loading branch information
akien-mga committed Jul 17, 2024
2 parents 64a11d0 + 9e658e2 commit f4942b7
Showing 1 changed file with 15 additions and 20 deletions.
35 changes: 15 additions & 20 deletions modules/openxr/editor/openxr_action_map_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -248,32 +248,27 @@ void OpenXRActionMapEditor::_on_interaction_profile_selected(const String p_path

void OpenXRActionMapEditor::_load_action_map(const String p_path, bool p_create_new_if_missing) {
Error err = OK;
action_map = ResourceLoader::load(p_path, "", ResourceFormatLoader::CACHE_MODE_REUSE, &err);
if (err != OK) {
if ((err == ERR_FILE_NOT_FOUND || err == ERR_CANT_OPEN) && p_create_new_if_missing) {
action_map.instantiate();
action_map->create_default_action_sets();

// Save it immediately
err = ResourceSaver::save(action_map, p_path);
if (err != OK) {
// Show warning but continue.
EditorNode::get_singleton()->show_warning(vformat(TTR("Error saving file %s: %s"), edited_path, error_names[err]));
} else {
// Reload so it's cached.
action_map = ResourceLoader::load(p_path, "", ResourceFormatLoader::CACHE_MODE_REUSE, &err);
if (err != OK) {
// Show warning but continue.
EditorNode::get_singleton()->show_warning(vformat(TTR("Error reloading file %s: %s"), edited_path, error_names[err]));
}
}
} else {
Ref<DirAccess> da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
if (da->file_exists(p_path)) {
action_map = ResourceLoader::load(p_path, "", ResourceFormatLoader::CACHE_MODE_REUSE, &err);
if (err != OK) {
EditorNode::get_singleton()->show_warning(vformat(TTR("Error loading %s: %s."), edited_path, error_names[err]));

edited_path = "";
header_label->set_text("");
return;
}
} else if (p_create_new_if_missing) {
action_map.instantiate();
action_map->create_default_action_sets();
action_map->set_path(p_path);

// Save it immediately
err = ResourceSaver::save(action_map, p_path);
if (err != OK) {
// Show warning but continue.
EditorNode::get_singleton()->show_warning(vformat(TTR("Error saving file %s: %s"), edited_path, error_names[err]));
}
}

edited_path = p_path;
Expand Down

0 comments on commit f4942b7

Please sign in to comment.