fix: speed up slider redraws
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
|
||||
- **[Questie Debug - Message Throttle]** Added a live debug-message throttle so non-fatal debug output cannot spam chat faster than it can be read. The throttle is configurable in the Advanced tab and keeps fatal output separate.
|
||||
- **[Questie Learner - Tooltip Controls]** Added learner-specific tooltip controls so players can toggle the learned spawn line, total learned spawn count, learner confidence lines, automatic tooltip resizing, and a secondary learner tooltip from the Tooltip options. The learner tooltip paths now respect those toggles before adding extra lines.
|
||||
- **[Questie Options - Faster Live Slider Refresh]** Reduced the redraw debounce on the icon, clustering, and learner spawn-dedup sliders so changes refresh pins much sooner after the user releases the slider instead of waiting half a second before `SmoothReset()` even begins.
|
||||
- **[QuestieLearner - Kill/Pin Refresh Throttling]** Debounced learner-triggered map-pin refreshes so heavy kill streaks do not redraw pins on every event. Added a maximum wait cap so batched updates still flush predictably instead of being pushed out forever by constant activity.
|
||||
- **[QuestieLearner - Bystander Kill Suppression]** Changed visible nearby `UNIT_DIED` handling so kills from other players can update short-lived correlation evidence without immediately running full learner injection or pin refresh work.
|
||||
- **[QuestieLearner - PARTY_KILL Event-Order Fix]** Fixed an edge case where a `UNIT_DIED` debounce entry could suppress a later authoritative `PARTY_KILL` for the same GUID. The debounce now tracks event type and allows the player's/group's kill event through while still suppressing true duplicates.
|
||||
|
||||
@@ -134,7 +134,7 @@ function QuestieOptions.tabs.advanced:Initialize()
|
||||
get = function (info) return QuestieOptions:GetProfileValue(info); end,
|
||||
set = function (info, value)
|
||||
QuestieOptions:SetProfileValue(info, value)
|
||||
QuestieOptionsUtils:Delay(0.5, QuestieQuest.SmoothReset, l10n('Setting icon limit value to %s : Redrawing!', value))
|
||||
QuestieOptionsUtils:Delay(0.05, QuestieQuest.SmoothReset, l10n('Setting icon limit value to %s : Redrawing!', value))
|
||||
end,
|
||||
},
|
||||
iconLimit = {
|
||||
@@ -150,7 +150,7 @@ function QuestieOptions.tabs.advanced:Initialize()
|
||||
get = function(info) return QuestieOptions:GetProfileValue(info); end,
|
||||
set = function (info, value)
|
||||
QuestieOptions:SetProfileValue(info, value)
|
||||
QuestieOptionsUtils:Delay(0.5, QuestieQuest.SmoothReset, l10n('Setting icon limit value to %s : Redrawing!', value))
|
||||
QuestieOptionsUtils:Delay(0.05, QuestieQuest.SmoothReset, l10n('Setting icon limit value to %s : Redrawing!', value))
|
||||
end,
|
||||
},
|
||||
iconSpacer = {
|
||||
@@ -175,7 +175,7 @@ function QuestieOptions.tabs.advanced:Initialize()
|
||||
step = 1,
|
||||
get = function(info) return QuestieOptions:GetProfileValue(info); end,
|
||||
set = function(info, value)
|
||||
QuestieOptionsUtils:Delay(0.5, QuestieOptions.ClusterRedraw, l10n('Setting clustering value, clusterLevelHotzone set to %s : Redrawing!', value))
|
||||
QuestieOptionsUtils:Delay(0.05, QuestieOptions.ClusterRedraw, l10n('Setting clustering value, clusterLevelHotzone set to %s : Redrawing!', value))
|
||||
QuestieOptions:SetProfileValue(info, value)
|
||||
QuestieOptionsUtils.DetermineTheme()
|
||||
end,
|
||||
@@ -193,7 +193,7 @@ function QuestieOptions.tabs.advanced:Initialize()
|
||||
get = function(info) return QuestieOptions:GetProfileValue(info); end,
|
||||
set = function(info, value)
|
||||
QuestieOptions:SetProfileValue(info, value)
|
||||
QuestieOptionsUtils:Delay(0.5, QuestieOptions.ClusterRedraw, l10n('Setting dense pin clustering aggressiveness to %s : Redrawing!', value))
|
||||
QuestieOptionsUtils:Delay(0.05, QuestieOptions.ClusterRedraw, l10n('Setting dense pin clustering aggressiveness to %s : Redrawing!', value))
|
||||
end,
|
||||
},
|
||||
quelDanasSpacer1 = QuestieOptionsUtils:Spacer(1.45, (not Questie.IsTBC)),
|
||||
@@ -374,7 +374,7 @@ function QuestieOptions.tabs.advanced:Initialize()
|
||||
if QuestieDB and QuestieDB.ClearModeCaches then
|
||||
QuestieDB:ClearModeCaches()
|
||||
end
|
||||
QuestieOptionsUtils:Delay(0.5, QuestieQuest.SmoothReset, l10n('Setting spawn pin dedup radius to %s : Redrawing!', value))
|
||||
QuestieOptionsUtils:Delay(0.05, QuestieQuest.SmoothReset, l10n('Setting spawn pin dedup radius to %s : Redrawing!', value))
|
||||
end,
|
||||
},
|
||||
learnerCommsIntensity = {
|
||||
|
||||
@@ -47,6 +47,7 @@ describe("QuestieLearner data source mode", function()
|
||||
it("exposes learner tooltip controls and tooltip resize support", function()
|
||||
local general = read("Modules/Options/GeneralTab/QuestieOptionsGeneral.lua")
|
||||
local defaults = read("Modules/Options/QuestieOptionsDefaults.lua")
|
||||
local advanced = read("Modules/Options/AdvancedTab/QuestieOptionsAdvanced.lua")
|
||||
local tip = read("Modules/Tooltips/Tooltip.lua")
|
||||
local handler = read("Modules/Tooltips/TooltipHandler.lua")
|
||||
local learner = read("Modules/QuestieLearner.lua")
|
||||
@@ -66,6 +67,8 @@ describe("QuestieLearner data source mode", function()
|
||||
assert.is_true(has(learner, "learnerTooltipShowSpawn"))
|
||||
assert.is_true(has(learner, "_CountLearnedNpcSpawns(entry)"))
|
||||
assert.is_true(has(learner, "_ShowLearnerTooltipFrame(GameTooltip, rendered)"))
|
||||
assert.is_true(has(advanced, "QuestieOptionsUtils:Delay(0.05, QuestieQuest.SmoothReset"))
|
||||
assert.is_true(has(advanced, "QuestieOptionsUtils:Delay(0.05, QuestieOptions.ClusterRedraw"))
|
||||
end)
|
||||
|
||||
it("allows learner mode to draw pins from a single learned spawn when needed", function()
|
||||
|
||||
@@ -181,6 +181,7 @@
|
||||
<li><strong>[QuestieDB — Required Source Item Guard]</strong> Fixed a fresh-load crash in <code>QuestieDB.GetQuest()</code> where quests that had <code>requiredSourceItems</code> but no <code>objectives</code> table would dereference <code>objectives[3]</code> while building <code>SpecialObjectives</code>. This was a code-side nil guard bug on our end, not a saved-variable problem, and it is now covered by a regression test.</li>
|
||||
<li><strong>[Questie Debug — Message Throttle]</strong> Added a live debug-message throttle so non-fatal debug output cannot spam chat faster than it can be read. The throttle is configurable in the Advanced tab and keeps fatal output separate.</li>
|
||||
<li><strong>[Questie Learner — Tooltip Controls]</strong> Added learner-specific tooltip controls so players can toggle the learned spawn line, total learned spawn count, learner confidence lines, automatic tooltip resizing, and a secondary learner tooltip from the Tooltip options. The learner tooltip paths now respect those toggles before adding extra lines.</li>
|
||||
<li><strong>[Questie Options — Faster Live Slider Refresh]</strong> Reduced the redraw debounce on the icon, clustering, and learner spawn-dedup sliders so changes refresh pins much sooner after the user releases the slider instead of waiting half a second before <code>SmoothReset()</code> even begins.</li>
|
||||
<li><strong>[QuestieLearner — Learner Sunstrider Clustering]</strong> Relaxed the Sunstrider Isle clustering override in learner mode so the clustering/deduplication knobs can still consolidate newly learned pins there. Static/auto keeps the original Sunstrider visibility behavior, but learner mode now preserves clustering so nearby learner spawns do not render as an unbounded fan-out of separate icons.</li>
|
||||
<li><strong>[QuestieLearner — Turn-In Arrow Spawn Promotion]</strong> Allowed quest-related NPC and object spawns to keep their live learner coordinates even when the static database marks those spawn fields as protected. Learner mode now merges the learner's live override tables back into the getter path too, so quest giver and turn-in locations can point from learner-discovered hand-in targets without relaxing protection for unrelated world spawns.</li>
|
||||
<li><strong>[QuestieLearner — Quest-Only Item Learning]</strong> Hardened item learning so plain junk loot no longer gets recorded as learner state. Only quest-relevant items are accepted now, including items that already have quest references in learned quest data. Quest-item drops still learn and still build source pins, but non-quest loot like generic trade goods and junk no longer pollutes the item learner or source cache.</li>
|
||||
|
||||
Reference in New Issue
Block a user