Add an Exclusions tab and a per-row exclude button to the owned items window - #2
Open
LostPoE wants to merge 1 commit into
Open
Add an Exclusions tab and a per-row exclude button to the owned items window#2LostPoE wants to merge 1 commit into
LostPoE wants to merge 1 commit into
Conversation
… window. Managing exclusions meant leaving the game panel for the ExileAPI plugin menu and typing the currency name by hand, which is both slow and easy to get wrong - the match is an exact, case-insensitive name compare, so a typo silently excludes nothing. The owned items window is now a tab bar: - Owned Items, unchanged. - Exclusions, which renders the same editor the plugin menu uses. The editor lives in Settings, so both copies share one list and one input buffer; ImGui ids are scoped per window, so the two never collide. Each row in the sell list gets an X button next to Sell, tooltipped with the name it will exclude. Excluded currencies are already filtered out when the picker options are read, so the row disappears - a new ExclusionsRevision counter, bumped whenever the list is saved from either editor, lets the window drop its caches on the next frame instead of waiting out the 500ms refresh interval. The Action column is now sized explicitly. It relied on auto-fit, which measures the widest cell actually drawn, so once the Sell + X pair was clipped the column could settle too narrow to ever reveal the X again. The default window width goes 520 -> 660 (max 1200 -> 1600) to leave room for it; existing settings files keep whatever width they already have. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Managing exclusions meant leaving the exchange panel for the ExileAPI plugin menu and typing the currency name by hand. The match is an exact, case-insensitive name compare, so a typo silently excludes nothing and you find out by watching the item you meant to skip show up in the list again.
Exclusions tab
The owned items window is now a tab bar:
Excluded: Nand the same editor the plugin menu renders (add by name, edit in place, delete).The editor stays in
Settings, so both copies share one list and one input buffer — nothing is duplicated, and the plugin menu keeps working when the exchange panel is closed. ImGui ids are scoped per window, so the two never collide.Exclude button
Every row gets an
Xnext toSell, tooltipped with the name it will exclude. Excluded currencies are already filtered out where the picker options are read, so the row simply disappears.To make that immediate,
SaveExcludedCurrenciesbumps a newExclusionsRevision;GetCurrencyExchangeItemscompares it before its 500 ms cache check and rebuilds on change. Without it an exclusion — or an un-exclusion, which brings the row straight back — would land whenever the refresh interval happened to elapse.Action column width
The column was relying on auto-fit, which measures the widest cell actually drawn. Once the
Sell+Xpair was clipped, the column could settle too narrow to ever reveal theXagain. It now gets an explicit width computed from both button labels plus frame/item/cell padding.The default window width goes 520 → 660 (max 1200 → 1600) to leave room. Existing settings files keep whatever width they already have, since the saved value wins over the default — the explicit column width is what actually fixes the clipping.
Testing
Built against ExileCore (0 errors, no new warnings) and run in game through the ExileAPI loader: both tabs render and the
Xsits besideSellin every row. After a session with the change loaded, the settings file round-trips as before —ExclusionsRevisionandExcludedCurrencyCountare[JsonIgnore]+[HideInReflection], so they stay out of both the JSON and the plugin menu.🤖 Generated with Claude Code