From a6e260d8994b39f8f602aba4a532aa1eefb15162 Mon Sep 17 00:00:00 2001 From: Manuel Simon Hirsig Date: Sat, 26 Sep 2015 14:11:08 +0200 Subject: [PATCH] open all now very fast without issues --- Postal.lua | 54 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/Postal.lua b/Postal.lua index bdc0063..0960b84 100644 --- a/Postal.lua +++ b/Postal.lua @@ -71,6 +71,8 @@ function Postal:OnEnable() oldTakeInboxMoney = OpenMailMoneyButton:GetScript("OnClick") end +local open_all = false + function Postal:MAIL_CLOSED() Postal:ClearItems() PostalGlobalFrame.total = 0 @@ -499,6 +501,25 @@ function Postal:TF_Show() end function Postal:Inbox_OnUpdate(elapsed) + + if open_all then + local i = 1 + local _, _, _, _, money, CODAmount, _, hasItem = GetInboxHeaderInfo(i) + while CODAmount and CODAmount > 0 do + i = i + 1 + _, _, _, _, money, CODAmount, _, hasItem = GetInboxHeaderInfo(i) + end + if i > GetInboxNumItems() then + open_all = false + elseif hasItem then + self.hooks["TakeInboxItem"].orig(i) + elseif money > 0 then + TakeInboxMoney(i) + else + DeleteInboxItem(i) + end + end + if Postal_addItem then Postal_addItem[4] = Postal_addItem[4] - elapsed if Postal_addItem[4] <= 0 then @@ -634,24 +655,28 @@ function Postal_Inbox_SetSelected() end function Postal_Inbox_OpenSelected(openAll) - Postal:Inbox_DisableClicks(1) - PostalInboxFrame.num = 0 - PostalInboxFrame.timeout = Postal_PICKDELAY - PostalInboxFrame.id = {} - PostalInboxFrame.openSelected = not openAll if openAll then - for i = 1, GetInboxNumItems() do - PostalInboxFrame.num = PostalInboxFrame.num + 1 - tinsert(PostalInboxFrame.id, i) - end + open_all = true else - for k, v in Postal_SelectedItems do - PostalInboxFrame.num = PostalInboxFrame.num + 1 - tinsert(PostalInboxFrame.id, v) + Postal:Inbox_DisableClicks(1) + PostalInboxFrame.num = 0 + PostalInboxFrame.timeout = Postal_PICKDELAY + PostalInboxFrame.id = {} + PostalInboxFrame.openSelected = not openAll + if openAll then + for i = 1, GetInboxNumItems() do + PostalInboxFrame.num = PostalInboxFrame.num + 1 + tinsert(PostalInboxFrame.id, i) + end + else + for k, v in Postal_SelectedItems do + PostalInboxFrame.num = PostalInboxFrame.num + 1 + tinsert(PostalInboxFrame.id, v) + end end + PostalInboxFrame.numMails = PostalInboxFrame.num + Postal_SelectedItems = {} end - PostalInboxFrame.numMails = PostalInboxFrame.num - Postal_SelectedItems = {} end function Postal:InboxFrame_Update() @@ -698,6 +723,7 @@ function Postal:InboxFrame_OnClick() end function Postal:Inbox_Abort() + open_all = nil PostalInboxFrame.num = nil PostalInboxFrame.timeout = nil PostalInboxFrame.id = {}