Quantcast

Another fix for local functions, and when searching, only do the search if we have a value to serach for

Ackis [11-25-08 - 19:51]
Another fix for local functions, and when searching, only do the search if we have a value to serach for
Filename
ARLFrame.lua
AckisRecipeList.lua
diff --git a/ARLFrame.lua b/ARLFrame.lua
index de01c0d..4a228eb 100644
--- a/ARLFrame.lua
+++ b/ARLFrame.lua
@@ -234,97 +234,6 @@ end
 -- Expected result:
 -- Input:
 -- Output:
--- This does the initial fillup of the DisplayStrings structure.
--- This won't run if all we're doing is expanding/contracting a recipe
-
-local function initDisplayStrings()
-
-	local exclude = addon.db.profile.exclusionlist
-
-	DisplayStrings = nil
-	DisplayStrings = {}
-
-	local insertIndex = 1
-
-	for i = 1, #sortedRecipeIndex do
-
-		local recipeIndex = sortedRecipeIndex[i]
-
-		if ((recipeDB[recipeIndex]["Display"] == true) and (recipeDB[recipeIndex]["Search"] == true)) then
-
-			local t = {}
-
-			-- add in recipe difficulty coloring
-			local recStr = ""
-
-			if (exclude[recipeIndex] == true) then
-
-				recStr = "** " .. recipeDB[recipeIndex]["Name"] .. " **"
-
-			else
-
-				recStr = recipeDB[recipeIndex]["Name"]
-
-			end
-
-			local recipeSkill = recipeDB[recipeIndex]["Level"]
-			local playerSkill = playerData.playerProfessionLevel
-
-			recStr = SetSortString(recipeSkill, recStr)
-
-			local hasFaction = checkFactions(recipeDB, recipeIndex, playerData.playerFaction, playerData["Reputation"])
-
-			t.String = ColourSkillLevel(recipeSkill, playerSkill, hasFaction, recStr)
-
-			t.sID = recipeIndex
-			t.IsRecipe = true
-			t.IsExpanded = false
-			tinsert(DisplayStrings, insertIndex, t)
-			insertIndex = insertIndex + 1
-
-		end
-
-	end
-
-end
-
--- Under various conditions, I'm going to have to redisplay my recipe list
--- This could happen because a filter changes, a new profession is chosen, or
--- a new search occurred. Use this function to do all the dirty work
-
--- Description:
--- Expected result:
--- Input:
--- Output:
-
-local function ReDisplay()
-
-	addon:UpdateFilters(recipeDB, allSpecTable, playerData)
-	sortedRecipeIndex = addon:SortMissingRecipes(recipeDB)
-
-	if (not addon.db.profile.ignoreexclusionlist) then
-
-		addon:GetExclusions(recipeDB)
-
-	end
-
-	initDisplayStrings()
-
-	SetProgressBar(playerData)
-
-	-- Make sure our expand all button is set to expandall
-	ARL_ExpandButton:SetText(L["EXPANDALL"])
-	addon:TooltipDisplay(ARL_ExpandButton, L["EXPANDALL_DESC"])
-
-	-- And update our scrollframe
-	RecipeList_Update()
-
-end
-
--- Description:
--- Expected result:
--- Input:
--- Output:

 local function checkFactions(DB, recipeIndex, playerFaction, playerRep)

@@ -422,6 +331,98 @@ local function ColourSkillLevel(recipeSkill, playerSkill, hasFaction, recStr)

 end

