Mercurial > wow > wowdb-profiler
comparison Main.lua @ 169:5f6d5a1a62e1 1.0.20
Make sure the TradeSkillFrame exists and is visible before attempting to do anything with it. Re-use the headers table. Added the ability to break out of the loop in functions called by TradeSkillExecutePer.
author | James D. Callahan III <jcallahan@curse.com> |
---|---|
date | Tue, 16 Oct 2012 03:38:35 -0500 |
parents | 0820f3ab783e |
children | 40624eb09591 |
comparison
equal
deleted
inserted
replaced
168:10ad2d900502 | 169:5f6d5a1a62e1 |
---|---|
166 end | 166 end |
167 _G.print(...) | 167 _G.print(...) |
168 end | 168 end |
169 | 169 |
170 | 170 |
171 local function TradeSkillExecutePer(iter_func) | 171 local TradeSkillExecutePer |
172 if _G.TradeSkillFrame and _G.TradeSkillFrame:IsVisible() then | 172 do |
173 local header_list = {} | |
174 | |
175 -- iter_func returns true to indicate that the loop should be broken | |
176 function TradeSkillExecutePer(iter_func) | |
177 if not _G.TradeSkillFrame or not _G.TradeSkillFrame:IsVisible() then | |
178 return | |
179 end | |
173 -- Clear the search box focus so the scan will have correct results. | 180 -- Clear the search box focus so the scan will have correct results. |
174 local search_box = _G.TradeSkillFrameSearchBox | 181 local search_box = _G.TradeSkillFrameSearchBox |
175 search_box:SetText("") | 182 search_box:SetText("") |
183 | |
176 _G.TradeSkillSearch_OnTextChanged(search_box) | 184 _G.TradeSkillSearch_OnTextChanged(search_box) |
177 search_box:ClearFocus() | 185 search_box:ClearFocus() |
178 search_box:GetScript("OnEditFocusLost")(search_box) | 186 search_box:GetScript("OnEditFocusLost")(search_box) |
179 end | 187 |
180 local header_list = {} | 188 table.wipe(header_list) |
181 | 189 |
182 -- Save the current state of the TradeSkillFrame so it can be restored after we muck with it. | 190 -- Save the current state of the TradeSkillFrame so it can be restored after we muck with it. |
183 local have_materials = _G.TradeSkillFrame.filterTbl.hasMaterials | 191 local have_materials = _G.TradeSkillFrame.filterTbl.hasMaterials |
184 local have_skillup = _G.TradeSkillFrame.filterTbl.hasSkillUp | 192 local have_skillup = _G.TradeSkillFrame.filterTbl.hasSkillUp |
185 | 193 |
186 if have_materials then | 194 if have_materials then |
187 _G.TradeSkillFrame.filterTbl.hasMaterials = false | 195 _G.TradeSkillFrame.filterTbl.hasMaterials = false |
188 _G.TradeSkillOnlyShowMakeable(false) | 196 _G.TradeSkillOnlyShowMakeable(false) |
189 end | 197 end |
190 | 198 |
191 if have_skillup then | 199 if have_skillup then |
192 _G.TradeSkillFrame.filterTbl.hasSkillUp = false | 200 _G.TradeSkillFrame.filterTbl.hasSkillUp = false |
193 _G.TradeSkillOnlyShowSkillUps(false) | 201 _G.TradeSkillOnlyShowSkillUps(false) |
194 end | 202 end |
195 _G.SetTradeSkillInvSlotFilter(0, 1, 1) | 203 _G.SetTradeSkillInvSlotFilter(0, 1, 1) |
196 _G.TradeSkillUpdateFilterBar() | 204 _G.TradeSkillUpdateFilterBar() |
197 _G.TradeSkillFrame_Update() | 205 _G.TradeSkillFrame_Update() |
198 | 206 |
199 -- Expand all headers so we can see all the recipes there are | 207 -- Expand all headers so we can see all the recipes there are |
200 for tradeskill_index = 1, _G.GetNumTradeSkills() do | 208 for tradeskill_index = 1, _G.GetNumTradeSkills() do |
201 local name, tradeskill_type, _, is_expanded = _G.GetTradeSkillInfo(tradeskill_index) | 209 local name, tradeskill_type, _, is_expanded = _G.GetTradeSkillInfo(tradeskill_index) |
202 | 210 |
203 if tradeskill_type == "header" or tradeskill_type == "subheader" then | 211 if tradeskill_type == "header" or tradeskill_type == "subheader" then |
204 if not is_expanded then | 212 if not is_expanded then |
205 header_list[name] = true | 213 header_list[name] = true |
206 _G.ExpandTradeSkillSubClass(tradeskill_index) | 214 _G.ExpandTradeSkillSubClass(tradeskill_index) |
207 end | 215 end |
208 else | 216 elseif iter_func(name, tradeskill_index) then |
209 iter_func(name, tradeskill_index) | 217 break |
210 end | 218 end |
211 end | 219 end |
212 | 220 |
213 -- Restore the state of the things we changed. | 221 -- Restore the state of the things we changed. |
214 for tradeskill_index = 1, _G.GetNumTradeSkills() do | 222 for tradeskill_index = 1, _G.GetNumTradeSkills() do |
215 local name, tradeskill_type, _, is_expanded = _G.GetTradeSkillInfo(tradeskill_index) | 223 local name, tradeskill_type, _, is_expanded = _G.GetTradeSkillInfo(tradeskill_index) |
216 | 224 |
217 if header_list[name] then | 225 if header_list[name] then |
218 _G.CollapseTradeSkillSubClass(tradeskill_index) | 226 _G.CollapseTradeSkillSubClass(tradeskill_index) |
219 end | 227 end |
220 end | 228 end |
221 _G.TradeSkillFrame.filterTbl.hasMaterials = have_materials | 229 _G.TradeSkillFrame.filterTbl.hasMaterials = have_materials |
222 _G.TradeSkillOnlyShowMakeable(have_materials) | 230 _G.TradeSkillOnlyShowMakeable(have_materials) |
223 _G.TradeSkillFrame.filterTbl.hasSkillUp = have_skillup | 231 _G.TradeSkillFrame.filterTbl.hasSkillUp = have_skillup |
224 _G.TradeSkillOnlyShowSkillUps(have_skillup) | 232 _G.TradeSkillOnlyShowSkillUps(have_skillup) |
225 | 233 |
226 _G.TradeSkillUpdateFilterBar() | 234 _G.TradeSkillUpdateFilterBar() |
227 _G.TradeSkillFrame_Update() | 235 _G.TradeSkillFrame_Update() |
228 end | 236 end |
237 end -- do-block | |
229 | 238 |
230 | 239 |
231 local ActualCopperCost | 240 local ActualCopperCost |
232 do | 241 do |
233 local BARTERING_SPELL_ID = 83964 | 242 local BARTERING_SPELL_ID = 83964 |
1027 DBEntry("spells", tonumber(_G.GetTradeSkillRecipeLink(tradeskill_index):match("^|c%x%x%x%x%x%x%x%x|H%w+:(%d+)"))).discovery = ("%d:%d"):format(private.previous_spell_id, private.profession_level) | 1036 DBEntry("spells", tonumber(_G.GetTradeSkillRecipeLink(tradeskill_index):match("^|c%x%x%x%x%x%x%x%x|H%w+:(%d+)"))).discovery = ("%d:%d"):format(private.previous_spell_id, private.profession_level) |
1028 | 1037 |
1029 private.discovered_recipe_name = nil | 1038 private.discovered_recipe_name = nil |
1030 private.profession_level = nil | 1039 private.profession_level = nil |
1031 private.previous_spell_id = nil | 1040 private.previous_spell_id = nil |
1041 | |
1042 return true | |
1032 end | 1043 end |
1033 end | 1044 end |
1034 | 1045 |
1035 | 1046 |
1036 local function IterativeRecordDiscovery() | 1047 local function IterativeRecordDiscovery() |