initial commit
This commit is contained in:
122
Core/UI/MainUI/Settings/Destroying.lua
Normal file
122
Core/UI/MainUI/Settings/Destroying.lua
Normal file
@@ -0,0 +1,122 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster --
|
||||
-- https://tradeskillmaster.com --
|
||||
-- All Rights Reserved - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
local _, TSM = ...
|
||||
local Destroying = TSM.MainUI.Settings:NewPackage("Destroying")
|
||||
local L = TSM.Include("Locale").GetTable()
|
||||
local UIElements = TSM.Include("UI.UIElements")
|
||||
local private = {}
|
||||
local ITEM_QUALITY_DESCS = { ITEM_QUALITY2_DESC, ITEM_QUALITY3_DESC, ITEM_QUALITY4_DESC }
|
||||
local ITEM_QUALITY_KEYS = { 2, 3, 4 }
|
||||
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- Module Functions
|
||||
-- ============================================================================
|
||||
|
||||
function Destroying.OnInitialize()
|
||||
TSM.MainUI.Settings.RegisterSettingPage("Destroying", "middle", private.GetDestroyingSettingsFrame)
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- Destroying Settings UI
|
||||
-- ============================================================================
|
||||
|
||||
function private.GetDestroyingSettingsFrame()
|
||||
TSM.UI.AnalyticsRecordPathChange("main", "settings", "destroying")
|
||||
return UIElements.New("ScrollFrame", "destroyingSettings")
|
||||
:SetPadding(8, 8, 8, 0)
|
||||
:AddChild(TSM.MainUI.Settings.CreateExpandableSection("Destroying", "general", L["General Options"], "")
|
||||
:AddChild(UIElements.New("Frame", "check1")
|
||||
:SetLayout("HORIZONTAL")
|
||||
:SetHeight(20)
|
||||
:SetMargin(0, 0, 0, 12)
|
||||
:AddChild(UIElements.New("Checkbox", "autoStackCheckbox")
|
||||
:SetWidth("AUTO")
|
||||
:SetFont("BODY_BODY2_MEDIUM")
|
||||
:SetText(L["Enable automatic stack combination"])
|
||||
:SetSettingInfo(TSM.db.global.destroyingOptions, "autoStack")
|
||||
)
|
||||
:AddChild(UIElements.New("Spacer", "spacer"))
|
||||
)
|
||||
:AddChild(UIElements.New("Frame", "check2")
|
||||
:SetLayout("HORIZONTAL")
|
||||
:SetHeight(20)
|
||||
:SetMargin(0, 0, 0, 12)
|
||||
:AddChild(UIElements.New("Checkbox", "autoShowCheckbox")
|
||||
:SetWidth("AUTO")
|
||||
:SetFont("BODY_BODY2_MEDIUM")
|
||||
:SetText(L["Show destroying frame automatically"])
|
||||
:SetSettingInfo(TSM.db.global.destroyingOptions, "autoShow")
|
||||
)
|
||||
:AddChild(UIElements.New("Spacer", "spacer"))
|
||||
)
|
||||
:AddChild(UIElements.New("Frame", "check3")
|
||||
:SetLayout("HORIZONTAL")
|
||||
:SetHeight(20)
|
||||
:AddChild(UIElements.New("Checkbox", "includeSoulboundCheckbox")
|
||||
:SetWidth("AUTO")
|
||||
:SetFont("BODY_BODY2_MEDIUM")
|
||||
:SetText(L["Include soulbound items"])
|
||||
:SetSettingInfo(TSM.db.global.destroyingOptions, "includeSoulbound")
|
||||
)
|
||||
:AddChild(UIElements.New("Spacer", "spacer"))
|
||||
)
|
||||
)
|
||||
:AddChild(TSM.MainUI.Settings.CreateExpandableSection("Destroying", "disenchanting", L["Disenchanting Options"], "")
|
||||
:AddChild(UIElements.New("Text", "label")
|
||||
:SetHeight(18)
|
||||
:SetMargin(0, 0, 0, 4)
|
||||
:SetFont("BODY_BODY2_MEDIUM")
|
||||
:SetText(L["Maximum disenchant quality"])
|
||||
)
|
||||
:AddChild(UIElements.New("SelectionDropdown", "maxQualityDropDown")
|
||||
:SetHeight(26)
|
||||
:SetMargin(0, 0, 0, 12)
|
||||
:SetItems(ITEM_QUALITY_DESCS, ITEM_QUALITY_KEYS)
|
||||
:SetSettingInfo(TSM.db.global.destroyingOptions, "deMaxQuality")
|
||||
)
|
||||
:AddChild(TSM.MainUI.Settings.CreateInputWithReset("deDisenchantPriceField", L["Only show items with disenchant values above this price"], "global.destroyingOptions.deAbovePrice"))
|
||||
)
|
||||
:AddChild(TSM.MainUI.Settings.CreateExpandableSection("Destroying", "ignore", L["Ignored Items"], L["Use this list to manage what items you'd like TSM to ignore from destroying."])
|
||||
:AddChild(UIElements.New("QueryScrollingTable", "items")
|
||||
:SetHeight(136)
|
||||
:GetScrollingTableInfo()
|
||||
:NewColumn("item")
|
||||
:SetTitle(L["Item"])
|
||||
:SetFont("ITEM_BODY3")
|
||||
:SetJustifyH("LEFT")
|
||||
:SetIconSize(12)
|
||||
:SetTextInfo("itemString", TSM.UI.GetColoredItemName)
|
||||
:SetIconInfo("texture")
|
||||
:SetTooltipInfo("itemString")
|
||||
:SetSortInfo("name")
|
||||
:DisableHiding()
|
||||
:Commit()
|
||||
:Commit()
|
||||
:SetQuery(TSM.Destroying.CreateIgnoreQuery())
|
||||
:SetAutoReleaseQuery(true)
|
||||
:SetSelectionDisabled(true)
|
||||
:SetScript("OnRowClick", private.IgnoredItemsOnRowClick)
|
||||
)
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- Local Script Handlers
|
||||
-- ============================================================================
|
||||
|
||||
function private.IgnoredItemsOnRowClick(_, record, mouseButton)
|
||||
if mouseButton ~= "LeftButton" then
|
||||
return
|
||||
end
|
||||
TSM.Destroying.ForgetIgnoreItemPermanent(record:GetField("itemString"))
|
||||
end
|
||||
Reference in New Issue
Block a user