Some fixes to the Professions window
Xruptor [08-27-16 - 00:08]
Some fixes to the Professions window
-Added some more smart sorting and processing for professions with no recipes.
diff --git a/modules/professions.lua b/modules/professions.lua
index 9f5104c..fd0d98e 100644
--- a/modules/professions.lua
+++ b/modules/professions.lua
@@ -43,41 +43,58 @@ function Professions:AddEntry(entry, isHeader)
local highlightColor = {1, 0, 0}
local label = AceGUI:Create("InteractiveLabel")
- label.userdata.highlight = label.frame:CreateTexture(nil, "BACKGROUND") --userdata gets deleted when widget is recycled
- label.userdata.highlight:SetAllPoints()
- label.userdata.highlight:SetBlendMode("ADD")
- label.userdata.highlight:SetTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight") --userdata gets deleted when widget is recycled
- label.userdata.highlight:Hide()
-
+ --I know you aren't supposed to but I'm going to have to put it on the label object. Only because when using userdata the texture sticks around even with release.
+ --So I'm forced to have to add it to label and do a custom OnRelease to get rid of it for other addons.
+ if not label.headerhighlight then
+ label.headerhighlight = label.frame:CreateTexture(nil, "BACKGROUND") --userdata gets deleted when widget is recycled
+ label.headerhighlight:SetAllPoints()
+ label.headerhighlight:SetBlendMode("ADD")
+ label.headerhighlight:SetTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight") --userdata gets deleted when widget is recycled
+ end
+ --remove the highlight texture on widget release for other addons
+ local oldOnRelease = label.OnRelease
+ label.OnRelease = function(self)
+ if self.headerhighlight then
+ self.headerhighlight:SetTexture(nil)
+ self.headerhighlight = nil
+ end
+ if oldOnRelease then
+ oldOnRelease(self)
+ end
+ end
+
label.userdata.color = {1, 1, 1}
-
+ label.headerhighlight:Hide() --hide on default
+
if isHeader then
label:SetText(entry.player)
label:SetFont("Fonts\\FRIZQT__.TTF", 14, THICKOUTLINE)
label:SetFullWidth(true)
label:SetColor(unpack(label.userdata.color))
- label.userdata.highlight:Show()
label.label:SetJustifyH("CENTER") --don't like doing this until they update Ace3GUI
label.userdata.isHeader = isHeader
+ label.userdata.hasRecipes = false
+ label.headerhighlight:Show()
else
- label:SetText(entry.name)
+ local labelText = entry.name..format(" |cFFFFFFFF(%s)|r", entry.level)
+ label:SetText(labelText)
label:SetFont("Fonts\\FRIZQT__.TTF", 14, THICKOUTLINE)
label:SetFullWidth(true)
- if entry.recipeIndex <= 2 then
+ if entry.recipes then
label.userdata.color = {153/255,204/255,51/255} --primary profession color it green
else
label.userdata.color = {102/255,153/255,1} --gathering profession color it blue
end
- label.userdata.highlight:Hide()
label:SetColor(unpack(label.userdata.color))
label.label:SetJustifyH("LEFT")--don't like doing this until they update Ace3GUI
label.userdata.isHeader = isHeader
+ label.userdata.hasRecipes = entry.recipes
end
label:SetCallback(
"OnClick",
function (widget, sometable, button)
- if "LeftButton" == button then
+ if "LeftButton" == button and label.userdata.hasRecipes then
print("left")
end
end)
@@ -115,8 +132,10 @@ function Professions:DisplayList()
local playerName = BSYC:GetCharacterRealmInfo(yName, yRealm)
for q, r in pairs(v) do
- local tName, tLevel = strsplit(",", r)
- table.insert(tmp, { name=tName, level=tLevel, player=playerName, recipeIndex=q } )
+ local chkRecipes = false
+ local tName, tLevel, tRecipeList = strsplit(",", r)
+ if tRecipeList then chkRecipes = true end
+ table.insert(tmp, { name=tName, level=tLevel, player=playerName, recipeIndex=q, recipes=chkRecipes } )
count = count + 1
end
@@ -138,6 +157,4 @@ function Professions:DisplayList()
self.scrollframe.frame:Hide()
end
-
-
end
\ No newline at end of file
diff --git a/modules/search.lua b/modules/search.lua
index e879e53..56be3bf 100644
--- a/modules/search.lua
+++ b/modules/search.lua
@@ -135,11 +135,7 @@ function Search:AddEntry(entry)
label:SetCallback(
"OnClick",
function (widget, sometable, button)
- if "LeftButton" == button then
- print("left")
- elseif "RightButton" == button then
- print("right")
- end
+ ChatEdit_InsertLink(link)
end)
label:SetCallback(
"OnEnter",