# HG changeset patch # User frosch # Date 2011-03-13 21:34:21 # Node ID 4dbb8b190ff9680325cd6c91a067f7dc9c5d00a4 # Parent fa20f7edaf1f9543ad1654b5aeee92e00f25ccaa (svn r22247) -Codechange: Update comments wrt. ForceRebuild() in command-scope. diff --git a/src/autoreplace_gui.cpp b/src/autoreplace_gui.cpp --- a/src/autoreplace_gui.cpp +++ b/src/autoreplace_gui.cpp @@ -498,8 +498,8 @@ public: */ virtual void OnInvalidateData(int data = 0, bool gui_scope = true) { - if (!gui_scope) return; if (data != 0) { + /* This needs to be done in command-scope to enforce rebuilding before resorting invalid data */ this->engines[0].ForceRebuild(); } else { this->engines[1].ForceRebuild(); diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -642,7 +642,6 @@ struct DepotWindow : Window { */ virtual void OnInvalidateData(int data = 0, bool gui_scope = true) { - if (!gui_scope) return; this->generate_list = true; } diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp --- a/src/graph_gui.cpp +++ b/src/graph_gui.cpp @@ -1272,8 +1272,8 @@ public: */ virtual void OnInvalidateData(int data = 0, bool gui_scope = true) { - if (!gui_scope) return; if (data == 0) { + /* This needs to be done in command-scope to enforce rebuilding before resorting invalid data */ this->companies.ForceRebuild(); } else { this->companies.ForceResort(); diff --git a/src/group_gui.cpp b/src/group_gui.cpp --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -260,11 +260,8 @@ public: */ virtual void OnInvalidateData(int data = 0, bool gui_scope = true) { - if (!gui_scope) return; - /* We can only set the trigger for resorting/rebuilding. - * We cannot safely resort at this point, as there might be multiple scheduled invalidations, - * and a rebuild needs to be done first though it is scheduled later. */ if (data == 0) { + /* This needs to be done in command-scope to enforce rebuilding before resorting invalid data */ this->vehicles.ForceRebuild(); this->groups.ForceRebuild(); } else { @@ -272,6 +269,7 @@ public: this->groups.ForceResort(); } + /* Process ID-invalidation in command-scope as well */ if (this->group_rename != INVALID_GROUP && !Group::IsValidID(this->group_rename)) { DeleteWindowByClass(WC_QUERY_STRING); this->group_rename = INVALID_GROUP; diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -1365,11 +1365,8 @@ public: */ virtual void OnInvalidateData(int data = 0, bool gui_scope = true) { - if (!gui_scope) return; - /* We can only set the trigger for resorting/rebuilding. - * We cannot safely resort at this point, as there might be multiple scheduled invalidations, - * and a rebuild needs to be done first though it is scheduled later. */ if (data == 0) { + /* This needs to be done in command-scope to enforce rebuilding before resorting invalid data */ this->industries.ForceRebuild(); } else { this->industries.ForceResort(); diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -801,7 +801,6 @@ public: */ virtual void OnInvalidateData(int data = 0, bool gui_scope = true) { - if (!gui_scope) return; if (data == 1) { this->server = NULL; this->list_pos = SLP_INVALID; diff --git a/src/signs_gui.cpp b/src/signs_gui.cpp --- a/src/signs_gui.cpp +++ b/src/signs_gui.cpp @@ -374,15 +374,11 @@ struct SignListWindow : QueryStringBaseW */ virtual void OnInvalidateData(int data = 0, bool gui_scope = true) { - if (!gui_scope) return; /* When there is a filter string, we always need to rebuild the list even if * the amount of signs in total is unchanged, as the subset of signs that is - * accepted by the filter might has changed. - * - * We can only set the trigger for resorting/rebuilding. - * We cannot safely resort at this point, as there might be multiple scheduled invalidations, - * and a rebuild needs to be done first though it is scheduled later. */ + * accepted by the filter might has changed. */ if (data == 0 || !StrEmpty(this->filter_string)) { // New or deleted sign, or there is a filter string + /* This needs to be done in command-scope to enforce rebuilding before resorting invalid data */ this->signs.ForceRebuild(); } else { // Change of sign contents while there is no filter string this->signs.ForceResort(); diff --git a/src/station_gui.cpp b/src/station_gui.cpp --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -694,11 +694,8 @@ public: */ virtual void OnInvalidateData(int data = 0, bool gui_scope = true) { - if (!gui_scope) return; - /* We can only set the trigger for resorting/rebuilding. - * We cannot safely resort at this point, as there might be multiple scheduled invalidations, - * and a rebuild needs to be done first though it is scheduled later. */ if (data == 0) { + /* This needs to be done in command-scope to enforce rebuilding before resorting invalid data */ this->stations.ForceRebuild(); } else { this->stations.ForceResort(); diff --git a/src/town_gui.cpp b/src/town_gui.cpp --- a/src/town_gui.cpp +++ b/src/town_gui.cpp @@ -876,11 +876,8 @@ public: */ virtual void OnInvalidateData(int data = 0, bool gui_scope = true) { - if (!gui_scope) return; - /* We can only set the trigger for resorting/rebuilding. - * We cannot safely resort at this point, as there might be multiple scheduled invalidations, - * and a rebuild needs to be done first though it is scheduled later. */ if (data == 0) { + /* This needs to be done in command-scope to enforce rebuilding before resorting invalid data */ this->towns.ForceRebuild(); } else { this->towns.ForceResort(); diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -1616,12 +1616,9 @@ public: this->vehicles.ForceRebuild(); return; } - if (!gui_scope) return; - - /* We can only set the trigger for resorting/rebuilding. - * We cannot safely resort at this point, as there might be multiple scheduled invalidations, - * and a rebuild needs to be done first though it is scheduled later. */ + if (data == 0) { + /* This needs to be done in command-scope to enforce rebuilding before resorting invalid data */ this->vehicles.ForceRebuild(); } else { this->vehicles.ForceResort();