Merge pull request #79087 from Daylily-Zeleen/daylily-zeleen/fix_shell_show_in_file_manager
Fix the fallback logic of `OS::shell_show_in_file_manager`.
This commit is contained in:
commit
8a84a3914e
@ -295,12 +295,14 @@ Error OS::shell_open(String p_uri) {
|
||||
}
|
||||
|
||||
Error OS::shell_show_in_file_manager(String p_path, bool p_open_folder) {
|
||||
if (!p_path.begins_with("file://")) {
|
||||
p_path = String("file://") + p_path;
|
||||
}
|
||||
if (!p_path.ends_with("/")) {
|
||||
p_path = p_path.trim_prefix("file://");
|
||||
|
||||
if (!DirAccess::dir_exists_absolute(p_path)) {
|
||||
p_path = p_path.get_base_dir();
|
||||
}
|
||||
|
||||
p_path = String("file://") + p_path;
|
||||
|
||||
return shell_open(p_path);
|
||||
}
|
||||
// implement these with the canvas?
|
||||
|
@ -657,7 +657,7 @@
|
||||
Requests the OS to open the file manager, then navigate to the given [param file_or_dir_path] and select the target file or folder.
|
||||
If [param file_or_dir_path] is a valid directory path, and [param open_folder] is [code]true[/code], the method will open the file manager and enter the target folder without selecting anything.
|
||||
Use [method ProjectSettings.globalize_path] to convert a [code]res://[/code] or [code]user://[/code] path into a system path for use with this method.
|
||||
[b]Note:[/b] Currently this method is only implemented on Windows. On other platforms, it will fallback to [method shell_open] with a directory path for [param file_or_dir_path].
|
||||
[b]Note:[/b] Currently this method is only implemented on Windows and macOS. On other platforms, it will fallback to [method shell_open] with a directory path of [param file_or_dir_path] with prefix [code]file://[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="unset_environment" qualifiers="const">
|
||||
|
Loading…
Reference in New Issue
Block a user