Merge pull request #31499 from nekomatata/fix-new-project-metadata
Setting project metadata doesn't fail when project_metadata.cfg doesn't exist
This commit is contained in:
commit
7b37321ae3
@ -201,7 +201,7 @@ Error ConfigFile::load(const String &p_path) {
|
|||||||
FileAccess *f = FileAccess::open(p_path, FileAccess::READ, &err);
|
FileAccess *f = FileAccess::open(p_path, FileAccess::READ, &err);
|
||||||
|
|
||||||
if (!f)
|
if (!f)
|
||||||
return ERR_CANT_OPEN;
|
return err;
|
||||||
|
|
||||||
return _internal_load(p_path, f);
|
return _internal_load(p_path, f);
|
||||||
}
|
}
|
||||||
|
@ -38,6 +38,8 @@
|
|||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#if defined(UNIX_ENABLED)
|
#if defined(UNIX_ENABLED)
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
@ -112,8 +114,15 @@ Error FileAccessUnix::_open(const String &p_path, int p_mode_flags) {
|
|||||||
f = fopen(path.utf8().get_data(), mode_string);
|
f = fopen(path.utf8().get_data(), mode_string);
|
||||||
|
|
||||||
if (f == NULL) {
|
if (f == NULL) {
|
||||||
|
switch (errno) {
|
||||||
|
case ENOENT: {
|
||||||
|
last_error = ERR_FILE_NOT_FOUND;
|
||||||
|
} break;
|
||||||
|
default: {
|
||||||
last_error = ERR_FILE_CANT_OPEN;
|
last_error = ERR_FILE_CANT_OPEN;
|
||||||
return ERR_FILE_CANT_OPEN;
|
} break;
|
||||||
|
}
|
||||||
|
return last_error;
|
||||||
} else {
|
} else {
|
||||||
last_error = OK;
|
last_error = OK;
|
||||||
flags = p_mode_flags;
|
flags = p_mode_flags;
|
||||||
|
@ -114,11 +114,18 @@ Error FileAccessWindows::_open(const String &p_path, int p_mode_flags) {
|
|||||||
path = path + ".tmp";
|
path = path + ".tmp";
|
||||||
}
|
}
|
||||||
|
|
||||||
_wfopen_s(&f, path.c_str(), mode_string);
|
errno_t errcode = _wfopen_s(&f, path.c_str(), mode_string);
|
||||||
|
|
||||||
if (f == NULL) {
|
if (f == NULL) {
|
||||||
|
switch (errcode) {
|
||||||
|
case ENOENT: {
|
||||||
|
last_error = ERR_FILE_NOT_FOUND;
|
||||||
|
} break;
|
||||||
|
default: {
|
||||||
last_error = ERR_FILE_CANT_OPEN;
|
last_error = ERR_FILE_CANT_OPEN;
|
||||||
return ERR_FILE_CANT_OPEN;
|
} break;
|
||||||
|
}
|
||||||
|
return last_error;
|
||||||
} else {
|
} else {
|
||||||
last_error = OK;
|
last_error = OK;
|
||||||
flags = p_mode_flags;
|
flags = p_mode_flags;
|
||||||
|
@ -2954,7 +2954,6 @@ void EditorNode::set_addon_plugin_enabled(const String &p_addon, bool p_enabled,
|
|||||||
|
|
||||||
EditorPlugin *ep = memnew(EditorPlugin);
|
EditorPlugin *ep = memnew(EditorPlugin);
|
||||||
ep->set_script(script.get_ref_ptr());
|
ep->set_script(script.get_ref_ptr());
|
||||||
ep->set_dir_cache(p_addon);
|
|
||||||
plugin_addons[p_addon] = ep;
|
plugin_addons[p_addon] = ep;
|
||||||
add_editor_plugin(ep, p_config_changed);
|
add_editor_plugin(ep, p_config_changed);
|
||||||
|
|
||||||
|
@ -324,13 +324,6 @@ void EditorPlugin::remove_autoload_singleton(const String &p_name) {
|
|||||||
EditorNode::get_singleton()->get_project_settings()->get_autoload_settings()->autoload_remove(p_name);
|
EditorNode::get_singleton()->get_project_settings()->get_autoload_settings()->autoload_remove(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
Ref<ConfigFile> EditorPlugin::get_config() {
|
|
||||||
Ref<ConfigFile> cf = memnew(ConfigFile);
|
|
||||||
Error err = cf->load(_dir_cache.plus_file("plugin.cfg"));
|
|
||||||
ERR_FAIL_COND_V(err != OK, cf);
|
|
||||||
return cf;
|
|
||||||
}
|
|
||||||
|
|
||||||
ToolButton *EditorPlugin::add_control_to_bottom_panel(Control *p_control, const String &p_title) {
|
ToolButton *EditorPlugin::add_control_to_bottom_panel(Control *p_control, const String &p_title) {
|
||||||
ERR_FAIL_NULL_V(p_control, NULL);
|
ERR_FAIL_NULL_V(p_control, NULL);
|
||||||
return EditorNode::get_singleton()->add_bottom_panel_item(p_title, p_control);
|
return EditorNode::get_singleton()->add_bottom_panel_item(p_title, p_control);
|
||||||
|
@ -117,7 +117,6 @@ class EditorPlugin : public Node {
|
|||||||
bool force_draw_over_forwarding_enabled;
|
bool force_draw_over_forwarding_enabled;
|
||||||
|
|
||||||
String last_main_screen_name;
|
String last_main_screen_name;
|
||||||
String _dir_cache;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
@ -236,10 +235,6 @@ public:
|
|||||||
void add_autoload_singleton(const String &p_name, const String &p_path);
|
void add_autoload_singleton(const String &p_name, const String &p_path);
|
||||||
void remove_autoload_singleton(const String &p_name);
|
void remove_autoload_singleton(const String &p_name);
|
||||||
|
|
||||||
void set_dir_cache(const String &p_dir) { _dir_cache = p_dir; }
|
|
||||||
String get_dir_cache() { return _dir_cache; }
|
|
||||||
Ref<ConfigFile> get_config();
|
|
||||||
|
|
||||||
void enable_plugin();
|
void enable_plugin();
|
||||||
void disable_plugin();
|
void disable_plugin();
|
||||||
|
|
||||||
|
@ -1216,7 +1216,7 @@ void EditorSettings::set_project_metadata(const String &p_section, const String
|
|||||||
String path = get_project_settings_dir().plus_file("project_metadata.cfg");
|
String path = get_project_settings_dir().plus_file("project_metadata.cfg");
|
||||||
Error err;
|
Error err;
|
||||||
err = cf->load(path);
|
err = cf->load(path);
|
||||||
ERR_FAIL_COND(err != OK);
|
ERR_FAIL_COND(err != OK && err != ERR_FILE_NOT_FOUND);
|
||||||
cf->set_value(p_section, p_key, p_data);
|
cf->set_value(p_section, p_key, p_data);
|
||||||
err = cf->save(path);
|
err = cf->save(path);
|
||||||
ERR_FAIL_COND(err != OK);
|
ERR_FAIL_COND(err != OK);
|
||||||
|
Loading…
Reference in New Issue
Block a user