diff options
author | sanikoyes <sanikoyes@163.com> | 2016-03-17 12:30:13 +0800 |
---|---|---|
committer | sanikoyes <sanikoyes@163.com> | 2016-03-17 12:30:13 +0800 |
commit | 174b9a5f9e2382508df320f6ee1188fd3572c44b (patch) | |
tree | 0c993c88a292b308a523d3b79f46252c586af347 /tools/editor/plugins | |
parent | 5b67305ebb466cea3b767d4abd2f360ebadf3414 (diff) |
Allow select multiple files in ResourcePreloaderEditor
Diffstat (limited to 'tools/editor/plugins')
-rw-r--r-- | tools/editor/plugins/resource_preloader_editor_plugin.cpp | 58 | ||||
-rw-r--r-- | tools/editor/plugins/resource_preloader_editor_plugin.h | 2 |
2 files changed, 32 insertions, 28 deletions
diff --git a/tools/editor/plugins/resource_preloader_editor_plugin.cpp b/tools/editor/plugins/resource_preloader_editor_plugin.cpp index 442046b069..5b9a096c77 100644 --- a/tools/editor/plugins/resource_preloader_editor_plugin.cpp +++ b/tools/editor/plugins/resource_preloader_editor_plugin.cpp @@ -60,36 +60,40 @@ void ResourcePreloaderEditor::_notification(int p_what) { } } -void ResourcePreloaderEditor::_file_load_request(const String& p_path) { +void ResourcePreloaderEditor::_files_load_request(const Vector<String>& p_path) { + for(int i=0;i<p_path.size();i++) { - RES resource; + String path = p_path[i]; - resource = ResourceLoader::load(p_path); + RES resource; + resource = ResourceLoader::load(path); - if (resource.is_null()) { - dialog->set_text("ERROR: Couldn't load resource!"); - dialog->set_title("Error!"); - //dialog->get_cancel()->set_text("Close"); - dialog->get_ok()->set_text("Close"); - dialog->popup_centered_minsize(); - return; ///beh should show an error i guess - } + if (resource.is_null()) { + dialog->set_text("ERROR: Couldn't load resource!"); + dialog->set_title("Error!"); + //dialog->get_cancel()->set_text("Close"); + dialog->get_ok()->set_text("Close"); + dialog->popup_centered_minsize(); + return; ///beh should show an error i guess + } - String basename = p_path.get_file().basename(); - String name=basename; - int counter=1; - while(preloader->has_resource(name)) { - counter++; - name=basename+" "+itos(counter); - } - undo_redo->create_action("Add Resource"); - undo_redo->add_do_method(preloader,"add_resource",name,resource); - undo_redo->add_undo_method(preloader,"remove_resource",name); - undo_redo->add_do_method(this,"_update_library"); - undo_redo->add_undo_method(this,"_update_library"); - undo_redo->commit_action(); + String basename = path.get_file().basename(); + String name=basename; + int counter=1; + while(preloader->has_resource(name)) { + counter++; + name=basename+" "+itos(counter); + } + + undo_redo->create_action("Add Resource"); + undo_redo->add_do_method(preloader,"add_resource",name,resource); + undo_redo->add_undo_method(preloader,"remove_resource",name); + undo_redo->add_do_method(this,"_update_library"); + undo_redo->add_undo_method(this,"_update_library"); + undo_redo->commit_action(); + } } void ResourcePreloaderEditor::_load_pressed() { @@ -102,7 +106,7 @@ void ResourcePreloaderEditor::_load_pressed() { for(int i=0;i<extensions.size();i++) file->add_filter("*."+extensions[i]); - file->set_mode(EditorFileDialog::MODE_OPEN_FILE); + file->set_mode(EditorFileDialog::MODE_OPEN_FILES); file->popup_centered_ratio(); @@ -283,7 +287,7 @@ void ResourcePreloaderEditor::_bind_methods() { ObjectTypeDB::bind_method(_MD("_delete_pressed"),&ResourcePreloaderEditor::_delete_pressed); ObjectTypeDB::bind_method(_MD("_paste_pressed"),&ResourcePreloaderEditor::_paste_pressed); ObjectTypeDB::bind_method(_MD("_delete_confirm_pressed"),&ResourcePreloaderEditor::_delete_confirm_pressed); - ObjectTypeDB::bind_method(_MD("_file_load_request"),&ResourcePreloaderEditor::_file_load_request); + ObjectTypeDB::bind_method(_MD("_files_load_request"),&ResourcePreloaderEditor::_files_load_request); ObjectTypeDB::bind_method(_MD("_update_library"),&ResourcePreloaderEditor::_update_library); } @@ -330,7 +334,7 @@ ResourcePreloaderEditor::ResourcePreloaderEditor() { load->connect("pressed", this,"_load_pressed"); _delete->connect("pressed", this,"_delete_pressed"); paste->connect("pressed", this,"_paste_pressed"); - file->connect("file_selected", this,"_file_load_request"); + file->connect("files_selected", this,"_files_load_request"); //dialog->connect("confirmed", this,"_delete_confirm_pressed"); tree->connect("item_edited", this,"_item_edited"); loading_scene=false; diff --git a/tools/editor/plugins/resource_preloader_editor_plugin.h b/tools/editor/plugins/resource_preloader_editor_plugin.h index 53436797a9..756fefeb04 100644 --- a/tools/editor/plugins/resource_preloader_editor_plugin.h +++ b/tools/editor/plugins/resource_preloader_editor_plugin.h @@ -58,7 +58,7 @@ class ResourcePreloaderEditor : public PanelContainer { void _load_pressed(); void _load_scene_pressed(); - void _file_load_request(const String& p_path); + void _files_load_request(const Vector<String>& p_path); void _paste_pressed(); void _delete_pressed(); void _delete_confirm_pressed(); |