fix: store the window's own filter in Session Files, not the global list - #682
Merged
Conversation
A Session File used to save a copy of the whole global filter list (Settings.FilterList) as its FilterParamsList, while load only ever restored [0]. Sessions were therefore not self-contained: what an .lxp "remembered" as its filter was whatever the global list happened to hold at save time, and the window's actual filter was restored only if it happened to be that list's first entry. The copy was shallow too, so the pre-save IsFilterTail write aliased into the shared global entry. The snapshot now carries the window's own _filterParams. The on-disk shape is unchanged - FilterParamsList stays a list, holding exactly one entry - and load still reads [0], so existing Session Files (JSON and legacy XML alike) keep loading exactly as before; their trailing entries, which nothing ever restored, are dropped on the next save. Adds Window Filter / Saved Filter List to the glossary, since the change turns on exactly that distinction. Closes #666
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
A Session File used to save a copy of the whole global filter list (Settings.FilterList) as its FilterParamsList, while load only ever restored [0]. Sessions were therefore not self-contained: what an .lxp "remembered" as its filter was whatever the global list happened to hold at save time, and the window's actual filter was restored only if it happened to be that list's first entry. The copy was shallow too, so the pre-save IsFilterTail write aliased into the shared global entry.
The snapshot now carries the window's own _filterParams. The on-disk shape is unchanged - FilterParamsList stays a list, holding exactly one entry - and load still reads [0], so existing Session Files (JSON and legacy XML alike) keep loading exactly as before; their trailing entries, which nothing ever restored, are dropped on the next save.
Adds Window Filter / Saved Filter List to the glossary, since the change turns on exactly that distinction.
Closes #666