From 2a1c1a81fcf1972a2dbf58c7115b70e1b2a461d3 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Wed, 23 Aug 2017 15:57:29 +1100 Subject: [PATCH] GUI2: convert uses of 'state changed' callbacks to NOTIFY_MODIFIED signal handlers --- src/gui/auxiliary/field.hpp | 2 +- src/gui/dialogs/campaign_selection.cpp | 8 +++-- src/gui/dialogs/drop_down_menu.cpp | 2 +- src/gui/dialogs/editor/resize_map.cpp | 5 ++- src/gui/dialogs/label_settings.cpp | 3 +- src/gui/dialogs/lobby/lobby.cpp | 33 +++++++++++-------- src/gui/dialogs/lobby/lobby.hpp | 4 +-- .../dialogs/multiplayer/mp_create_game.cpp | 2 +- .../dialogs/multiplayer/mp_options_helper.cpp | 3 +- src/gui/dialogs/preferences_dialog.cpp | 8 +++-- src/gui/widgets/generator.cpp | 6 ++-- src/gui/widgets/group.hpp | 2 +- src/gui/widgets/listbox.cpp | 17 ++++++++-- src/gui/widgets/toggle_button.cpp | 2 -- src/scripting/lua_gui2.cpp | 2 +- 15 files changed, 62 insertions(+), 37 deletions(-) diff --git a/src/gui/auxiliary/field.hpp b/src/gui/auxiliary/field.hpp index d1a3cb42f8f1..974c2ca06ade 100644 --- a/src/gui/auxiliary/field.hpp +++ b/src/gui/auxiliary/field.hpp @@ -579,7 +579,7 @@ class field_bool : public field callback_change_(*widget); } - dynamic_cast(widget)->set_callback_state_change(callback_change_); + connect_signal_notify_modified(*widget, std::bind(callback_change_, _1)); } } } diff --git a/src/gui/dialogs/campaign_selection.cpp b/src/gui/dialogs/campaign_selection.cpp index b6dac88ee877..f90a06df2364 100644 --- a/src/gui/dialogs/campaign_selection.cpp +++ b/src/gui/dialogs/campaign_selection.cpp @@ -191,8 +191,12 @@ void campaign_selection::pre_show(window& window) toggle_button& sort_name = find_widget(&window, "sort_name", false); toggle_button& sort_time = find_widget(&window, "sort_time", false); - sort_name.set_callback_state_change(std::bind(&campaign_selection::toggle_sorting_selection, this, std::ref(window), NAME)); - sort_time.set_callback_state_change(std::bind(&campaign_selection::toggle_sorting_selection, this, std::ref(window), DATE)); + + connect_signal_notify_modified(sort_name, + std::bind(&campaign_selection::toggle_sorting_selection, this, std::ref(window), NAME)); + + connect_signal_notify_modified(sort_time, + std::bind(&campaign_selection::toggle_sorting_selection, this, std::ref(window), DATE)); window.keyboard_capture(&tree); diff --git a/src/gui/dialogs/drop_down_menu.cpp b/src/gui/dialogs/drop_down_menu.cpp index 55154417d00c..19f519ff3fe9 100644 --- a/src/gui/dialogs/drop_down_menu.cpp +++ b/src/gui/dialogs/drop_down_menu.cpp @@ -154,7 +154,7 @@ void drop_down_menu::pre_show(window& window) checkbox->set_value_bool(entry["checkbox"].to_bool(false)); if(callback_toggle_state_change_ != nullptr) { - checkbox->set_callback_state_change(std::bind(callback_toggle_state_change_)); + connect_signal_notify_modified(*checkbox, std::bind(callback_toggle_state_change_)); } grid* mi_grid = dynamic_cast(new_row.find("menu_item", false)); diff --git a/src/gui/dialogs/editor/resize_map.cpp b/src/gui/dialogs/editor/resize_map.cpp index 4ede2a9bace4..072548637e7e 100644 --- a/src/gui/dialogs/editor/resize_map.cpp +++ b/src/gui/dialogs/editor/resize_map.cpp @@ -128,9 +128,8 @@ void editor_resize_map::pre_show(window& window) direction_buttons_[i] = find_widget(&window, name, false, true); - direction_buttons_[i]->set_callback_state_change( - dialog_callback); + connect_signal_notify_modified(*direction_buttons_[i], + std::bind(&editor_resize_map::update_expand_direction, this, std::ref(window))); } direction_buttons_[0]->set_value(true); update_expand_direction(window); diff --git a/src/gui/dialogs/label_settings.cpp b/src/gui/dialogs/label_settings.cpp index f905385577d5..01fa09aae91c 100644 --- a/src/gui/dialogs/label_settings.cpp +++ b/src/gui/dialogs/label_settings.cpp @@ -103,7 +103,8 @@ void label_settings::pre_show(window& window) { toggle_button& status = find_widget(grid, "cat_status", false); status.set_value(visible); - status.set_callback_state_change(std::bind(&label_settings::toggle_category, this, _1, category)); + + connect_signal_notify_modified(status, std::bind(&label_settings::toggle_category, this, _1, category)); if(category.substr(0,5) == "side:") { label& cat_name = find_widget