1 QuestHelper_File
["hidden.lua"] = "Development Version"
3 local function HiddenReason(obj
)
5 for i
, j
in pairs(obj
.after
) do
6 if i
.watched
and not i
:Known() then
8 depends
= QHFormat("DEPENDS_ON_SINGLE", i
:Reason(true))
9 elseif type(depends
) == "string" then
18 if type(depends
) == "string" then
21 return QHFormat("DEPENDS_ON_COUNT", depends
), false
25 if obj
.user_ignore
== nil then
26 if obj
.filter_level
and QuestHelper_Pref
.filter_level
then
27 return QHText("FILTERED_LEVEL"), true, "level"
30 if obj
.filter_zone
and QuestHelper_Pref
.filter_zone
then
31 return QHText("FILTERED_ZONE"), true, "zone"
34 if obj
.filter_done
and QuestHelper_Pref
.filter_done
then
35 return QHText("FILTERED_COMPLETE"), true, "done"
38 if obj
.filter_blocked
and QuestHelper_Pref
.filter_blocked
then
39 return QHText("FILTERED_BLOCKED"), true, "blocked"
42 if obj
.filter_watched
and QuestHelper_Pref
.filter_watched
then
43 return QHText("FILTERED_UNWATCHED"), true, "watched"
45 elseif obj
.user_ignore
then
46 return QHText("FILTERED_USER"), true
49 return QHText("FILTERED_UNKNOWN"), false
52 function QuestHelper
:PopulateHidden(menu
)
55 for obj
in pairs(self
.to_add
) do
56 if not obj
:Known() then
57 reason
, can_show
, filter
= HiddenReason(obj
)
60 local item
= self
:CreateMenuItem(menu
, obj
:Reason(true))
61 local menu2
= self
:CreateMenu()
62 item
:SetSubmenu(menu2
)
64 local item2
= self
:CreateMenuItem(menu2
, reason
)
67 local menu3
= self
:CreateMenu()
68 item2
:SetSubmenu(menu3
)
69 local item3
= self
:CreateMenuItem(menu3
, QHText("HIDDEN_SHOW"))
70 item3
:SetFunction(function (obj
) obj
.user_ignore
= false end, obj
)
73 item3
= self
:CreateMenuItem(menu3
, QHFormat("DISABLE_FILTER", QHText("FILTER_"..string.upper(filter
))))
74 item3
:SetFunction(function (filter
) QuestHelper_Pref
["filter_"..filter
] = false end, filter
)
77 -- I'd add an option to adjust the level filter, but I can't tell what value would be required.
83 self
:CreateMenuItem(menu
, QHText("HIDDEN_NONE"))
87 function QuestHelper
:ShowHidden()
88 local menu
= self
:CreateMenu()
90 self
:CreateMenuTitle(menu
, QHText("HIDDEN_TITLE"))
91 self
:PopulateHidden(menu
)