diff options
Diffstat (limited to 'editor/project_manager.cpp')
-rw-r--r-- | editor/project_manager.cpp | 42 |
1 files changed, 11 insertions, 31 deletions
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index 1a4a36fa18..f2c04fe785 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -50,19 +50,6 @@ #include "scene/gui/tool_button.h" #include "version.h" -static String _find_project_file(DirAccess *p_da) { - p_da->list_dir_begin(); - while (true) { - String f = p_da->get_next(); - if (f == "") - break; - if (f.get_extension() == "godot") - return p_da->get_current_dir() + "/" + f; - } - p_da->list_dir_end(); - return ""; -} - class NewProjectDialog : public ConfirmationDialog { GDCLASS(NewProjectDialog, ConfirmationDialog); @@ -105,18 +92,18 @@ private: if (mode != MODE_IMPORT) { - if (_find_project_file(d) != "") { + if (d->file_exists("godot.cfg")) { - error->set_text(TTR("Invalid project path, *.godot must not exist.")); + error->set_text(TTR("Invalid project path, godot.cfg must not exist.")); memdelete(d); return ""; } } else { - if (valid_path != "" && _find_project_file(d) == "") { + if (valid_path != "" && !d->file_exists("godot.cfg")) { - error->set_text(TTR("Invalid project path, *.godot must exist.")); + error->set_text(TTR("Invalid project path, godot.cfg must exist.")); memdelete(d); return ""; } @@ -149,7 +136,7 @@ private: String p = p_path; if (mode == MODE_IMPORT) { - if (p.get_extension() == "godot") { + if (p.ends_with("godot.cfg")) { p = p.get_base_dir(); } @@ -175,7 +162,7 @@ private: fdialog->set_mode(FileDialog::MODE_OPEN_FILE); fdialog->clear_filters(); - fdialog->add_filter("*.godot ; " _MKSTR(VERSION_NAME) " Project"); + fdialog->add_filter("godot.cfg ; " _MKSTR(VERSION_NAME) " Project"); } else { fdialog->set_mode(FileDialog::MODE_OPEN_DIR); } @@ -199,9 +186,9 @@ private: } else { if (mode == MODE_NEW) { - FileAccess *f = FileAccess::open(dir.plus_file("/" + project_name->get_text().replace(" ", "_") + ".godot"), FileAccess::WRITE); + FileAccess *f = FileAccess::open(dir.plus_file("/godot.cfg"), FileAccess::WRITE); if (!f) { - error->set_text(TTR("Couldn't create *.godot project file in project path.")); + error->set_text(TTR("Couldn't create godot.cfg in project path.")); } else { f->store_line("; Engine configuration file."); @@ -754,17 +741,10 @@ void ProjectManager::_load_recent_projects() { continue; String project = _name.get_slice("/", 1); - DirAccess *dir_access = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); - if (dir_access->change_dir(path) != OK) { - EditorSettings::get_singleton()->erase(_name); - continue; - } - String conf = _find_project_file(dir_access); - memdelete(dir_access); + String conf = path.plus_file("godot.cfg"); bool favorite = (_name.begins_with("favorite_projects/")) ? true : false; uint64_t last_modified = 0; - if (FileAccess::exists(conf)) { last_modified = FileAccess::get_modified_time(conf); @@ -1026,7 +1006,7 @@ void ProjectManager::_scan_dir(DirAccess *da, float pos, float total, List<Strin while (n != String()) { if (da->current_is_dir() && !n.begins_with(".")) { subdirs.push_front(n); - } else if (n.get_extension() == "godot") { + } else if (n == "godot.cfg") { r_projects->push_back(da->get_current_dir()); } n = da->get_next(); @@ -1137,7 +1117,7 @@ void ProjectManager::_files_dropped(PoolStringArray p_files, int p_screen) { dir->list_dir_begin(); String file = dir->get_next(); while (confirm && file != String()) { - if (!dir->current_is_dir() && file.get_extension() == "godot") { + if (!dir->current_is_dir() && file.ends_with("godot.cfg")) { confirm = false; } file = dir->get_next(); |