Fix: Use per-window filter state for station list windows. #11532
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation / Problem
Multiple Station List windows can be opened, one for each company.
They each have their own filter state buttons at the top, however these were global variables so shared between windows. Changing filter state in one window affected filter state in other windows, but did not refresh the windows or cause the list to be invalidated.
Description
Given the filter buttons are per-window, make the filter state be per-window as well. This is loaded/saved when the window is opened/closed so that it is still persistent.
This requires adding an state parameter to the SortFunction part of GUIList, which defaults to void * when unused.
Limitations
(It would probably be less work to just make the filter state update all windows, but then having all the buttons per window, duplicating the state, is a bit weird.)
Checklist for review
Some things are not automated, and forgotten often. This list is a reminder for the reviewers.