fix: show learner tooltips in auto mode
This commit is contained in:
@@ -586,6 +586,12 @@ function QuestieLearner:IsLearnerLiveEnabled()
|
||||
return mode == "auto" or mode == "learner"
|
||||
end
|
||||
|
||||
function QuestieLearner:CanShowLearnerTooltips()
|
||||
if not EnsureLearnedData() then return false end
|
||||
local mode = self:GetDataSourceMode()
|
||||
return mode == "auto" or mode == "learner"
|
||||
end
|
||||
|
||||
function QuestieLearner:ApplyDataSourceMode()
|
||||
if not EnsureLearnedData() then return end
|
||||
local settings = Questie.dbLearner and Questie.dbLearner.global and Questie.dbLearner.global.settings
|
||||
@@ -4901,7 +4907,7 @@ end
|
||||
local function _ShowLearnerTooltipFrame(sourceTooltip, lines)
|
||||
local tooltip = _GetLearnerTooltipFrame()
|
||||
tooltip:ClearLines()
|
||||
tooltip:SetOwner(sourceTooltip or GameTooltip, "ANCHOR_RIGHT")
|
||||
tooltip:SetOwner(UIParent, "ANCHOR_NONE")
|
||||
for _, line in next, lines do
|
||||
tooltip:AddLine(line)
|
||||
end
|
||||
@@ -4909,6 +4915,9 @@ local function _ShowLearnerTooltipFrame(sourceTooltip, lines)
|
||||
if QuestieTooltips and QuestieTooltips.ResizeTooltip then
|
||||
QuestieTooltips:ResizeTooltip(tooltip)
|
||||
end
|
||||
local anchor = sourceTooltip or GameTooltip
|
||||
tooltip:ClearAllPoints()
|
||||
tooltip:SetPoint("TOPLEFT", anchor, "BOTTOMLEFT", 0, -2)
|
||||
tooltip:Show()
|
||||
end
|
||||
|
||||
@@ -4921,6 +4930,10 @@ local function _AddLearnedSpawnTooltipLine(unitToken)
|
||||
_HideLearnerTooltipFrame()
|
||||
return
|
||||
end
|
||||
if not QuestieLearner:CanShowLearnerTooltips() then
|
||||
_HideLearnerTooltipFrame()
|
||||
return
|
||||
end
|
||||
if not Questie.db.profile or Questie.db.profile.learnerTooltips == false then
|
||||
_HideLearnerTooltipFrame()
|
||||
return
|
||||
|
||||
@@ -302,7 +302,10 @@ local function _GetLearnerTooltipLines(key)
|
||||
if not id then return nil end
|
||||
|
||||
local QuestieLearner = QuestieLoader:ImportModule("QuestieLearner")
|
||||
if not QuestieLearner or not QuestieLearner.IsEnabled or not QuestieLearner:IsEnabled() then
|
||||
if not QuestieLearner
|
||||
or not QuestieLearner.CanShowLearnerTooltips
|
||||
or not QuestieLearner:CanShowLearnerTooltips()
|
||||
then
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
local function read(path)
|
||||
local f = assert(io.open(path, "r"), "cannot open " .. path)
|
||||
local c = f:read("*a")
|
||||
f:close()
|
||||
return c
|
||||
end
|
||||
|
||||
local function has(content, needle)
|
||||
return string.find(content, needle, 1, true) ~= nil
|
||||
end
|
||||
|
||||
describe("QuestieLearner tooltip mode and anchoring", function()
|
||||
local learner = read("Modules/QuestieLearner.lua")
|
||||
local tooltip = read("Modules/Tooltips/Tooltip.lua")
|
||||
|
||||
it("allows learned tooltip data in auto and learner modes", function()
|
||||
assert.is_true(has(learner, "function QuestieLearner:CanShowLearnerTooltips()"))
|
||||
assert.is_true(has(learner, "return mode == \"auto\" or mode == \"learner\""))
|
||||
assert.is_true(has(tooltip, "QuestieLearner:CanShowLearnerTooltips()"))
|
||||
assert.is_false(has(tooltip, "QuestieLearner:IsEnabled()"))
|
||||
end)
|
||||
|
||||
it("anchors the secondary learner tooltip under the default tooltip", function()
|
||||
assert.is_true(has(learner, "tooltip:SetOwner(UIParent, \"ANCHOR_NONE\")"))
|
||||
assert.is_true(has(learner, "local anchor = sourceTooltip or GameTooltip"))
|
||||
assert.is_true(has(learner, "tooltip:ClearAllPoints()"))
|
||||
assert.is_true(has(learner, "tooltip:SetPoint(\"TOPLEFT\", anchor, \"BOTTOMLEFT\", 0, -2)"))
|
||||
assert.is_false(has(learner, "tooltip:SetOwner(sourceTooltip or GameTooltip, \"ANCHOR_RIGHT\")"))
|
||||
end)
|
||||
end)
|
||||
Reference in New Issue
Block a user