From 8331cdb64ca05259dadbb458cbb4d4f8c212b21e Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Wed, 23 Aug 2017 16:06:40 +1100 Subject: [PATCH] GUI2/Unit Create: show type details based on currently selected gender --- src/gui/dialogs/unit_create.cpp | 16 ++++++++++++++-- src/gui/dialogs/unit_create.hpp | 2 ++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/gui/dialogs/unit_create.cpp b/src/gui/dialogs/unit_create.cpp index 6b60497d4e58..2da5d4e8cb7d 100644 --- a/src/gui/dialogs/unit_create.cpp +++ b/src/gui/dialogs/unit_create.cpp @@ -181,6 +181,17 @@ void unit_create::post_show(window& window) last_gender = gender_; } +void unit_create::update_displayed_type() const +{ + window* w = get_window(); + + const int selected_row + = find_widget(w, "unit_type_list", false).get_selected_row(); + + find_widget(w, "unit_details", false) + .set_displayed_type(units_[selected_row]->get_gender_unit_type(gender_)); +} + void unit_create::list_item_clicked(window& window) { const int selected_row @@ -190,8 +201,7 @@ void unit_create::list_item_clicked(window& window) return; } - find_widget(&window, "unit_details", false) - .set_displayed_type(*units_[selected_row]); + update_displayed_type(); gender_toggle.set_members_enabled([&](const unit_race::GENDER& gender)->bool { return units_[selected_row]->has_gender_variation(gender); @@ -247,6 +257,8 @@ void unit_create::filter_text_changed(text_box_base* textbox, const std::string& void unit_create::gender_toggle_callback(window&) { gender_ = gender_toggle.get_active_member_value(); + + update_displayed_type(); } } // namespace dialogs } // namespace gui2 diff --git a/src/gui/dialogs/unit_create.hpp b/src/gui/dialogs/unit_create.hpp index 29e08d3d0c58..978cba613a31 100644 --- a/src/gui/dialogs/unit_create.hpp +++ b/src/gui/dialogs/unit_create.hpp @@ -78,6 +78,8 @@ class unit_create : public modal_dialog void filter_text_changed(text_box_base* textbox, const std::string& text); void gender_toggle_callback(window& window); + void update_displayed_type() const; + group gender_toggle; }; } // namespace dialogs