Bug (or enhancement?): currency tracking doesn't display in external tooltip w/ option selected, nor can be turned off
johndp977 opened this issue ยท 8 comments
With the "display item in an external tooltip" option selected, currency tooltips still embed BagSync's tracking data in the default tooltip, and the tooltip modifier key has no effect.
Also, when "enable BagSync tooltips" is unchecked, currency tooltips still display BagSync's tracking data.
This feels like it could be a bug, but could also be because currency tooltips work differently than normal item tooltips. In my case, I actually have a separate addon that I hacked together to do currency and gold tracking, and ideally I'd like to be able to just turn off BagSync's currency tracking all together. I certainly don't mind if it's still done in the background, as long as there's not anything visible outside of the dedicated BagSync window for it.
I believe you did something recently to hide extra info for Trader's Tender, but it was a hard-coded special rule, so this would just be something more generic that I can apply to any/all of my currencies if I choose to get the exact same behavior as Trader's Tender.
I think there are a few options to accomplish this.
-
If it's just a bug, then maybe it's something easy to fix ;)
-
If it's because currency is some sort of unique tooltip case, provide a config option to toggle tooltip integration specifically for currencies. All background tracking could remain the same, just short-circuit whatever code appends it to the currency tooltip.
-
Provide a way to blacklist currency IDs, then theoretically I could blacklist all relevant IDs to keep them from showing up in tooltips. A little tedious but certainly fine since currencies aren't added that often. Or, perhaps an option to just blacklist currency tracking all together.
Hopefully there is something you would consider implementing, thanks!
Currency in your bags and inventory is treated differently then currency in the currency window. One has an ItemID the other has CurrencyID. You can blame Blizzard for this lol. The reason the tooltips show for the currency in the bags is because they are treated as actual items with ItemID's.
Now if you just mean the Currency window, I can put an option to turn off Currency display there. Otherwise if it's in your bags that's something totally different.
Also I can't just add it to the Blacklist module. CurrencyID from the Currency Window can share the same number with an ItemID. There can be a CurrencyID of 1243 for example and an itemID of 1243. So it would block both. I really don't want to have to edit the blacklist module to add some crazy roundabout way to add support for CurrencyID.
Yep, I'm only referring to the tooltip displayed from the currency window, not currency shown on bags (if any). An option to turn off BagSync's currency display from the currency window would do the trick (ie short-circuit the logic in Tooltip:CurrencyTooltip()).
I recall some of these difficulties with currencies too. I think maybe an event is fired upon mousing over a currency, which was easy to work with in addons. But detecting when moused over a currency and then pressing a key (eg shift) became a lot more tedious, particularly figuring out which currency was actually moused over...
I was thinking more about this, and rather than a dedicated config setting for currencies, I wondered if there's a better option that ultimately makes the addon a lot more flexible and gives users however much or little they want out of it, while still being relatively simple for you to implement.
Sorry this is so wordy, bear with me ;)
So, what do you think about providing the option to simply turn on/off tracking for the discrete categories BagSync currently tracks? It would only be categories that have clearly defined entry points in your code that can easily be broken out and conditionally be executed, eg bags, bank, gbank, AH, mail, void storage, gold, etc. But with that assumption I actually think this would be pretty easy to do. I imagine that most (or all) of the data tracking done is triggered by events, which would provide clear entry points, at which point it may be as simple as a conditional statement. Or, perhaps events could just be registered/unregistered as appropriate.
I think this solution has a few benefits.
-
It gives users almost complete and total flexibility - in my case I could basically turn off everything except bags/bank/gbank, right now I have no need or desire to have any other repositories tracked at all. Between this and the whitelist/blacklist features, a user would be able to get as broad or granular as they want with almost everything the addon does.
-
This could also reduce the addon's overhead (perhaps significantly) as users start to build up saved tables with many characters and thousands of items. While I don't think it's really justified, someone commented on the Stash addon saying they use it because it's more lightweight than BagSync, and this could be a great way to pare down some of the work being done and memory being used that might be completely unnecessary for some users.
-
It's probably quite easy to do - just throwing together some config checkboxes (turned on by default), and dropping some conditionals in the code as needed.
I almost think of this as how TradeSkillMaster used to be. There used to be a base addon, and a number of optional modules that could be installed depending on what the user wanted. Now, TSM is this single massive monolithic addon, with hooks all over the place that really aren't necessary for someone that just wants to do auction posting. I'm definitely not suggesting breaking BagSync into modules, but more just the approach of offering modular options for tracking.
Your addon is great, and the more it does and the more people use it, the more valuable this type of flexibility becomes ;) Sorry again for so much text, but hopefully this is something you might consider, let me know what you think!
I have read your suggestion my friend, I'm just trying to catch up to other tickets and workload before I can focus my attention on this particular ticket. Once I wrap up these rewrites I can work on some of these enhancements.
I'm currently dabbling in a config screen that allows you to toggle on/off elements of the BagSync scanning and displaying process.
Such as the following categories:
- bag
- bank
- reagents
- equip
- mailbox
- void
- auction
- guild
- professions
- currency
I have implemented the External Tooltip for the Currency. I'm now finalizing the changes to the tracking configuration panel.