QoL: Raid Tools gains a Raid Groups window, and Show as goes cumulative - #1081
Open
Absol3m wants to merge 2 commits into
Open
QoL: Raid Tools gains a Raid Groups window, and Show as goes cumulative#1081Absol3m wants to merge 2 commits into
Absol3m wants to merge 2 commits into
Conversation
Absol3m
force-pushed
the
feat/raid-tools-group-filter
branch
2 times, most recently
from
July 31, 2026 08:20
f460b82 to
fdc82fe
Compare
Adds a third content group to Raid Tools: eight numbered toggles for which raid subgroups the raid frames draw, reachable mid-raid instead of three levels into the options window. It keeps no state of its own. Every paint reads EllesmereUIRaidFrames' visibleGroups through Lite.GetAddon(folder, silent) and every click writes it and calls _ERF_RefreshAll -- the handle and the refresh the suite already publishes for that module -- so this window and the Show Groups checklist on the Raid Frames page cannot drift apart. The silent flag returning nil when that addon is disabled is also the fallback detection: the buttons grey out and the row caption says what is missing. Driving Blizzard's own group filter was considered and rejected -- CompactRaidFrameManager is protected, Blizzard has already removed the UI that drove those functions, and there is no supported read to paint from. Show as could not stay a four-value dropdown: window composition is two independent axes, so the named combinations grow as 2^n while the names grow as n. It becomes a checklist of which windows exist plus a Combine Into One Window cog. The primary window -- first checked, canonical order -- hosts the combined shell, anchors the collapsed icon and carries the single collapse button, and one predicate (ShellActive) now drives visibility, positioning, the default stack and the unlock rows, replacing the literal key tests that were spread across all four. Existing profiles convert through a registered profile-scope migration, so every saved profile is walked rather than only the active one. Raid Groups stays off for them: an update must not put a window on screen nobody asked for. Applying a group change rebuilds secure headers, which lockdown forbids, so a click in combat lands the setting now and defers the re-render to PLAYER_REGEN_ENABLED.
Absol3m
force-pushed
the
feat/raid-tools-group-filter
branch
from
July 31, 2026 20:28
fdc82fe to
03fe07a
Compare
Two features called "Raid Groups" -- this panel, which chooses which subgroups the raid frames draw, and the window that actually moves people between subgroups -- is how a raid leader clicks the wrong one. This one is about visibility, so it says so. Label only. The section KEY stays RaidGroups: it persists in saved anchors, and renaming it would break existing links. Locales/_keys.txt is unchanged because the label reaches L as a variable, which the static extractor does not see by design (the in-game /euiloc harvester covers it).
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.
Adds a third content group to Raid Tools: eight numbered toggles for which raid
subgroups the raid frames draw, reachable mid-raid instead of three levels into
the options window.
It stays in sync with Raid Frames
The window keeps no state of its own. Every paint reads
EllesmereUIRaidFrames'visibleGroupsthroughLite.GetAddon(folder, silent)and every click writes it and calls
_ERF_RefreshAll— the handle and therefresh the suite already publishes for that module. There is no second copy,
so this window and the Show Groups checklist on the Raid Frames page cannot
drift apart. No changes to the Raid Frames module.
Its default is theirs too: groups 7 and 8 start hidden, because a second
default here is exactly the drift the design forbids.
Fallback when Raid Frames is disabled
The
silentflag returningnilis the detection — the buttons grey out andthe row caption says what is missing.
I looked at driving Blizzard's own group filter and decided against it.
CompactRaidFrameManager_ToggleGroupFilterstill exists, but the FilterGroupbuttons do not — Blizzard removed that UI and left the functions behind, and
GetSettingoffers no read to paint from. Driving a protected frame through anunexercised code path felt like the wrong trade here. Anyone who disabled our
raid frames is on Blizzard's, Grid2 or Cell, which all carry their own group
filter.
Show as had to change
Window composition is two independent axes, so four named values could not
survive a third window — the combinations grow as 2ⁿ while the names grow as n.
It becomes a checklist of which windows exist, plus a Combine Into One
Window cog. Decoupling them also fixed a gap: the checkbox dropdown has no
native disabled handling, so it now greys with the rest of the page on Never.
Three hardcoded rules became general. The primary window — first checked, in
canonical order — hosts the combined shell, anchors the collapsed icon and
carries the single collapse button. One predicate,
ShellActive, now drivesvisibility, positioning, the default stack and the unlock rows, replacing the
literal
showAs == "markers"/~= "two"tests that were spread across allfour.
Existing profiles convert through a registered profile-scope migration, so
every saved profile is walked rather than only the active one. Raid Groups
stays off for them — an update must not put a window on screen nobody asked
for.
Combat
Applying a group change rebuilds secure headers, which lockdown forbids:
_LayoutGroupsImplreturns early and the module's post-combat pass only replaysroster and size-tier changes. So a click in combat lands the setting
immediately and defers the re-render to
PLAYER_REGEN_ENABLED. The deeper fixis a dirty flag on the Raid Frames side — which would also fix every other
caller of
_ERF_RefreshAll— but that is their module and belongs to its ownPR; the comment says so.
Testing
Tested in game on 8.6.6: groups hide and the remaining ones close ranks, the
combine cog works, a lone checked window keeps its own title, and the migration
left an existing profile's composition untouched with Raid Groups off.
luac -pclean on all three files;Locales/_keys.txtunchanged (every labelreaches
Lthrough a variable).In this window, I would like to implement a mechanism that would allow users to manage the composition of the various groups by dragging and dropping players into them.