From 2adac53461b62d3f1aa30b496759451555c5361e Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Sat, 14 Jul 2018 12:02:44 +1100 Subject: [PATCH] GUI2/Tree View: use NOTIFY_MODIFIED events instead of manual callbacks Unlike other widgets where `this` is the event target, the tree nodes fire the event with the tree widget itself as the target. I had added a fire-event call in f97dc8ae12be1b8982ab87b748266f915a84e15d, but with the target as the node. I don't think there was any way that would have worked... changed. --- src/gui/dialogs/campaign_selection.cpp | 3 ++- src/gui/dialogs/gamestate_inspector.cpp | 3 ++- src/gui/dialogs/help_browser.cpp | 3 ++- src/gui/widgets/tree_view.cpp | 1 - src/gui/widgets/tree_view.hpp | 7 ------- src/gui/widgets/tree_view_node.cpp | 10 +++------- src/scripting/lua_gui2.cpp | 2 +- 7 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/gui/dialogs/campaign_selection.cpp b/src/gui/dialogs/campaign_selection.cpp index c31b1c51303e..4c9584b29ac9 100644 --- a/src/gui/dialogs/campaign_selection.cpp +++ b/src/gui/dialogs/campaign_selection.cpp @@ -249,7 +249,8 @@ void campaign_selection::pre_show(window& window) /***** Setup campaign tree. *****/ tree_view& tree = find_widget(&window, "campaign_tree", false); - tree.set_selection_change_callback(std::bind(&campaign_selection::campaign_selected, this, std::ref(window))); + connect_signal_notify_modified(tree, + std::bind(&campaign_selection::campaign_selected, this, std::ref(window))); toggle_button& sort_name = find_widget(&window, "sort_name", false); toggle_button& sort_time = find_widget(&window, "sort_time", false); diff --git a/src/gui/dialogs/gamestate_inspector.cpp b/src/gui/dialogs/gamestate_inspector.cpp index b8acc69b4d7a..86ad3c4206e2 100644 --- a/src/gui/dialogs/gamestate_inspector.cpp +++ b/src/gui/dialogs/gamestate_inspector.cpp @@ -398,7 +398,8 @@ class gamestate_inspector::controller auto left_button = find_widget