diff options
| author | MillionOstrich <31486600+MillionOstrich@users.noreply.github.com> | 2017-10-01 23:24:49 +0100 |
|---|---|---|
| committer | MillionOstrich <31486600+MillionOstrich@users.noreply.github.com> | 2017-10-09 15:10:40 +0100 |
| commit | 40d1866b051f24b42e5de37c08b300214a0092a6 (patch) | |
| tree | ed9dc323d834196f804d236114f2efffb2938e76 /editor/filesystem_dock.cpp | |
| parent | 716e5b2943965688127d079bbdba91597907e483 (diff) | |
| download | redot-engine-40d1866b051f24b42e5de37c08b300214a0092a6.tar.gz | |
Rework DependencyRemoveDialog for deleting folders
DependencyRemoveDialog now takes two lists (files and folders) to delete.
Sort the folders above files in DependencyRemoveDialog & use some more icons.
Stop files which will be deleted from also being listed as having broken dependencies.
Add right-click option for removing folder to filesystem folder tree.
Diffstat (limited to 'editor/filesystem_dock.cpp')
| -rw-r--r-- | editor/filesystem_dock.cpp | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index 028ea395ce..d1b79cca17 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -937,26 +937,25 @@ void FileSystemDock::_file_option(int p_option) { rename_dialog_text->grab_focus(); } break; case FILE_REMOVE: { - - Vector<String> torem; + Vector<String> remove_files; + Vector<String> remove_folders; for (int i = 0; i < files->get_item_count(); i++) { - String path = files->get_item_metadata(i); - if (!files->is_selected(i)) - continue; - torem.push_back(path); + if (files->is_selected(i) && path != "res://") { + if (path.ends_with("/")) { + remove_folders.push_back(path); + } else { + remove_files.push_back(path); + } + } } - if (torem.empty()) { - EditorNode::get_singleton()->show_warning(TTR("No files selected!")); - break; + if (remove_files.size() + remove_folders.size() > 0) { + remove_dialog->show(remove_folders, remove_files); + //1) find if used + //2) warn } - - remove_dialog->show(torem); - //1) find if used - //2) warn - } break; case FILE_INFO: { @@ -1044,6 +1043,15 @@ void FileSystemDock::_folder_option(int p_option) { rename_dialog_text->grab_focus(); } } break; + case FOLDER_REMOVE: { + Vector<String> remove_folders; + Vector<String> remove_files; + String path = item->get_metadata(tree->get_selected_column()); + if (path != "res://") { + remove_folders.push_back(path); + remove_dialog->show(remove_folders, remove_files); + } + } break; case FOLDER_COPY_PATH: { String path = item->get_metadata(tree->get_selected_column()); OS::get_singleton()->set_clipboard(path); @@ -1099,6 +1107,7 @@ void FileSystemDock::_dir_rmb_pressed(const Vector2 &p_pos) { if (fpath != "res://") { folder_options->add_item(TTR("Rename.."), FOLDER_RENAME); folder_options->add_item(TTR("Move To.."), FOLDER_MOVE); + folder_options->add_item(TTR("Delete"), FOLDER_REMOVE); } folder_options->add_separator(); folder_options->add_item(TTR("Show In File Manager"), FOLDER_SHOW_IN_EXPLORER); |
