The downloaded version of PitBull does not work when switching between profiles - e.g. when I have one profile for Kara, "Raid 10" say, and another for Alterac Valley, "Raid 40".
I have modified the OnProfileEnable() function to fix this, but it is a pain to keep having to do this every time I download the latest version.
What's the best approach to get this fix into the release version? Happy to email the hack I put together by trial & error to someone who knows more about PitBull & how it works.
OK this is a fix for "old" PitBull (i.e. pre-Rock). I'll take a look at Rock version later when I switch.
It correctly re-displays profiles after you've switched so you can use multiple profiles OK. Works whether you're in config mode or actively in a raid / party.
The code was developed through trial & error, largely based on another function - ChangeConfigMode() - and therefore may have redundant portions or cause unexpected side effects. Having said that, I've been using it & seems to work fine.
Add the following function in PitBull.lua and replace the call "self:UpdateAll()" in function PitBull:OnProfileEnable() with "self:ForceRedisplay()".
function PitBull:ForceRedisplay()
if currentMovingFrame then
currentMovingFrame:StopMovingOrSizing()
currentMovingFrame = nil
end
lazyLayout = lazyLayout + 1
if mySecureGroupHeader_Update then
hooksecurefunc("SecureGroupHeader_Update", mySecureGroupHeader_Update)
mySecureGroupHeader_Update = nil
SecureGroupHeader_Update = _G.SecureGroupHeader_Update
end
for group, db in pairs(self.db.profile.groups) do
if group:find("^party") or group:find("^raid") or group:find("^maintank") or group:find("^mainassist") then
self:DestroyUnitCluster(group)
end
end
for cluster, header in pairs(clusters) do
if cluster:find("^raid") or cluster:find("^party") then
self:DestroyUnitCluster(cluster)
end
end
for frame in pairs(allFrames) do
self:DestroyUnitFrame(frame)
end
if not self.db.profile.groups.player.hidden then
self:CreateUnitFrame("player")
end
if not self.db.profile.groups.pet.hidden then
self:CreateUnitFrame("pet")
end
if not self.db.profile.groups.pettarget.hidden then
self:CreateUnitFrame("pettarget")
end
if not self.db.profile.groups.target.hidden then
self:CreateUnitFrame("target")
end
if not self.db.profile.groups.targettarget.hidden then
self:CreateUnitFrame("targettarget")
end
if not self.db.profile.groups.targettargettarget.hidden then
self:CreateUnitFrame("targettargettarget")
end
if not self.db.profile.groups.focus.hidden then
self:CreateUnitFrame("focus")
end
if not self.db.profile.groups.focustarget.hidden then
self:CreateUnitFrame("focustarget")
end
if not self.db.profile.groups.focustargettarget.hidden then
self:CreateUnitFrame("focustargettarget")
end
if not self.db.profile.groups.mouseover.hidden then
self:CreateUnitFrame("mouseover")
end
if not self.db.profile.groups.mouseovertarget.hidden then
self:CreateUnitFrame("mouseovertarget")
end
for group, db in pairs(self.db.profile.groups) do
if group:find("^party") or group:find("^raid") or group:find("^maintank") or group:find("^mainassist") then
if not db.hidden and ShouldShowUnit(group) then
self:CreateUnitCluster(group)
end
end
end
for cluster, header in pairs(clusters) do
SecureGroupHeader_Update(header)
end
for frame in pairs(allFrames) do
local unit = frame:GetUnit()
if unit then
if configMode and ShouldShowUnit(unit)then
UnregisterUnitWatch(frame)
if not frame.cluster then
frame:Show()
end
frame:SetScript("OnMouseDown", configFrame_OnMouseDown)
else
RegisterUnitWatch(frame)
frame:SetScript("OnMouseDown", nil)
end
end
end
for cluster, header in pairs(clusters) do
if configMode then
local child1 = header:GetAttribute("child1")
if child1 and child1:IsShown() then
header.label:Show()
else
header.label:Hide()
end
else
header.label:Hide()
end
end
for frame in pairs(frames) do
self:UpdateLayout(frame)
end
lazyLayout = lazyLayout - 1
self:_UpdateLayouts()
end
Ok got the raid problem sorted - added a function to refresh all party & raid frames when the profile changes. Next need to work on the player, pet, target, etc frames.
Been delving into code. The way it's set up, a profile change is not fully applied to everything. Trying to figure out an easy way to force updates to all frames. Once I do, I'll let you know.
I've never been able to get profiles to work in Pitbull. Specifically, I'm trying to set up different configs for different size raids: "Raid 10", "Raid 15", etc.
I can set the profiles up as "Other" by jumping through reasonable hoops = create new profile, set up positions, logout, login again, set up next profile (if you don't logout / login, they all get mixed up). But then when I'm in a raid, switching between profiles does not work properly - I get weird combos of half previous profile and half the one I selected.
I've tried this in "old" Pitbull and also in in new Rock-based Pitbull, but still does not work. Any fix on the horizon?
Btw, I'm a huge fan of Pitbull - it's one of my favourite add ons. I really appreciate the flexibility (although it does mean I spend a fair bit of time tweaking...).
I'm having similar problems. BanzaiAlert used to work fine prior to 2.1 upgrade, but now when I log in it is set to "Suspended" and I can't unsuspend it. I haven't tested it in a group yet, only in solo (with onlyInGroup set to Off).
And I have to say I'm missing that reassuring voice (babe) letting me know when my pet's not doing it's job properly.
0
0
I have modified the OnProfileEnable() function to fix this, but it is a pain to keep having to do this every time I download the latest version.
What's the best approach to get this fix into the release version? Happy to email the hack I put together by trial & error to someone who knows more about PitBull & how it works.
Storm
0
It correctly re-displays profiles after you've switched so you can use multiple profiles OK. Works whether you're in config mode or actively in a raid / party.
The code was developed through trial & error, largely based on another function - ChangeConfigMode() - and therefore may have redundant portions or cause unexpected side effects. Having said that, I've been using it & seems to work fine.
Add the following function in PitBull.lua and replace the call "self:UpdateAll()" in function PitBull:OnProfileEnable() with "self:ForceRedisplay()".
function PitBull:ForceRedisplay()
if currentMovingFrame then
currentMovingFrame:StopMovingOrSizing()
currentMovingFrame = nil
end
lazyLayout = lazyLayout + 1
if mySecureGroupHeader_Update then
hooksecurefunc("SecureGroupHeader_Update", mySecureGroupHeader_Update)
mySecureGroupHeader_Update = nil
SecureGroupHeader_Update = _G.SecureGroupHeader_Update
end
for group, db in pairs(self.db.profile.groups) do
if group:find("^party") or group:find("^raid") or group:find("^maintank") or group:find("^mainassist") then
self:DestroyUnitCluster(group)
end
end
for cluster, header in pairs(clusters) do
if cluster:find("^raid") or cluster:find("^party") then
self:DestroyUnitCluster(cluster)
end
end
for frame in pairs(allFrames) do
self:DestroyUnitFrame(frame)
end
if not self.db.profile.groups.player.hidden then
self:CreateUnitFrame("player")
end
if not self.db.profile.groups.pet.hidden then
self:CreateUnitFrame("pet")
end
if not self.db.profile.groups.pettarget.hidden then
self:CreateUnitFrame("pettarget")
end
if not self.db.profile.groups.target.hidden then
self:CreateUnitFrame("target")
end
if not self.db.profile.groups.targettarget.hidden then
self:CreateUnitFrame("targettarget")
end
if not self.db.profile.groups.targettargettarget.hidden then
self:CreateUnitFrame("targettargettarget")
end
if not self.db.profile.groups.focus.hidden then
self:CreateUnitFrame("focus")
end
if not self.db.profile.groups.focustarget.hidden then
self:CreateUnitFrame("focustarget")
end
if not self.db.profile.groups.focustargettarget.hidden then
self:CreateUnitFrame("focustargettarget")
end
if not self.db.profile.groups.mouseover.hidden then
self:CreateUnitFrame("mouseover")
end
if not self.db.profile.groups.mouseovertarget.hidden then
self:CreateUnitFrame("mouseovertarget")
end
for group, db in pairs(self.db.profile.groups) do
if group:find("^party") or group:find("^raid") or group:find("^maintank") or group:find("^mainassist") then
if not db.hidden and ShouldShowUnit(group) then
self:CreateUnitCluster(group)
end
end
end
for cluster, header in pairs(clusters) do
SecureGroupHeader_Update(header)
end
for frame in pairs(allFrames) do
local unit = frame:GetUnit()
if unit then
if configMode and ShouldShowUnit(unit)then
UnregisterUnitWatch(frame)
if not frame.cluster then
frame:Show()
end
frame:SetScript("OnMouseDown", configFrame_OnMouseDown)
else
RegisterUnitWatch(frame)
frame:SetScript("OnMouseDown", nil)
end
end
end
for cluster, header in pairs(clusters) do
if configMode then
local child1 = header:GetAttribute("child1")
if child1 and child1:IsShown() then
header.label:Show()
else
header.label:Hide()
end
else
header.label:Hide()
end
end
for frame in pairs(frames) do
self:UpdateLayout(frame)
end
lazyLayout = lazyLayout - 1
self:_UpdateLayouts()
end
0
0
0
I've never been able to get profiles to work in Pitbull. Specifically, I'm trying to set up different configs for different size raids: "Raid 10", "Raid 15", etc.
I can set the profiles up as "Other" by jumping through reasonable hoops = create new profile, set up positions, logout, login again, set up next profile (if you don't logout / login, they all get mixed up). But then when I'm in a raid, switching between profiles does not work properly - I get weird combos of half previous profile and half the one I selected.
I've tried this in "old" Pitbull and also in in new Rock-based Pitbull, but still does not work. Any fix on the horizon?
Btw, I'm a huge fan of Pitbull - it's one of my favourite add ons. I really appreciate the flexibility (although it does mean I spend a fair bit of time tweaking...).
R.
0
Getting the following error message when starting up:
[2007/06/24 14:23:04-3723-x1]: Tablet-2.0-41499 (Bartender3):2344: attempt to index upvalue 'tooltip' (a nil value)
Happens for all add ons using Tablet - i.e. if I disable Bartender3, I'll get the same message for Prat, AtlasLoot, etc.
This is using latest set of all libs, downloaded (using WUU) at 14:20 UK time 24 Jun 07.
0
0
0
And I have to say I'm missing that reassuring voice (babe) letting me know when my pet's not doing it's job properly.