comparison ui/ShoppingListTab.lua @ 45:1851d0fd18fa v15

fixed an issue with shopping tab enchant links not working on AH
author yellowfive
date Sat, 01 Nov 2014 22:51:36 -0700
parents a400b906acca
children eaf233ac41e6
comparison
equal deleted inserted replaced
44:8e853e90af9c 45:1851d0fd18fa
22 tab:Hide() 22 tab:Hide()
23 tab:RegisterEvent("AUCTION_HOUSE_CLOSED") 23 tab:RegisterEvent("AUCTION_HOUSE_CLOSED")
24 tab:RegisterEvent("AUCTION_HOUSE_SHOW") 24 tab:RegisterEvent("AUCTION_HOUSE_SHOW")
25 tab:RegisterEvent("MAIL_SHOW") 25 tab:RegisterEvent("MAIL_SHOW")
26 tab:RegisterEvent("MAIL_CLOSED") 26 tab:RegisterEvent("MAIL_CLOSED")
27 tab:RegisterEvent("GET_ITEM_INFO_RECEIVED")
27 28
28 tab.isAuctionHouseVisible = false 29 tab.isAuctionHouseVisible = false
29 30
30 tab:SetScript("OnEvent", function(...) 31 tab:SetScript("OnEvent", function(...)
31 tab:OnEvent(...) 32 tab:OnEvent(...)
214 tab.sendTo:SetScript("OnChar", function() 215 tab.sendTo:SetScript("OnChar", function()
215 AmrDb.SendSettings.SendTo = tab.sendTo:GetText() 216 AmrDb.SendSettings.SendTo = tab.sendTo:GetText()
216 end) 217 end)
217 218
218 tab.messageQueue = {} 219 tab.messageQueue = {}
220
221 tab.itemNames = {}
219 return tab 222 return tab
220 end 223 end
221 224
222 -- display a gem icon in a row 225 -- display a gem icon in a row
223 -- gemInfo is {id, enchantId, color, count } 226 -- gemInfo is {id, enchantId, color, count }
582 local id = extraData and extraData.itemId or enchantData.optimized 585 local id = extraData and extraData.itemId or enchantData.optimized
583 local qty = enchantList[id] 586 local qty = enchantList[id]
584 if qty then 587 if qty then
585 qty.total = qty.total + 1 588 qty.total = qty.total + 1
586 else 589 else
587 qty = { count = 0, total = 1, optimized = enchantData.optimized } 590 qty = { count = 0, total = 1, optimized = enchantData.optimized, itemId = extraData and extraData.itemId }
588 enchantList[id] = qty 591 enchantList[id] = qty
589 end 592 end
590 end 593 end
591 594
592 local enchantMaterials = {} 595 local enchantMaterials = {}
678 self.gemsHeader:Hide() 681 self.gemsHeader:Hide()
679 self.gemsQuantityHeader:Hide() 682 self.gemsQuantityHeader:Hide()
680 self.enchantsHeader:SetPoint("TOPLEFT", self.scrollParent, "TOPLEFT", 0, 0) 683 self.enchantsHeader:SetPoint("TOPLEFT", self.scrollParent, "TOPLEFT", 0, 0)
681 end 684 end
682 685
686 self.enchantNames = {}
683 row = 1 687 row = 1
684 for slot, enchant in AskMrRobot.spairs(enchantList) do 688 for slot, enchant in AskMrRobot.spairs(enchantList) do
685 self:SetEnchantIcon(row, enchant.optimized) 689 self:SetEnchantIcon(row, enchant.optimized)
690 local row2 = row
691 self.enchantIcons[row2].itemName = nil
692 self:GetItemName(enchant.itemId, function(name)
693 self.enchantIcons[row2].itemName = name
694 self.enchantIcons[row2].itemText:SetText(name)
695 end)
686 self:SetEnchantQuantity(row, enchant.count, enchant.total) 696 self:SetEnchantQuantity(row, enchant.count, enchant.total)
687 lastControl = self.enchantIcons[row] 697 lastControl = self.enchantIcons[row]
688 row = row + 1 698 row = row + 1
689 end 699 end
690 700
745 self.shoppingPanel:Hide() 755 self.shoppingPanel:Hide()
746 self.stamp:Show() 756 self.stamp:Show()
747 end 757 end
748 end 758 end
749 759
760 function AskMrRobot.ShoppingListTab:GetItemName(itemId, func)
761 local name = GetItemInfo(itemId)
762 if name then
763 func(name)
764 else
765 tinsert(self.itemNames, { itemId = itemId, func = func })
766 end
767 end
768
769 function AskMrRobot.ShoppingListTab:On_GET_ITEM_INFO_RECEIVED()
770 for i = 1, #self.itemNames do
771 local name = GetItemInfo(self.itemNames[i].itemId)
772 if name then
773 self.itemNames[i].func(name)
774 tremove(self.itemNames, i)
775 i = i - 1
776 end
777 end
778 self.itemNames = itemNames
779 end
750 780
751 function AskMrRobot.ShoppingListTab:OnEvent(frame, event, ...) 781 function AskMrRobot.ShoppingListTab:OnEvent(frame, event, ...)
752 local handler = self["On_" .. event] 782 local handler = self["On_" .. event]
753 if handler then 783 if handler then
754 handler(self, ...) 784 handler(self, ...)