Quantcast

Add allow friends/party to be filtered even if on exempt list [Ticket #5]

Erik L. Vonderscheer [11-02-10 - 04:28]
Add allow friends/party to be filtered even if on exempt list [Ticket #5]
Filename
TradeFilter3.lua
TradeFilter3.toc
TradeFilter3Options.lua
diff --git a/TradeFilter3.lua b/TradeFilter3.lua
index fab7c5f..848cd29 100644
--- a/TradeFilter3.lua
+++ b/TradeFilter3.lua
@@ -91,6 +91,8 @@ defaults = {
 		editfilterTRADE_enable = false,
 		editfilterBASE_enable = false,
 		editfilterBG_enable = false,
+		exmptfriendslist = true,
+		exmptparty = true,
 		ebl = false,
 		ewl = false,
 		blacklist_enable = true,
@@ -124,7 +126,7 @@ function TF3:OnInitialize()
 	local AC = LibStub("AceConsole-3.0")
 	AC:RegisterChatCommand("tf", function() TF3:OpenOptions() end)
 	AC:RegisterChatCommand("filter", function() TF3:OpenOptions() end)
-	AC:Print(L.TOC.Title .. " " .. TF3.version .. " " .. L["ENABLED"])
+	AC:Print(L.TOC.Title .. ": " .. TF3.version .. " " .. L["ENABLED"])

 	local ACR = LibStub("AceConfigRegistry-3.0")
 	ACR:RegisterOptionsTable("TradeFilter3", options)
@@ -271,12 +273,12 @@ function TF3:GetColoredName(userID, cName)
 		if (englishClass) then
 			local classColorTable = RAID_CLASS_COLORS[englishClass]
 			if (not classColorTable) then
-				return userID;
+				return userID
 			end
 				return string.format("\124cff%.2x%.2x%.2x", classColorTable.r*255, classColorTable.g*255, classColorTable.b*255)..userID.."\124r"
 		end
 	end
-	return userID;
+	return userID
 end

 --[[ Party Functions ]]--
@@ -302,7 +304,7 @@ function TF3:GetParty()
 		for i=1, numPartyMembers do
 			local partymember = UnitName("party"..i)
 			if partymember then
-				currentParty[i] = partymember
+				TF3.currentParty[i] = partymember
 			end
 		end
 		if (TF3.db.profile.debug) then
@@ -319,6 +321,7 @@ function TF3:GetParty()
 end

 function TF3:IsParty(userID)
+	if not(TF3.db.profile.exmptparty) then return false end
 	local currentParty = TF3.currentPartyMembers
 	for _,partymember in ipairs(currentParty) do
 		if find(userID,partymember) then
@@ -380,6 +383,7 @@ function TF3:Removed(event, name)
 end

 function TF3:IsFriend(userID)
+	if not(TF3.db.profile.exmptfriendslist) then return false end
 	local friends = TF3.db.profile.friendslist
 	for _,name in ipairs(friends) do
 		if find(userID,name) then
@@ -519,9 +523,7 @@ function TF3:FindFrame(toFrame, msg)
 			return
 		end
 	end
-	if (toFrame ~= name) then
-		TF3:CreateFrame(toFrame, msg)
-	end
+	TF3:CreateFrame(toFrame, msg)
 end

 function TF3:CreateFrame(newFrame, msg)
diff --git a/TradeFilter3.toc b/TradeFilter3.toc
index de718b2..c57c413 100644
--- a/TradeFilter3.toc
+++ b/TradeFilter3.toc
@@ -1,24 +1,18 @@
 ## Interface: 40000
-#@alpha@
-## Title: @localization(locale="enUS", key="Title", namespace="ToC")@ DEV: @project-version@
-#@end-alpha@
-#@non-alpha@
+## Version: @project-version@
+## X-WoWI-ID: 13784
+
 ## Title: @localization(locale="enUS", key="Title", namespace="ToC")@
-#@end-non-alpha@
 ## Title-deDE: @localization(locale="deDE", key="Title", namespace="TOC")@
 ## Title-zhCN: @localization(locale="zhCN", key="Title", namespace="TOC")@
 ## Title-zhTW: @localization(locale="zhTW", key="Title", namespace="TOC")@
 ## Title-frFR: @localization(locale="frFR", key="Title", namespace="TOC")@
-#@alpha@
-## Notes: @localization(locale="enUS", key="Notes", namespace="TOC")@ DEV: @project-version@
-#@end-alpha@
-#@non-alpha@
 ## Notes: @localization(locale="enUS", key="Notes", namespace="TOC")@
-#@end-non-alpha@
 ## Notes-deDE: @localization(locale="deDE", key="Notes", namespace="TOC")@
 ## Notes-zhCN: @localization(locale="zhCN", key="Notes", namespace="TOC")@
 ## Notes-zhTW: @localization(locale="zhTW", key="Notes", namespace="TOC")@
 ## Notes-frFR: @localization(locale="frFR", key="Notes", namespace="TOC")@
+
 ## Author: @project-author@
 ## X-Date: @project-date-iso@
 ## X-Credits: Inspiration: crashmstr  Translations: Contiki
@@ -27,15 +21,10 @@
 ## X-Category: Chat & Communication
 ## X-Localizations: enUS, deDE
 ## X-License: BSD
-## Version: @project-version@
-## X-WoWI-ID: 13784
-
 ## SavedVariables: TradeFilter3DB

 ## OptionalDeps: Ace3, LibAboutPanel, LibDataBroker-1.1, LibFriends-1.0
-#@no-lib-strip@
 ## X-Embeds: Ace3, LibAboutPanel, LibDataBroker-1.1, LibFriends-1.0
-#@end-no-lib-strip@

 ## LoadManagers: AddonLoader
 ## X-LoadOn-Always: delayed
diff --git a/TradeFilter3Options.lua b/TradeFilter3Options.lua
index 3c82a8c..f219e28 100644
--- a/TradeFilter3Options.lua
+++ b/TradeFilter3Options.lua
@@ -235,8 +235,7 @@ options = {
 							disabled = function()
 								return not TF3.db.profile.turnOn
 							end,
-							name = "TRADE Filters",
-							desc = "TRADE Filters",
+							name = L["TRADE Filters"],
 							args = {
 								optionsHeader1 = {
 									type	= "header",
@@ -315,8 +314,7 @@ options = {
 							disabled = function()
 								return not TF3.db.profile.turnOn
 							end,
-							name = "BASE Filters",
-							desc = "BASE Filters",
+							name = L["BASE Filters"],
 							args = {
 								optionsHeader1 = {
 									type	= "header",
@@ -395,8 +393,7 @@ options = {
 							disabled = function()
 								return not TF3.db.profile.turnOn
 							end,
-							name = "BG Filters",
-							desc = "BG Filters",
+							name = L["BG Filters"],
 							args = {
 								optionsHeader1 = {
 									type	= "header",
@@ -930,9 +927,10 @@ options = {
 						},
 					},
 				},
-				tableGroup = {
+				exemptGroupMain = {
 					type = "group",
 					handler = TF3,
+					childGroups = "tab",
 					order = 6,
 					disabled = function()
 						return not TF3.db.profile.turnOn
@@ -940,59 +938,79 @@ options = {
 					name = L["Exempt List"],
 					desc = L["Current Exempt List"],
 					args = {
-						optionsHeader7 = {
-							type = 'header',
+						enable_exempt_party = {
+							type = 'toggle',
 							order = 1,
-							name = L["Exempt Party Members"],
+							disabled = false,
+							name = "Party Members",
+							desc = "If enabled party members will be exempt from filtration.",
+							get = function() return TF3.db.profile.exmptparty end,
+							set = function() TF3.db.profile.exmptparty = not TF3.db.profile.exmptparty end,
 						},
-						currentPartyMembers_table_content = {
-							type = 'description',
-							fontSize = "medium",
-							disabled = true,
+						enable_exempt_friends = {
+							type = 'toggle',
 							order = 2,
-							name = function()
-								local ret = ""
-								for k,v in pairs(TF3.currentPartyMembers) do
-									if ret == "" then
-										ret = v
-									else
-										ret = ret .. "\n" .. v
-									end
-								end
-								return ret
-							end,
+							disabled = false,
+							name = "Friends",
+							desc = "If enabled your friends list will be exempt from filtration.",
+							get = function() return TF3.db.profile.exmptfriendslist end,
+							set = function() TF3.db.profile.exmptfriendslist = not TF3.db.profile.exmptfriendslist end,
 						},
-						blank_space3 = {
-							type = 'description',
+						exemptGroupParty = {
+							type = "group",
+							handler = TF3,
 							order = 3,
-							name = "\n",
+							disabled = function()
+								return not TF3.db.profile.turnOn
+							end,
+							name = L["Exempt Party Members"],
+							args = {
+								currentPartyMembers_table_content = {
+									type = 'description',
+									fontSize = "medium",
+									disabled = true,
+									order = 1,
+									name = function()
+										local ret = ""
+										for k,v in pairs(TF3.currentPartyMembers) do
+											if ret == "" then
+												ret = v
+											else
+												ret = ret .. "\n" .. v
+											end
+										end
+										return ret
+									end,
+								},
+							},
 						},
-						optionsHeader8 = {
-							type = 'header',
+						exemptGroupFriends = {
+							type = "group",
+							handler = TF3,
 							order = 4,
-							name = L["Exempt Friend List"],
-						},
-						currentFriends_table_content = {
-							type = 'description',
-							fontSize = "medium",
-							disabled = true,
-							order = 5,
-							name = function()
-								local ret = ""
-								for k,v in pairs(TF3.db.profile.friendslist) do
-									if ret == "" then
-										ret = v
-									else
-										ret = ret .. "\n" .. v
-									end
-								end
-								return ret
+							disabled = function()
+								return not TF3.db.profile.turnOn
 							end,
-						},
-						blank_space4 = {
-							type = 'description',
-							order = 6,
-							name = "\n",
+							name = L["Exempt Friend List"],
+							args = {
+								currentFriends_table_content = {
+									type = 'description',
+									fontSize = "medium",
+									disabled = true,
+									order = 1,
+									name = function()
+										local ret = ""
+										for k,v in pairs(TF3.db.profile.friendslist) do
+											if ret == "" then
+												ret = v
+											else
+												ret = ret .. "\n" .. v
+											end
+										end
+										return ret
+									end,
+								},
+							},
 						},
 					},
 				},