diff --git a/CHANGELOG.md b/CHANGELOG.md index 93f063d..a129157 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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. diff --git a/Modules/Options/AdvancedTab/QuestieOptionsAdvanced.lua b/Modules/Options/AdvancedTab/QuestieOptionsAdvanced.lua index 1eab88a..33f4d89 100644 --- a/Modules/Options/AdvancedTab/QuestieOptionsAdvanced.lua +++ b/Modules/Options/AdvancedTab/QuestieOptionsAdvanced.lua @@ -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 = { diff --git a/Tests/QuestieLearnerDataSourceMode_spec.lua b/Tests/QuestieLearnerDataSourceMode_spec.lua index e8a36f9..0276981 100644 --- a/Tests/QuestieLearnerDataSourceMode_spec.lua +++ b/Tests/QuestieLearnerDataSourceMode_spec.lua @@ -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() diff --git a/docs/changelog.html b/docs/changelog.html index 5734160..89834e6 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -181,6 +181,7 @@
QuestieDB.GetQuest() where quests that had requiredSourceItems but no objectives table would dereference objectives[3] while building SpecialObjectives. 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.SmoothReset() even begins.