summaryrefslogtreecommitdiff
path: root/core/bind
diff options
context:
space:
mode:
authorHugo Locurcio <hugo.locurcio@hugo.pro>2020-04-28 19:25:02 +0200
committerHugo Locurcio <hugo.locurcio@hugo.pro>2020-04-28 19:37:09 +0200
commitd46e411b4475ffd5cc6871b5e5dc70150d930164 (patch)
treeda318ac5a5e81ecf3ad991af24c3884000e3f8f7 /core/bind
parentabf5132a32bec9d80ce711b22476170fd18edfdc (diff)
Warn when trying to open `res://` or `user://` with `OS.shell_open()`
`OS.shell_open()` will pass on the path directly to the OS' shell handler (which can handle file paths or URLs). It can't handle Godot-specific paths, so these need to be converted with `ProjectSettings.globalize_path()` first.
Diffstat (limited to 'core/bind')
-rw-r--r--core/bind/core_bind.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp
index e8955c05df..e2774deb3c 100644
--- a/core/bind/core_bind.cpp
+++ b/core/bind/core_bind.cpp
@@ -237,6 +237,11 @@ String _OS::get_executable_path() const {
Error _OS::shell_open(String p_uri) {
+ if (p_uri.begins_with("res://")) {
+ WARN_PRINT("Attempting to open an URL with the \"res://\" protocol. Use `ProjectSettings.globalize_path()` to convert a Godot-specific path to a system path before opening it with `OS.shell_open()`.");
+ } else if (p_uri.begins_with("user://")) {
+ WARN_PRINT("Attempting to open an URL with the \"user://\" protocol. Use `ProjectSettings.globalize_path()` to convert a Godot-specific path to a system path before opening it with `OS.shell_open()`.");
+ }
return OS::get_singleton()->shell_open(p_uri);
};