From 6f5b81e67665737753bf7066a1871cbcf09e225a Mon Sep 17 00:00:00 2001 From: pschifferer Date: Sat, 28 Feb 2009 15:36:54 +0000 Subject: [PATCH] Added the version number to the frame's title bar. Made the shopping list auto-update when items are added to the queue. Fixed an issue with the shopping list not updating when items are acquired. --- CauldronMain.lua | 41 +++++++++++++++++++++++++++++++++-------- CauldronMain.xml | 15 +++++++++++++-- CauldronMainUI.lua | 2 +- Locale/Cauldron-enUS.lua | 3 +++ 4 files changed, 50 insertions(+), 11 deletions(-) diff --git a/CauldronMain.lua b/CauldronMain.lua index 976df4e..297c91d 100644 --- a/CauldronMain.lua +++ b/CauldronMain.lua @@ -139,7 +139,7 @@ function Cauldron:OnEnable() -- self:RegisterEvent("BANKFRAME_CLOSED"); -- self:RegisterEvent("PLAYERBANKSLOTS_CHANGED"); -- self:RegisterEvent("PLAYERBANKBAGSLOTS_CHANGED"); --- self:RegisterEvent("MERCHANT_SHOW"); + self:RegisterEvent("MERCHANT_SHOW", "OnMerchantShow"); -- self:RegisterEvent("MERCHANT_UPDATE"); -- self:RegisterEvent("MERCHANT_CLOSED"); self:RegisterEvent("BAG_UPDATE", "OnBagUpdate"); @@ -305,9 +305,9 @@ function Cauldron:OnBagUpdate(event, bagid) self:debug("OnBagUpdate enter"); --@end-alpha@ - if (not CauldronFrame) or (not CauldronFrame:IsShown()) then - return; - end +-- if (not CauldronFrame) or (not CauldronFrame:IsShown()) then +-- return; +-- end -- check if the item acquired is in the intermediate list or shopping list local items = Cauldron:GetItemDeltas(bagid); @@ -396,6 +396,18 @@ function Cauldron:OnCraftClose() --@end-alpha@ end +function Cauldron:OnMerchantShow() +--@alpha@ + self:debug("OnMerchantShow enter"); +--@end-alpha@ + +-- TODO + +--@alpha@ + self:debug("OnMerchantShow exit"); +--@end-alpha@ +end + function Cauldron:OnError() --@alpha@ self:debug("OnError enter"); @@ -472,6 +484,9 @@ function Cauldron:QueueAllTradeSkillItem() CauldronQueue:AddItem(self.db.realm.userdata[self.vars.playername].queue, skillInfo, queueAmount); Cauldron:UpdateQueue(); + + -- update the shopping list + Cauldron:UpdateShoppingListFromQueue(); else -- self:info("No amount to queue for "..skillInfo.name.."."); end @@ -495,6 +510,11 @@ function Cauldron:QueueTradeSkillItem() amount = 1; end CauldronQueue:AddItem(self.db.realm.userdata[self.vars.playername].queue, skillInfo, amount); + + Cauldron:UpdateQueue(); + + -- update the shopping list + Cauldron:UpdateShoppingListFromQueue(); end --@alpha@ @@ -715,6 +735,15 @@ function Cauldron:RemoveShoppingListItem(requestor, itemName) -- end end +function Cauldron:UpdateShoppingListFromQueue() + local items = CauldronQueue:GetReagents(self.db.realm.userdata[self.vars.playername].queue); + if items then + for i,item in ipairs(items) do + Cauldron:AddItemToShoppingList(item.name, item.amount, true); + end + end +end + function Cauldron:LocaleString(str) return L[str]; end @@ -748,10 +777,6 @@ function Cauldron:HookTooltips() --@end-alpha@ end ----------------------------------------------------------------------- --- Tooltip hook functions ----------------------------------------------------------------------- - function Cauldron:SetTradeSkillItem(tooltip, itemIndex, reagentIndex) local link; local name; diff --git a/CauldronMain.xml b/CauldronMain.xml index 3c94dc8..68f8d2c 100644 --- a/CauldronMain.xml +++ b/CauldronMain.xml @@ -1162,9 +1162,20 @@ getglobal(self:GetName()):Disable(); + + GameTooltip:SetOwner(self, "ANCHOR_TOPLEFT"); + GameTooltip:ClearLines(); + GameTooltip:AddLine(Cauldron:LocaleString("Click to queue the listed amount of this item")); + GameTooltip:AddLine(Cauldron:LocaleString("Shift-click to queue the listed potential amount of this item")); + GameTooltip:Show(); + CursorUpdate(self); + + + GameTooltip:Hide(); + ResetCursor(); + Cauldron:QueueAllTradeSkillItem(); - Cauldron:UpdateQueue(); Cauldron:UpdateButtons(); @@ -1316,7 +1327,6 @@ Cauldron:QueueTradeSkillItem(); - Cauldron:UpdateQueue(); Cauldron:UpdateButtons(); @@ -1386,6 +1396,7 @@ self:SetBackdropColor(.05,.05,.05,.8); self:SetBackdropBorderColor(.4,.4,.4,1); tinsert(UISpecialFrames, self:GetName()); + CauldronFrameTitleText:SetText(Cauldron:LocaleString("Cauldron").." v"..Cauldron.version); PlaySound("igCharacterInfoOpen"); diff --git a/CauldronMainUI.lua b/CauldronMainUI.lua index c967d13..d880aef 100644 --- a/CauldronMainUI.lua +++ b/CauldronMainUI.lua @@ -544,7 +544,7 @@ function Cauldron:UpdateQueue() self:debug("UpdateQueue enter"); --@end-alpha@ - if not CauldronFrame:IsShown() then + if (not CauldronFrame) or (not CauldronFrame:IsShown()) then return; end diff --git a/Locale/Cauldron-enUS.lua b/Locale/Cauldron-enUS.lua index 7dcaa09..be19c91 100644 --- a/Locale/Cauldron-enUS.lua +++ b/Locale/Cauldron-enUS.lua @@ -107,6 +107,9 @@ L["Remove this item from the shopping list"] = true L["Available at vendor"] = true +L["Click to queue the listed amount of this item"] = true +L["Shift-click to queue the listed potential amount of this item"] = true + -- error messages L["Crafting %1$s requires the %2$s skill."] = true -- 1.7.9.5