summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2018-04-04 12:31:05 +0200
committerGitHub <noreply@github.com>2018-04-04 12:31:05 +0200
commitd991e9932122ca21b970c4ea6b13f66b1fa7b67a (patch)
treeb1ad87bd34a3e147b0e588f4c31d94e185b10025
parent1d4b0751fee3bc2ea4169f15c1824178b384b56a (diff)
parent836565b2493b9f5b39c885cab35b40457604c306 (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.cpp15
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++) {