summaryrefslogtreecommitdiff
path: root/scene/main
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2022-05-20 08:13:00 +0200
committerGitHub <noreply@github.com>2022-05-20 08:13:00 +0200
commita5109d49ce355c241db14622e0f03b6e0c1591ba (patch)
treecc4f345e101fa154488bbf917c8f2140f084a876 /scene/main
parent03218889d037cb2a807ae8565dbfe3c0a86fdf4f (diff)
parent82fdad148f129e9257a627c9fbcedc7694fcca38 (diff)
Merge pull request #61026 from timothyqiu/quit-prop
Make `auto_accept_quit` and `quit_on_go_back` properties
Diffstat (limited to 'scene/main')
-rw-r--r--scene/main/scene_tree.cpp12
-rw-r--r--scene/main/scene_tree.h3
2 files changed, 15 insertions, 0 deletions
diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp
index eca400ab02..b695dddf65 100644
--- a/scene/main/scene_tree.cpp
+++ b/scene/main/scene_tree.cpp
@@ -627,10 +627,18 @@ void SceneTree::_notification(int p_notification) {
}
}
+bool SceneTree::is_auto_accept_quit() const {
+ return accept_quit;
+}
+
void SceneTree::set_auto_accept_quit(bool p_enable) {
accept_quit = p_enable;
}
+bool SceneTree::is_quit_on_go_back() const {
+ return quit_on_go_back;
+}
+
void SceneTree::set_quit_on_go_back(bool p_enable) {
quit_on_go_back = p_enable;
}
@@ -1192,7 +1200,9 @@ void SceneTree::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_root"), &SceneTree::get_root);
ClassDB::bind_method(D_METHOD("has_group", "name"), &SceneTree::has_group);
+ ClassDB::bind_method(D_METHOD("is_auto_accept_quit"), &SceneTree::is_auto_accept_quit);
ClassDB::bind_method(D_METHOD("set_auto_accept_quit", "enabled"), &SceneTree::set_auto_accept_quit);
+ ClassDB::bind_method(D_METHOD("is_quit_on_go_back"), &SceneTree::is_quit_on_go_back);
ClassDB::bind_method(D_METHOD("set_quit_on_go_back", "enabled"), &SceneTree::set_quit_on_go_back);
ClassDB::bind_method(D_METHOD("set_debug_collisions_hint", "enable"), &SceneTree::set_debug_collisions_hint);
@@ -1255,6 +1265,8 @@ void SceneTree::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_multiplayer_poll_enabled", "enabled"), &SceneTree::set_multiplayer_poll_enabled);
ClassDB::bind_method(D_METHOD("is_multiplayer_poll_enabled"), &SceneTree::is_multiplayer_poll_enabled);
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "auto_accept_quit"), "set_auto_accept_quit", "is_auto_accept_quit");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "quit_on_go_back"), "set_quit_on_go_back", "is_quit_on_go_back");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "debug_collisions_hint"), "set_debug_collisions_hint", "is_debugging_collisions_hint");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "debug_navigation_hint"), "set_debug_navigation_hint", "is_debugging_navigation_hint");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "paused"), "set_pause", "is_paused");
diff --git a/scene/main/scene_tree.h b/scene/main/scene_tree.h
index bdcfd2d35a..cb5e9cc1ee 100644
--- a/scene/main/scene_tree.h
+++ b/scene/main/scene_tree.h
@@ -273,7 +273,10 @@ public:
virtual void finalize() override;
+ bool is_auto_accept_quit() const;
void set_auto_accept_quit(bool p_enable);
+
+ bool is_quit_on_go_back() const;
void set_quit_on_go_back(bool p_enable);
void quit(int p_exit_code = EXIT_SUCCESS);