Johnny C. Lam [10-19-12 - 01:38]
diff --git a/Ovale.lua b/Ovale.lua
index 1b91834..42f9633 100644
--- a/Ovale.lua
+++ b/Ovale.lua
@@ -53,6 +53,8 @@ Ovale.combatStartTime = nil
--needCompile is true, false, or "quick"
Ovale.needCompile = false
Ovale.listes = {}
+--debug flags
+Ovale.debugFlags = {}
--</public-static-properties>
--Key bindings
@@ -64,6 +66,12 @@ BINDING_NAME_OVALE_CHECKBOX3 = L["Inverser la boîte à cocher "].."(4)"
BINDING_NAME_OVALE_CHECKBOX4 = L["Inverser la boîte à cocher "].."(5)"
--<public-static-methods>
+function Ovale:debugPrint(flag, ...)
+ if self.debugFlags[flag] then
+ self:Print("[" .. flag .. "]", ...)
+ end
+end
+
function Ovale:Debug()
self:Print(OvaleCompile:DebugNode(self.masterNodes[1]))
end
@@ -84,9 +92,11 @@ function Ovale:CompileAll()
local code = OvaleOptions:GetProfile().code
if code then
if self.needCompile == "quick" then
+ self.debugPrint("compile", "quick compile")
code = OvaleCompile:CompileDeclarations(code)
code = OvaleCompile:CompileInputs(code)
elseif self.needCompile then
+ self.debugPrint("compile", "FULL compile")
self.masterNodes = OvaleCompile:Compile(code)
end
OvaleCompile:UpdateNodesEnabled(self.masterNodes, self.masterNodesEnabled)
@@ -144,19 +154,21 @@ function Ovale:OnDisable()
self.frame:Hide()
end
-function Ovale:UNIT_INVENTORY_CHANGED()
+function Ovale:UNIT_INVENTORY_CHANGED(event)
if self.compileOnItems then
+ self:debugPrint("compile", event)
self.needCompile = self.needCompile or "quick"
else
self.refreshNeeded.player = true
end
end
-function Ovale:Ovale_UpdateShapeshiftForm()
+function Ovale:Ovale_UpdateShapeshiftForm(event)
if Ovale.compileOnStances then
- Ovale.needCompile = self.needCompile or "quick"
+ self:debugPrint("compile", event)
+ self.needCompile = self.needCompile or "quick"
else
- Ovale.refreshNeeded.player = true
+ self.refreshNeeded.player = true
end
end
@@ -171,12 +183,14 @@ end
--Called when a glyph has been added
--The script needs to be compiled
function Ovale:GLYPH_ADDED(event)
+ self:debugPrint("compile", event)
self.needCompile = self.needCompile or "quick"
end
--Called when a glyph has been updated
--The script needs to be compiled
function Ovale:GLYPH_UPDATED(event)
+ self:debugPrint("compile", event)
self.needCompile = self.needCompile or "quick"
end
@@ -238,6 +252,7 @@ end
local function OnCheckBoxValueChanged(widget)
OvaleOptions:GetProfile().check[widget.userdata.k] = widget:GetValue()
if Ovale.casesACocher[widget.userdata.k].compile then
+ Ovale.debugPrint("compile", "checkbox value changed: " .. widget.userdata.k)
Ovale.needCompile = Ovale.needCompile or "quick"
end
end
@@ -245,6 +260,7 @@ end
local function OnDropDownValueChanged(widget)
OvaleOptions:GetProfile().list[widget.userdata.k] = widget.value
if Ovale.listes[widget.userdata.k].compile then
+ Ovale.debugPrint("compile", "list value changed: " .. widget.userdata.k)
Ovale.needCompile = Ovale.needCompile or "quick"
end
end
diff --git a/OvaleData.lua b/OvaleData.lua
index ba3d0a8..34e2184 100644
--- a/OvaleData.lua
+++ b/OvaleData.lua
@@ -282,7 +282,8 @@ function OvaleData:UNIT_PET()
end
--The user learnt a new spell
-function OvaleData:SPELLS_CHANGED()
+function OvaleData:SPELLS_CHANGED(event)
+ Ovale.debugPrint("compile", event)
self:FillSpellList()
Ovale.needCompile = Ovale.needCompile or "quick"
end
@@ -379,6 +380,7 @@ end
function OvaleData:RemplirListeTalents()
local talentId = 1
+ local needCompile = false
while true do
local name, texture, tier, column, selected, available = GetTalentInfo(talentId)
if not name then
@@ -393,9 +395,13 @@ function OvaleData:RemplirListeTalents()
self.pointsTalent[talentId] = 0
end
self.listeTalentsRemplie = true
- Ovale.needCompile = Ovale.needCompile or "quick"
+ needCompile = Ovale.needCompile or "quick"
talentId = talentId + 1
end
+ if needCompile then
+ Ovale.debugPrint("compile", "filling talent list")
+ Ovale.needCompile = needCompile
+ end
end
function OvaleData:FirstInit()
diff --git a/OvaleOptions.lua b/OvaleOptions.lua
index a81764e..456d46d 100644
--- a/OvaleOptions.lua
+++ b/OvaleOptions.lua
@@ -12,7 +12,7 @@
OvaleOptions = LibStub("AceAddon-3.0"):NewAddon("OvaleOptions", "AceEvent-3.0", "AceConsole-3.0")
--<private-static-properties>
-local strgsub = string.gsub
+local strgmatch, strgsub, tostring = string.gmatch, string.gsub, tostring
--</private-static-properties>
--<public-static-properties>
@@ -286,6 +286,7 @@ local options =
end,
set = function(info,v)
OvaleOptions.db.profile.code = v
+ Ovale.debugPrint("compile", "accepting script")
Ovale.needCompile = true
end,
width = "full"
@@ -300,6 +301,7 @@ local options =
end,
func = function()
OvaleOptions.db.profile.code = OvaleOptions.db.defaults.profile.code
+ Ovale.debugPrint("compile", "restoring default script")
Ovale.needCompile = true
end,
}
@@ -355,6 +357,39 @@ local options =
Ovale:Print(OvaleState.state.eclipse)
end
},
+ debugflags =
+ {
+ name = "List debug flags",
+ type = "execute",
+ func = function()
+ local flags
+ for flag in pairs(Ovale.debugFlags) do
+ if flags then
+ flags = flags .. ", " .. flag
+ else
+ flags = flag
+ end
+ end
+ if flags then
+ Ovale:Print(flags)
+ end
+ end
+ },
+ toggledebug =
+ {
+ name = "Toggle debug flag",
+ type = "input",
+ set = function(info, value)
+ for flag in strgmatch(value, "[%w_]+") do
+ if Ovale.debugFlags[flag] then
+ Ovale.debugFlags[flag] = nil
+ else
+ Ovale.debugFlags[flag] = true
+ end
+ end
+ end,
+ get = nil,
+ },
talent =
{
order = -4,
@@ -462,6 +497,7 @@ function OvaleOptions:FirstInit()
self.db.RegisterCallback( self, "OnProfileCopied", "HandleProfileChanges" )
if self.db.profile.code then
+ Ovale.debugPrint("compile", "setting script during addon initialization")
Ovale.needCompile = true
end
end
@@ -469,6 +505,7 @@ end
function OvaleOptions:HandleProfileChanges()
if self.firstInit then
if (self.db.profile.code) then
+ Ovale.debugPrint("compile", "changing profiles")
Ovale.needCompile = true
end
end