Repository navigation
Releases: wouter-intveld/BetterQuestTracker
Releases · wouter-intveld/BetterQuestTracker
Release list
v0.3.7
BetterQuestTracker
v0.3.7 (2026-10-05)
Full Changelog Previous Releases
- feat(filter): always show class quests option
v0.3.6
BetterQuestTracker
v0.3.6 (2026-10-05)
Full Changelog Previous Releases
- fix(settings): shorten quest log filter label
v0.3.5
BetterQuestTracker
v0.3.5 (2026-10-05)
Full Changelog Previous Releases
- feat(header): show the skull while hiding quests
The skull hid until hover while high-level quests were hidden and stayed
visible while they showed, marking the non-default state the way the
lock does. In use that read as reversed: next to the zone filter icon, a
coloured icon means an active filter. It now stays visible while hiding
(coloured) and retreats to hover-only while showing (grey). - refactor(text): name colours, limits and strings
Colour codes, slider bounds and tooltip wording were literals repeated
across the file: the same green in four places, the scale bounds in the
slider, the slash command and the wheel handler. COLOR, LIMITS and TEXT
hold them once; the slash commands for scale, width and height share one
branch; AddHint/AddDone replace the repeated tooltip RGB triples.
Wording now comes from Blizzard's strings where one exists: the lock
tooltip uses LOCK_FRAME/UNLOCK_FRAME, the filter tooltip FILTER, and the
mouse hints quote the context menu entries (Focus, Untrack, Open Quest
Map on Retail) so hint and menu always agree. "No quests" no longer says
"for this zone" while the zone filter is off. - refactor(events): one handler per event
The OnEvent if-chain mixed early returns with branches that fell through
to a shared RequestRender, so which events redraw took tracing every
branch, and the registration list repeated the event names. EVENTS maps
each name to its handler, registration iterates the table, and the
ADDON_LOADED bootstrap swaps in the dispatcher once the saved variables
are loaded. QUEST_REMOVED no longer guards against a nil questID; the
event always carries one. - refactor(sort): re-sort shown quests on the tick
ShownOrderIsStale re-derived the ordering rules of CollectQuests as a
state machine over two parallel arrays, so every change to the sort had
to be made twice. The tick now re-sorts light copies of the shown quests
through the same SortQuests the render uses and compares the drawn order,
with a collapsed zone counting as one entry. It also notices when a
collapsed zone should move, which the old check skipped. No new tables
per tick: the copies and the key arrays are reused. - refactor(render): split Render into sections
Render laid out quests, recipes and the frame in one 150-line function
around an AddLine closure with six positional parameters, which also
regex-split the bullet back out of the text its caller had just built.
AddLine is now module level, takes the bullet colour as a parameter and
returns the line for the caller to tag; RenderQuests, RenderRecipes and
FitFrame each own one part, and AddSectionHeader replaces the two copies
of the zone/recipe header format.
MAX_LINES is gone: the pool grows with the quest log, which the game
already caps, and the guard forced every caller to cope with a nil line. - refactor(header): one section for the controls
The four header controls had their creation, their scripts and the
hover logic spread over three places, held together by HookScript calls
that had to run after every SetScript on those frames. They now live in
one section: a shared SetupControl handles hover, tooltip and the click
that rebuilds it, and every enter/leave calls UpdateHeaderHover directly.
UpdateHeader takes the header state out of Render.
Visual change: the +N icon now dims to 0.6 like the other icons until
it is hovered; it used to stay at full alpha. - fix(mouse): wheel passes through a short tracker
Render disabled the scroll frame's wheel when there was nothing to
scroll, but the frame underneath had its wheel enabled unconditionally
and caught the event with a no-op scroll, so the camera never saw it.
The frame now owns the wheel and Render enables it only while the list
is taller than maxHeight; as a side effect the header scrolls the list. - refactor(mouse): drop dead drag handlers
The frame never had the mouse enabled while locked, and while unlocked
the move overlay covers both the frame and the header, so their drag
registrations and the locked guard in StartMove could not fire. Only
the overlay moves the tracker.
v0.3.4
BetterQuestTracker
v0.3.4 (2026-10-05)
Full Changelog Previous Releases
- feat: icons in the tracker header
The header text labels become Blizzard atlas icons in their own colours,
dimmed until hovered: padlock (move), skull (high-level quests), map
filter (zone filter, grey for all quests). The collapse button sits just
outside the tracker's top-right corner. Confirmed in game. - feat: show +3 only on header hover
The +3 now appears only while the header is hovered, or stays visible
while high-level quests are shown. Its slot is kept even with the option
off, so move no longer shifts. Confirmed in game. - feat: finished quests last option, wrap indent
New opt-in setting moves quests ready to turn in to the bottom of their
zone; the 2 s order check accepts that order so it does not redraw
needlessly. Objective dashes get their own column so wrapped text lines
up under the text. Both confirmed in game.
v0.3.3
BetterQuestTracker
v0.3.3 (2026-10-04)
Full Changelog Previous Releases
- feat: high-level quest option off by default
New installs track every accepted quest; unchecking quests above your
level is opt-in in the settings. Existing saved settings keep their value.
v0.3.2
BetterQuestTracker
v0.3.2 (2026-10-04)
Full Changelog Previous Releases
- feat: +3 shows or hides high-level quests
The +3 header button toggled the option itself. It now only shows while
the option is on, and toggles listing the quests the option unchecked
(grey while shown, saved). The option changes in the settings; move
sits next to zone when +3 is hidden.
v0.3.1
BetterQuestTracker
v0.3.1 (2026-10-04)
Full Changelog Previous Releases
- fix: party objectives styled like your own
The party progress in the quest tooltip used Blizzard's grey and white
text. Finished objectives now get the green check and open ones a white
dash, matching the player's own objective lines. Names keep their colour.
v0.3.0
BetterQuestTracker
v0.3.0 (2026-10-04)
Full Changelog Previous Releases
- feat: show tracked recipes with reagents
The addon hides Blizzard's tracker, which also hid tracked recipes. List
them below the quests with reagent counts in bags/needed. Left-click
opens the recipe, shift-click untracks, right-click shows a menu. Bag
changes only redraw while recipes are shown. Setting to turn it off.
v0.2.2
BetterQuestTracker
v0.2.2 (2026-10-03)
Full Changelog Previous Releases
- feat: add addon icon and colour Better green
Show an icon in the AddOns list (icon.tga, rendered from art/icon.svg)
and colour Better in the addon title and Settings category with the
same green as the chat prefix.
v0.2.1
BetterQuestTracker
v0.2.1 (2026-10-03)
Full Changelog Previous Releases
- chore(db): drop migration shipped in v0.1.0
The move of collapsedQuests and autoUntracked to the per-character DB
ran on the first login after v0.1.0; later installs never had the old
layout. Same for clearing the removed hideBlizzard key. - refactor: drop fallbacks for other clients
The addon ships for one client (one Interface line in the toc), and
every guarded API was confirmed present in game, so these paths never
ran: the abandon popup, the no-MenuUtil path, the hand-written party
progress tooltip, the C_SuperTrack and GetDistanceSqToQuest checks,
QuestWatchFrame, ToggleQuestLog, and the pcalls around settings and
event registration. Also drop the db-nil guards, which only ran after
load. A missing API now errors instead of silently degrading. - refactor(events): merge entering-world handling
PLAYER_ENTERING_WORLD was handled in two places. The durability recheck
was a function stored on the frame so the event handler could reach it;
it is a plain local now, and UPDATE_INVENTORY_ALERTS is registered with
the other events. IsQuestInCurrentZone no longer takes zoneNames as a
parameter, it was only passed because the table was declared later. - refactor(render): pass redraw reason explicitly
The module-level renderReason mislabelled /bqt perf when a click redrew
while an event redraw was queued: the two swapped labels. Render now
takes the reason as a parameter; direct calls are labelled direct. - style(render): indent collapsed-zone block
- chore(scroll): drop overwritten OnVerticalScroll
The real handler, set later, already calls UpdateMoreText. - perf(layout): re-place only when offset changes
Every redraw while the durability icon was visible, and every
DurabilityFrame SetPoint, re-anchored the main frame and rebuilt the
item buttons even when the avoid offset was unchanged. - perf(render): skip re-anchoring unmoved lines
Lines and item buttons only ever have one anchor, so SetPoint replaces
it. Remember the last position and scale and only re-anchor when they
changed, which is never for the common progress-only redraw.