summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
authorEv1lbl0w <ricasubtil@gmail.com>2021-05-19 22:34:33 +0100
committerEv1lbl0w <ricasubtil@gmail.com>2021-05-19 22:43:54 +0100
commit056deefa55fe90659ac3b13bde1b6df5f22c8aae (patch)
treee2ea4e8c9f13ba8020058544d3ddd1d2b9228f67 /editor
parentd0aaf4a1fd9e9943436ab6255a6d52257a794ce6 (diff)
Fix zip_root not being defined when importing by drag&drop
Diffstat (limited to 'editor')
-rw-r--r--editor/project_manager.cpp22
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;