Ok, so far the Form options aren't working. Example:
I created a window for Bear form. Unchecked everything but Dire Bear form. Added some trackers. Nothing showed up. Rechecked the other form options and the window appeared. Now it's always visible and unchecking a form does nothing.
It prints nothing when shape-shifting, I guess because there's no real error. It seems to working now. It's something to with not having a profile originally. In order to get the window to show/hide, you have to switch to that form, disable it, then reenable it.
Oh, yeah. The specs are working fine.
P.S. Any chance of getting an option/feature to reorder the trackers without deleting them? Maybe add an option for "Order" then have the window sort the trackers by that order?
It prints nothing when shape-shifting, I guess because there's no real error. It seems to working now. It's something to with not having a profile originally. In order to get the window to show/hide, you have to switch to that form, disable it, then reenable it.
Aha. It printed nothing because it wasn't listening for the proper event, which was because it wasn't correctly deciding that it ought to. Disabling and re-enabling worked around that flaw, but it should now be fixed in alpha r42 (http://static.wowace.com/content/files/371/879/Auracle-r42.zip).
P.S. Any chance of getting an option/feature to reorder the trackers without deleting them? Maybe add an option for "Order" then have the window sort the trackers by that order?
This should already be possible; if you look in the window's "layout" tab there's a box for "Trackers Locked". If you uncheck that, you should be able to click-and-drag trackers to rearrange them within that window. However there is currently no way to move a tracker from one window to another.
Aha. It printed nothing because it wasn't listening for the proper event,
Erm, actually I just realized it printed nothing because I used the wrong super-magic-WoWAce-packager-replacement tags, so it would only work if you got the source from SVN and not from the alpha package I linked. :roll: But hopefully it just works now and the debugging code isn't needed anyway.
For those folks with such drastically different specs that they want totally separate profiles for each one (rather than just showing/hiding a few windows), I've just added LibDualSpec. In theory, this should add the necessary options to the "profiles" configuration tab.
LibDualSpec-1.0 isn't referenced correctly as an external. (I use disembedded and I have to manually install it.). Honestly, I'd make support for it optional, if possible. I'll do a hard test on it this weekend when we raid;. Thanks for the updates! :)
LibDualSpec-1.0 isn't referenced correctly as an external. (I use disembedded and I have to manually install it.).
Can you clarify? I am referencing its "v1.0" tag instead of "latest" (because I don't like accidentally pulling in alpha code from someone's repo if the packager runs at a bad time), but it looks to me like the files are present in the r45 zip, so the packager seems to have pulled them in correctly. Do you get an error message, or just no new options in the "profiles" tab? Are you using r45? :)
I run with libraries disembedded. The Curse Client doesn't pull the LibDualSpec-1.0 library, I have to manually install it. Not sure if there's something screwy in the .pkgmeta or maybe the packager is borking up.
As far as getting alphas goes, you'll get that if you use mainline/trunk. When you specify tag: latest, it only pulls the latest tag, which means it has to at least be a beta.
As far as the profiles thing goes, even with LibDualSpec-1.0 installed, I'm not seeing any additional profile options.
What I meant by "optional" is that I think LibDualSpec should be an optional dependency that a user has to install on their own if they want those particular features. The code should check to see if the library exists and only add those features if it does. And, of course, not throw an error if the library is missing.
I think making LibDualSpec optional is a bad idea. The vast majority of users shouldn't have to know anything about libraries in order to get basic functionality in addons. I call dual spec awareness basic functionality because it is present in the default UI. For an addon to provide less functionality than the default UI unless the user installs a standalone copy of an optional library is extremely unintuitive.
I think making LibDualSpec optional is a bad idea. The vast majority of users shouldn't have to know anything about libraries in order to get basic functionality in addons. I call dual spec awareness basic functionality because it is present in the default UI. For an addon to provide less functionality than the default UI unless the user installs a standalone copy of an optional library is extremely unintuitive.
I'm inclined to agree; the library's code is only 10k (out of 580 uncompressed) and as long as its additions to the "profiles" setup are unintrusive, I don't see the harm; people who don't want it just won't enable that functionality.
latest Alpha is not working for me at all... nothing appears on screen, empty(!) config menu, and /auracle just opens an empty window... weird!
Oops, I borked the saved vars update routine in r45; this will happen to anyone who runs r45 without first running something between r40-r44. Try r46 (http://static.wowace.com/content/files/372/130/Auracle-r46.zip), and I really hope it didn't fubar your configuration :X
I went from 0.3.5 to r46. I wasn't able to get it work. I reinstalled and deleted SavedVarables to no avail. Errors I get on login :
[2009/07/31 17:37:03-1793-x1]: Auracle-0.4\Auracle.lua:467: bad argument #1 to 'ipairs' (table expected, got nil)
Auracle-0.4\Auracle.lua:467: in function `Shutdown'
Auracle-0.4\Auracle.lua:180: in function `?'
CallbackHandler-1.0-3:146: in function <...onLoader\CallbackHandler-1.0\CallbackHandler-1.0.lua:146>
<string>:"safecall Dispatcher[3]":4: in function <[string "safecall Dispatcher[3]"]:4>
<in C code>: ?
<string>:"safecall Dispatcher[3]":13: in function `?'
CallbackHandler-1.0-3:91: in function `Fire'
AceDB-3.0-15 (Auracle):420: in function `SetProfile'
LibDualSpec-1.0-1 (Auracle):123: in function `CheckDualSpecState'
LibDualSpec-1.0-1 (Auracle):248: in function <...Ons\Auracle\libs\LibDualSpec-1.0\LibDualSpec-1.0.lua:243>
---
[2009/07/31 17:37:03-1793-x1]: Auracle-0.4\Window.lua:1057: attempt to perform arithmetic on global 's' (a nil value)
Auracle-0.4\Auracle.lua:461: in function `Startup'
Auracle-0.4\Auracle.lua:169: in function <Interface\AddOns\Auracle\Auracle.lua:168>
(tail call): ?:
<in C code>: ?
<string>:"safecall Dispatcher[1]":9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?:
AceAddon-3.0-5 (Auracle):531: in function `EnableAddon'
AceAddon-3.0-5 (Auracle):621: in function <...ce\AddOns\Auracle\libs\AceAddon-3.0\AceAddon-3.0.lua:607>
<in C code>: in function `LoadAddOn'
Interface\FrameXML\UIParent.lua:229: in function `UIParentLoadAddOn':
Interface\FrameXML\UIParent.lua:252: in function `CombatLog_LoadUI':
Interface\FrameXML\UIParent.lua:497: in function <Interface\FrameXML\UIParent.lua:469>:
---
[2009/07/31 17:37:05-1793-x1]: Auracle-0.4\Window.lua:1057: attempt to perform arithmetic on global 's' (a nil value)
Auracle-0.4\Auracle.lua:265: in function `?'
CallbackHandler-1.0-3:146: in function <...onLoader\CallbackHandler-1.0\CallbackHandler-1.0.lua:146>
<string>:"safecall Dispatcher[1]":4: in function <[string "safecall Dispatcher[1]"]:4>
<in C code>: ?
<string>:"safecall Dispatcher[1]":13: in function `?'
CallbackHandler-1.0-3:91: in function `Fire'
AceEvent-3.0-3 (Auracle):119: in function <...ce\AddOns\Auracle\libs\AceEvent-3.0\AceEvent-3.0.lua:118>
---
Finally error I get when enabling auracle in general tab is:
[2009/07/31 17:38:29-1793-x1]: Auracle-0.4\Window.lua:1057: attempt to perform arithmetic on global 's' (a nil value)
Auracle-0.4\Auracle.lua:461: in function `Startup'
Auracle-0.4\Auracle.lua:169: in function <Interface\AddOns\Auracle\Auracle.lua:168>
(tail call): ?:
<in C code>: ?
<string>:"safecall Dispatcher[1]":9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?:
AceAddon-3.0-5 (Auracle):531: in function <...ce\AddOns\Auracle\libs\AceAddon-3.0\AceAddon-3.0.lua:524>
(tail call): ?:
Auracle-0.4\Auracle.lua:942: in function <Interface\AddOns\Auracle\Auracle.lua:942>
(tail call): ?:
<in C code>: ?
<string>:"safecall Dispatcher[2]":9: in function <[string "safecall Dispatcher[2]"]:5>
(tail call): ?:
AceConfigDialog-3.0-34:786: in function <...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:605>
(tail call): ?:
<in C code>: ?
<string>:"safecall Dispatcher[3]":9: in function <[string "safecall Dispatcher[3]"]:5>
(tail call): ?:
AceGUI-3.0-25 (Auracle):305: in function `Fire'
...le\libs\AceGUI-3.0\widgets\AceGUIWidget-CheckBox.lua:49: in function <...le\libs\AceGUI-3.0\widgets\AceGUIWidget-CheckBox.lua:45>:
None of the tabs are accessible except the general tab and profile tab and option to unlock windows in General tab is grayed out.
I think making LibDualSpec optional is a bad idea. The vast majority of users shouldn't have to know anything about libraries in order to get basic functionality in addons. I call dual spec awareness basic functionality because it is present in the default UI. For an addon to provide less functionality than the default UI unless the user installs a standalone copy of an optional library is extremely unintuitive.
I'll give you that. But an "extra feature" library shouldn't break an add-on if it's missing. Just like with LDB/LDBIcon. Check if it's there. If it is, use it. If not, move on.
I'll give you that. But an "extra feature" library shouldn't break an add-on if it's missing. Just like with LDB/LDBIcon. Check if it's there. If it is, use it. If not, move on.
I see your point -- for most folks it'll always be there because it's (supposed to be) embedded, but for the disembedded folks, it should fail more gracefully. I'll add better error checking to all the library loads.
if you really think about making it optional then just make an auracle_dualspec plugin (which would then have the dependency for LibDualSpec)
What's the advantage of that over letting the LibStub call fail gracefully, and then skipping the LibDualSpec code if it wasn't found?
I still think it's lightweight enough to be worth embedding and offering by default, I'm just going to let disembedded folks (who are by definition more OCD about these things ;)) turn it off without complaint from Auracle.
[2009/07/31 18:00:09-4699-x1]: AceConfigDialog-3.0-34:1719: AceConfigRegistry-3.0:ValidateOptionsTable(): Auracle Setup.args.windows.args.window1.args.shared.args.visibility.args.plrForm.args.Stealth.name: expected a string or funcref, got 'nil'
AceConfigRegistry-3.0-9:42: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:37>
AceConfigRegistry-3.0-9:173: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:168>
AceConfigRegistry-3.0-9:207: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:182>
AceConfigRegistry-3.0-9:217: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:182>
AceConfigRegistry-3.0-9:217: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:182>
AceConfigRegistry-3.0-9:217: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:182>
AceConfigRegistry-3.0-9:217: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:182>
AceConfigRegistry-3.0-9:217: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:182>
AceConfigRegistry-3.0-9:217: in function <...-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:182>
AceConfigRegistry-3.0-9:247: in function `ValidateOptionsTable'
AceConfigRegistry-3.0-9:287: in function `app'
AceConfigDialog-3.0-34:1719: in function `Open'
...:
<in C code>: ?
<string>:"safecall Dispatcher[2]":9: in function <[string "safecall Dispatcher[2]"]:5>
(tail call): ?:
AceConfigDialog-3.0-34:781: in function <...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:605>
(tail call): ?:
<in C code>: ?
<string>:"safecall Dispatcher[2]":9: in function <[string "safecall Dispatcher[2]"]:5>
(tail call): ?:
AceGUI-3.0-25 (Ace3):305: in function `Fire'
Ace3\AceGUI-3.0\widgets\AceGUIWidget-Button.lua:23: in function <...dOns\Ace3\AceGUI-3.0\widgets\AceGUIWidget-Button.lua:22>
Options windows doesn't open at all. The frame's there tho...
Edit:
Disabled, the config button worked. I enabled and was able to move and set the border/background, etc.
Did get this tho:
[2009/07/31 18:03:31-4699-x2]: AceConfigDialog-3.0-34:537: Usage: GameTooltip:SetText("text" [, color])
AceConfigDialog-3.0-34:537: in function <...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:524>
(tail call): ?:
<in C code>: ?
<string>:"safecall Dispatcher[2]":9: in function <[string "safecall Dispatcher[2]"]:5>
(tail call): ?:
AceGUI-3.0-25 (Ace3):305: in function `Fire'
...ns\Ace3\AceGUI-3.0\widgets\AceGUIWidget-CheckBox.lua:36: in function <...ns\Ace3\AceGUI-3.0\widgets\AceGUIWidget-CheckBox.lua:33>:
It includes what I hope is a fix for your bug, OttoDeFe, but it's also the first stab at localization support and optional library handling. With the sheer number of line changes those involve there's a decent chance I borked something else, but a guy can dream. :)
Thanks again everyone for your testing and excellent bug reports.
I created a window for Bear form. Unchecked everything but Dire Bear form. Added some trackers. Nothing showed up. Rechecked the other form options and the window appeared. Now it's always visible and unchecking a form does nothing.
No errors or anything as of yet.
Also, did you get a chance to try the per-spec visibility?
Oh, yeah. The specs are working fine.
P.S. Any chance of getting an option/feature to reorder the trackers without deleting them? Maybe add an option for "Order" then have the window sort the trackers by that order?
Aha. It printed nothing because it wasn't listening for the proper event, which was because it wasn't correctly deciding that it ought to. Disabling and re-enabling worked around that flaw, but it should now be fixed in alpha r42 (http://static.wowace.com/content/files/371/879/Auracle-r42.zip).
Awesome.
This should already be possible; if you look in the window's "layout" tab there's a box for "Trackers Locked". If you uncheck that, you should be able to click-and-drag trackers to rearrange them within that window. However there is currently no way to move a tracker from one window to another.
Erm, actually I just realized it printed nothing because I used the wrong super-magic-WoWAce-packager-replacement tags, so it would only work if you got the source from SVN and not from the alpha package I linked. :roll: But hopefully it just works now and the debugging code isn't needed anyway.
For those folks with such drastically different specs that they want totally separate profiles for each one (rather than just showing/hiding a few windows), I've just added LibDualSpec. In theory, this should add the necessary options to the "profiles" configuration tab.
So, I'd like a few folks to try out the latest alpha (http://static.wowace.com/content/files/372/22/Auracle-r45.zip), go on a few raids, etc. If all goes well, I'm going to (finally) tag this 1.0 and call it a full stable release. Yippee.
Can you clarify? I am referencing its "v1.0" tag instead of "latest" (because I don't like accidentally pulling in alpha code from someone's repo if the packager runs at a bad time), but it looks to me like the files are present in the r45 zip, so the packager seems to have pulled them in correctly. Do you get an error message, or just no new options in the "profiles" tab? Are you using r45? :)
Why's that?
In other news, I set up localization, so anyone can feel free to contribute translations. :)
As far as getting alphas goes, you'll get that if you use mainline/trunk. When you specify tag: latest, it only pulls the latest tag, which means it has to at least be a beta.
As far as the profiles thing goes, even with LibDualSpec-1.0 installed, I'm not seeing any additional profile options.
What I meant by "optional" is that I think LibDualSpec should be an optional dependency that a user has to install on their own if they want those particular features. The code should check to see if the library exists and only add those features if it does. And, of course, not throw an error if the library is missing.
I'm inclined to agree; the library's code is only 10k (out of 580 uncompressed) and as long as its additions to the "profiles" setup are unintrusive, I don't see the harm; people who don't want it just won't enable that functionality.
Oops, I borked the saved vars update routine in r45; this will happen to anyone who runs r45 without first running something between r40-r44. Try r46 (http://static.wowace.com/content/files/372/130/Auracle-r46.zip), and I really hope it didn't fubar your configuration :X
Finally error I get when enabling auracle in general tab is:
None of the tabs are accessible except the general tab and profile tab and option to unlock windows in General tab is grayed out.
I hope that helps.
Try r47 (http://static.wowace.com/content/files/372/143/Auracle-r47.zip).
I'll give you that. But an "extra feature" library shouldn't break an add-on if it's missing. Just like with LDB/LDBIcon. Check if it's there. If it is, use it. If not, move on.
I see your point -- for most folks it'll always be there because it's (supposed to be) embedded, but for the disembedded folks, it should fail more gracefully. I'll add better error checking to all the library loads.
What's the advantage of that over letting the LibStub call fail gracefully, and then skipping the LibDualSpec code if it wasn't found?
I still think it's lightweight enough to be worth embedding and offering by default, I'm just going to let disembedded folks (who are by definition more OCD about these things ;)) turn it off without complaint from Auracle.
Options windows doesn't open at all. The frame's there tho...
Edit:
Disabled, the config button worked. I enabled and was able to move and set the border/background, etc.
Did get this tho:
It includes what I hope is a fix for your bug, OttoDeFe, but it's also the first stab at localization support and optional library handling. With the sheer number of line changes those involve there's a decent chance I borked something else, but a guy can dream. :)
Thanks again everyone for your testing and excellent bug reports.