diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2016-03-18 14:27:31 +0100 |
---|---|---|
committer | Rémi Verschelde <remi@verschelde.fr> | 2016-03-18 14:27:31 +0100 |
commit | 15ba4d34c5040532b7926f6cfe670d081fee79b1 (patch) | |
tree | 6a98501a69ebb937aed00f2fbf2b86227c6915e4 | |
parent | 0e1ae3b3819a26bcf67789802107cb9ca3f414e7 (diff) | |
parent | e13e343c9ceac6be272347f5aba5e3fc59d63fba (diff) |
Merge pull request #4077 from sanikoyes/Pr-resourcepreloader-multiple-select
Allow select multiple files in ResourcePreloaderEditor
-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..0459ed85bd 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_paths) { + for(int i=0;i<p_paths.size();i++) { - RES resource; + String path = p_paths[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..0bc94079a5 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_paths); void _paste_pressed(); void _delete_pressed(); void _delete_confirm_pressed(); |