+
+-- Description:
+-- Expected result:
+-- Input:
+-- Output:
+-- This does the initial fillup of the DisplayStrings structure.
+-- This won't run if all we're doing is expanding/contracting a recipe
+
+local function initDisplayStrings()
+
+	local exclude = addon.db.profile.exclusionlist
+
+	DisplayStrings = nil
+	DisplayStrings = {}
+
+	local insertIndex = 1
+
+	for i = 1, #sortedRecipeIndex do
+
+		local recipeIndex = sortedRecipeIndex[i]
+
+		if ((recipeDB[recipeIndex]["Display"] == true) and (recipeDB[recipeIndex]["Search"] == true)) then
+
+			local t = {}
+
+			-- add in recipe difficulty coloring
+			local recStr = ""
+
+			if (exclude[recipeIndex] == true) then
+
+				recStr = "** " .. recipeDB[recipeIndex]["Name"] .. " **"
+
+			else
+
+				recStr = recipeDB[recipeIndex]["Name"]
+
+			end
+
+			local recipeSkill = recipeDB[recipeIndex]["Level"]
+			local playerSkill = playerData.playerProfessionLevel
+
+			recStr = SetSortString(recipeSkill, recStr)
+
+			local hasFaction = checkFactions(recipeDB, recipeIndex, playerData.playerFaction, playerData["Reputation"])
+
+			t.String = ColourSkillLevel(recipeSkill, playerSkill, hasFaction, recStr)
+
+			t.sID = recipeIndex
+			t.IsRecipe = true
+			t.IsExpanded = false
+			tinsert(DisplayStrings, insertIndex, t)
+			insertIndex = insertIndex + 1
+
+		end
+
+	end
+
+end
+
+-- Under various conditions, I'm going to have to redisplay my recipe list
+-- This could happen because a filter changes, a new profession is chosen, or
+-- a new search occurred. Use this function to do all the dirty work
+
+-- Description:
+-- Expected result:
+-- Input:
+-- Output:
+
+local function ReDisplay()
+
+	addon:UpdateFilters(recipeDB, allSpecTable, playerData)
+	sortedRecipeIndex = addon:SortMissingRecipes(recipeDB)
+
+	if (not addon.db.profile.ignoreexclusionlist) then
+
+		addon:GetExclusions(recipeDB)
+
+	end
+
+	initDisplayStrings()
+
+	SetProgressBar(playerData)
+
+	-- Make sure our expand all button is set to expandall
+	ARL_ExpandButton:SetText(L["EXPANDALL"])
+	addon:TooltipDisplay(ARL_ExpandButton, L["EXPANDALL_DESC"])
+
+	-- And update our scrollframe
+	RecipeList_Update()
+
+end
+
 -- Description:
 -- Expected result:
 -- Input:
diff --git a/AckisRecipeList.lua b/AckisRecipeList.lua
index eab13f0..fe3deaf 100644
--- a/AckisRecipeList.lua
+++ b/AckisRecipeList.lua
@@ -2065,37 +2065,41 @@ function addon:SearchRecipeDB(RecipeDB, searchstring)

 	local lowerstring = tolower(searchstring)

-	-- Go through the entire database
-	for SpellID in pairs(RecipeDB) do
+	if (lowerstring) then
+
+		-- Go through the entire database
+		for SpellID in pairs(RecipeDB) do

-		-- Get the Spell object
-		local recipe = RecipeDB[SpellID]
+			-- Get the Spell object
+			local recipe = RecipeDB[SpellID]

-		-- Set the search as false automatically
-		recipe["Search"] = false
+			-- Set the search as false automatically
+			recipe["Search"] = false

-		-- Allow us to search by spell ID
-		if sfind(tolower(SpellID),lowerstring) or
+			-- Allow us to search by spell ID
+			if sfind(tolower(SpellID),lowerstring) or

-			-- Allow us to search byitem ID
-			sfind(tolower(recipe["ItemID"]),lowerstring) or
+				-- Allow us to search byitem ID
+				sfind(tolower(recipe["ItemID"]),lowerstring) or

-			-- Allow us to search by name
-			sfind(tolower(recipe["Name"]),lowerstring) or
+				-- Allow us to search by name
+				sfind(tolower(recipe["Name"]),lowerstring) or

-			-- Allow us to search by locations
-			sfind(recipe["Locations"],lowerstring) or
+				-- Allow us to search by locations
+				sfind(recipe["Locations"],lowerstring) or

-			-- Allow us to search by specialty
-			sfind(recipe["Specialty"],lowerstring) or
-
-			-- Allow us to search by skill level
-			sfind(recipe["Level"],lowerstring) or
+				-- Allow us to search by specialty
+				sfind(recipe["Specialty"],lowerstring) or
+
+				-- Allow us to search by skill level
+				sfind(recipe["Level"],lowerstring) or

-			-- Allow us to search by Rarity
-			sfind(recipe["Rarity"],lowerstring) then
+				-- Allow us to search by Rarity
+				sfind(recipe["Rarity"],lowerstring) then

-				recipe["Search"] = true
+					recipe["Search"] = true
+
+			end

 		end