diff options
author | Eoin O'Neill <eoinoneill1991@gmail.com> | 2018-04-25 00:18:10 -0700 |
---|---|---|
committer | Eoin O'Neill <eoinoneill1991@gmail.com> | 2018-04-27 22:55:48 -0700 |
commit | af1e2c7b213101af21d5dcdff28ed1c2976e5d02 (patch) | |
tree | cc410e799736d3f26a97efe6c80f434ba8efe63f | |
parent | b22f048700105dec26154cc90f10b0ef34b3f5ed (diff) |
Basic 'new script' feature added to File System browser
-rw-r--r-- | editor/filesystem_dock.cpp | 15 | ||||
-rw-r--r-- | editor/filesystem_dock.h | 3 |
2 files changed, 18 insertions, 0 deletions
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index ada35073ec..84657c6eb1 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -1237,6 +1237,15 @@ void FileSystemDock::_file_option(int p_option) { make_dir_dialog->popup_centered_minsize(Size2(250, 80) * EDSCALE); make_dir_dialog_text->grab_focus(); } break; + case FILE_NEW_SCRIPT: { + String tarDir = path; + if (tarDir != "res://" && !tarDir.ends_with("/")) { + tarDir += "/"; + } + + make_script_dialog_text->config("Node", tarDir + "new_script.gd"); + make_script_dialog_text->popup_centered(Size2(300, 300) * EDSCALE); + } break; case FILE_COPY_PATH: { int idx = files->get_current(); if (idx < 0 || idx >= files->get_item_count()) @@ -1662,6 +1671,7 @@ void FileSystemDock::_files_list_rmb_select(int p_item, const Vector2 &p_pos) { } file_options->add_item(TTR("New Folder..."), FILE_NEW_FOLDER); + file_options->add_item(TTR("New Script..."), FILE_NEW_SCRIPT); file_options->add_item(TTR("Show In File Manager"), FILE_SHOW_IN_EXPLORER); file_options->set_position(files->get_global_position() + p_pos); @@ -1673,6 +1683,7 @@ void FileSystemDock::_rmb_pressed(const Vector2 &p_pos) { file_options->set_size(Size2(1, 1)); file_options->add_item(TTR("New Folder..."), FILE_NEW_FOLDER); + file_options->add_item(TTR("New Script..."), FILE_NEW_SCRIPT); file_options->add_item(TTR("Show In File Manager"), FILE_SHOW_IN_EXPLORER); file_options->set_position(files->get_global_position() + p_pos); file_options->popup(); @@ -1988,6 +1999,10 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { make_dir_dialog->register_text_enter(make_dir_dialog_text); make_dir_dialog->connect("confirmed", this, "_make_dir_confirm"); + make_script_dialog_text = memnew(ScriptCreateDialog); + make_script_dialog_text->set_title(TTR("Create Script")); + add_child(make_script_dialog_text); + updating_tree = false; initialized = false; import_dock_needs_update = false; diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h index c8448a1022..e59d4c96e1 100644 --- a/editor/filesystem_dock.h +++ b/editor/filesystem_dock.h @@ -50,6 +50,7 @@ #include "dependency_editor.h" #include "editor_dir_dialog.h" #include "editor_file_system.h" +#include "script_create_dialog.h" class EditorNode; @@ -75,6 +76,7 @@ private: FILE_REIMPORT, FILE_INFO, FILE_NEW_FOLDER, + FILE_NEW_SCRIPT, FILE_SHOW_IN_EXPLORER, FILE_COPY_PATH }; @@ -126,6 +128,7 @@ private: LineEdit *duplicate_dialog_text; ConfirmationDialog *make_dir_dialog; LineEdit *make_dir_dialog_text; + ScriptCreateDialog *make_script_dialog_text; class FileOrFolder { public: |