diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2018-04-04 12:31:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-04 12:31:05 +0200 |
commit | d991e9932122ca21b970c4ea6b13f66b1fa7b67a (patch) | |
tree | b1ad87bd34a3e147b0e588f4c31d94e185b10025 | |
parent | 1d4b0751fee3bc2ea4169f15c1824178b384b56a (diff) | |
parent | 836565b2493b9f5b39c885cab35b40457604c306 (diff) |
Merge pull request #17816 from NikodemL/fix_file_show_in_explorer
FIX: FILE_SHOW_IN_EXPLORER now correctly shows the file's directory
-rw-r--r-- | editor/filesystem_dock.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index 9bfa50148f..f847382995 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -1034,8 +1034,19 @@ void FileSystemDock::_move_operation_confirm(const String &p_to_path) { void FileSystemDock::_file_option(int p_option) { switch (p_option) { case FILE_SHOW_IN_EXPLORER: { - String dir = ProjectSettings::get_singleton()->globalize_path(this->path); - OS::get_singleton()->shell_open(String("file://") + dir); + + String path = this->path; + + // first try to grab directory from selected file, so that it works for searched files + int idx = files->get_current(); + + if (idx >= 0 && idx < files->get_item_count()) { + path = files->get_item_metadata(idx); + path = path.get_base_dir(); + } + + path = ProjectSettings::get_singleton()->globalize_path(path); + OS::get_singleton()->shell_open(String("file://") + path); } break; case FILE_OPEN: { for (int i = 0; i < files->get_item_count(); i++) { |