Ideas/Notes
-----------
* WoD support
** Track WoD legendary quest progress
** Instead of showing gear tooltips for your class, show them for the target player's class
*** Needed in Player and Log tabs. Player tab is hopefully easy, but Log tab can have links for
    multiple classes in it -- can tooltip classes be set per tooltip?
*** Some people might want to see others' gear as it would be for their class; use a modifier key
    like Alt or an option or both (option for always, never, when Alt held)?

* PvP support
** Show # of PvP items and PvE items equipped
** Show PvP equipped iLevel even when not in PvP combat (is there a way to check this?)
** Should show PvP average iLevel in group/database summary?
** Need an option to control this?
** Can rely on PVP_ITEM_LEVEL_TOOLTIP = "Equip: Increases item level to %d in PvP combat."
   to detect item is a PvP item for all including trinkets?

* Scaled gear support
** Show scaled iLevel and actual iLevel for every item
** Show scaled average iLevel
** Milestones, database, etc only use real iLevel

* Use frame templates for repeat items (e.g. summary rows)?

* Seen two cases where group tab hover and right click didn't work
** Last person in group that had enough people to cause scrolling
** No one in group
** Is related to being in combat when assigning onhover/onclick handlers?

* With 300+ database entries, rendering database rows all at once is a noticeable delay


Under Consideration
-------------------
* Database:
** //Maybe:// Sort by clicking on any column header
** //Maybe:// Filter results by Faction, Class, Level, etc
** //Maybe:// Ability to remove individual database entries
** //Doubtful:// Store results for multiple specs
* Group:
** //Maybe:// Sort by clicking on any column header
** //Maybe:// Show ^ and v icons for players above and below group's average iLevel
* Player:
** //Maybe:// Add hyperlinks explaining what's missing in summary text
** //Doubtful:// Add options to control the font of the summary text
** //Doubtful:// Empty sockets shown with their graphic
** //Doubtful:// In item tooltips, show set pieces worn and empty extra sockets of the inspected character
** //Doubtful:// Make item tooltips show for the inspection target's class instead of your class
* Options:
** //Maybe:// Options to configure mouse clicks for icon and Group/Database tab actions
** //Doubtful:// Make options take effect immediately and have cancel revert to previous values
* Detection:
** //Maybe:// Track WoD legendary questline progress
** //Maybe:// When item level is scaled up or down, show true max as well as current scaled values
** //Maybe:// Detect non-rare WoD gems and non-WoD enchants
** //Maybe:// Show items with PvP stats
** //Maybe:// Show items with inappropriate stats (e.g. Prot Paladin wearing Intellect gear)
** //Maybe:// Detect unspent talent points
** //Doubtful:// Detection of profession perks (e.g. enchants on rings, sockets in bracers/hands, etc)
* UI:
** //Maybe:// Ability to lock the position of the icon and interface
** //Maybe:// LibDataBroker compatibility (display results and clicks for operations)
** //Maybe:// Store window locations in options so addon load failures don't force you to reposition them
** //Maybe:// Add non-English client support via localizations
** //Doubtful:// An optional minimap button that works like the icon and can integrate with Norganna SlideBar
** //Doubtful:// Resizing of Geary interface
** //Doubtful:// Detecting empty extra sockets from a belt buckle/EotBP instead of extra gems
* Sync/Report:
** //Doubtful:// Sync database entries with group, guild members, or specific players
** //Doubtful:// Sync current group entries with group, guild members, or specific players
** //Doubtful:// Report current group details and/or summary to officer, guild, raid, or specific players


Detecting extra sockets without gems
------------------------------------
Per http://wow.curseforge.com/addons/geary/tickets/1-does-not-detect-belt-buckle-if-no-gem-is-in-it/
I think Geary should detect the belt buckle and EotBP _socket_ and not the presence of an extra gem.
For reasons passing understanding, an item link withOUT the extra socket and with an empty extra
socket is the same. For example:

This is the base item's link with no gems and no belt buckle extra socket
|cffa335ee|Hitem:86903:0:0:0:0:0:0:0:90:0:445|h|[Protector's Girdle of Endless Spring]|h|r

This is the link for a belt with a belt buckle applied, but no gem in the empty Prismatic Socket
|cffa335ee|Hitem:86903:0:4607:0:0:0:0:0:90:0:445|h|[Protector's Girdle of Endless Spring]|h|r

And this is the same item WITH a gem in the belt buckle's socket
|cffa335ee|Hitem:86903:0:4607:4585:0:0:0:0:90:0:445|h|[Protector's Girdle of Endless Spring]|h|r

The only difference between these three links are the jewelIds when a gem is placed into a socket.

So then how does the Blizzard default inspect UI show the empty Prismatic Socket?
Magic! ... Well, almost. It uses GameTooltip:SetInventoryItem(unit, slotNumber).
SetInventoryItem has some special access to information beyond the item's link. It shows
the set pieces worn by the target as well as the extra empty sockets.

At this time, I don't want to convert Geary to use SetInventoryItem for tooltip parsing.
The biggest concern is that the item tooltips in the Log and Player tabs of the Geary
interface can only use SetInventoryItem if the their current target is still the target
they inspected and that target is in range. In this case, either all data for that player
would have to be removed (like the way the Blizzard inspection UI just vanishes) or Geary
could report an item is missing a gem (in an extra socket) but the tooltip wouldn't show it
(because it has to revert to SetHyperlink which doesn't show the extra socket).


ceil with floating points
-------------------------
It appears as if floating point operations aren't as clean as expected which causes ceil to
unexpectedly bump numbers up. This was a problem with the Geary icon and Geary interface scale
options. Example:

* Set icon scale to 55% in options
* 55% is saved as floating point 0.55
* Reopen options and it has to set the slider to a 50-200 integral value
** It does this via ceil(0.55 * 100) which returns 56

A ceil(55) == 55 and printing 0.55 * 100 shows "55", but it is not actually 55.
Rather than fight with ceil, I switched to using floor.


git Commit Procedure
--------------------
With git, releases must be tagged from a git push, not via curseforge's web interface.
To tag and push the changes with the tag all in one:

$ git commit
$ vi z  # add commit message with newlines
$ git tag TAGNAME --file z
$ git push --follow-tags
$ rm z
