diff options
author | Ev1lbl0w <ricasubtil@gmail.com> | 2021-05-19 22:34:33 +0100 |
---|---|---|
committer | Ev1lbl0w <ricasubtil@gmail.com> | 2021-05-19 22:43:54 +0100 |
commit | 056deefa55fe90659ac3b13bde1b6df5f22c8aae (patch) | |
tree | e2ea4e8c9f13ba8020058544d3ddd1d2b9228f67 /editor | |
parent | d0aaf4a1fd9e9943436ab6255a6d52257a794ce6 (diff) |
Fix zip_root not being defined when importing by drag&drop
Diffstat (limited to 'editor')
-rw-r--r-- | editor/project_manager.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index 1ffe4853a0..2d0ff24723 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -100,7 +100,6 @@ private: FileDialog *fdialog_install; String zip_path; String zip_title; - String zip_root; AcceptDialog *dialog_error; String fav_dir; @@ -201,9 +200,7 @@ private: char fname[16384]; ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0); - String fname_str = String(fname); - if (fname_str.ends_with("project.godot")) { - zip_root = fname_str.substr(0, fname_str.rfind("project.godot")); + if (String(fname).ends_with("project.godot")) { break; } @@ -524,7 +521,24 @@ private: return; } + // Find the zip_root + String zip_root; int ret = unzGoToFirstFile(pkg); + while (ret == UNZ_OK) { + unz_file_info info; + char fname[16384]; + unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0); + + String name = fname; + if (name.ends_with("project.godot")) { + zip_root = name.substr(0, name.rfind("project.godot")); + break; + } + + ret = unzGoToNextFile(pkg); + } + + ret = unzGoToFirstFile(pkg); Vector<String> failed_files; |