diff options
author | Markus Sauermann <6299227+Sauermann@users.noreply.github.com> | 2022-12-20 07:08:42 +0100 |
---|---|---|
committer | Markus Sauermann <6299227+Sauermann@users.noreply.github.com> | 2022-12-22 06:59:47 +0100 |
commit | e4e13a404d79065df0c2b8c691fa61dae9f27106 (patch) | |
tree | 8e941957cf3edbfcf0fcdace0a5e39c72e6f503a /scene/gui | |
parent | dcb3754db09b7b8c35aae1fedbc485b91e9f9508 (diff) |
Add configuration warning when ButtonGroup is used with non-toggleable buttons
Also fix ambiguous documentation of ButtonGroup.
Diffstat (limited to 'scene/gui')
-rw-r--r-- | scene/gui/base_button.cpp | 12 | ||||
-rw-r--r-- | scene/gui/base_button.h | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/scene/gui/base_button.cpp b/scene/gui/base_button.cpp index ac9034c6fd..9da1fbda1b 100644 --- a/scene/gui/base_button.cpp +++ b/scene/gui/base_button.cpp @@ -300,6 +300,7 @@ void BaseButton::set_toggle_mode(bool p_on) { } toggle_mode = p_on; + update_configuration_warnings(); } bool BaseButton::is_toggle_mode() const { @@ -381,6 +382,7 @@ void BaseButton::set_button_group(const Ref<ButtonGroup> &p_group) { } queue_redraw(); //checkbox changes to radio if set a buttongroup + update_configuration_warnings(); } Ref<ButtonGroup> BaseButton::get_button_group() const { @@ -399,6 +401,16 @@ bool BaseButton::is_shortcut_feedback() const { return shortcut_feedback; } +PackedStringArray BaseButton::get_configuration_warnings() const { + PackedStringArray warnings = Control::get_configuration_warnings(); + + if (get_button_group().is_valid() && !is_toggle_mode()) { + warnings.push_back(RTR("ButtonGroup is intended to be used only with buttons that have toggle_mode set to true.")); + } + + return warnings; +} + void BaseButton::_bind_methods() { ClassDB::bind_method(D_METHOD("set_pressed", "pressed"), &BaseButton::set_pressed); ClassDB::bind_method(D_METHOD("is_pressed"), &BaseButton::is_pressed); diff --git a/scene/gui/base_button.h b/scene/gui/base_button.h index 3acf535f54..5018aea120 100644 --- a/scene/gui/base_button.h +++ b/scene/gui/base_button.h @@ -136,6 +136,8 @@ public: void set_shortcut_feedback(bool p_feedback); bool is_shortcut_feedback() const; + PackedStringArray get_configuration_warnings() const override; + BaseButton(); ~BaseButton(); }; |