Screencaps of the dialogs from a utility I started on a good year ago and am finally cleaning up the last couple of bugs in. I'd gotten tired of hand-editing text files to product quick-raid button XML.
The general idea is to create spell lines for each class, fill in the spells and their levels (level 0 being for arbitrary commands like cancel_spellcast and raidsay), then for each class assign spell lines to the 5 QRBs. Storage is separate and can store any number of spell lines for each class, so once a line's defined it doesn't just disappear if you stop using it.
Yes, this is the kind of stuff I do to relax when my brain's fried from untangling nasty XML parsing code and making single-threaded code multi-threaded (when it was never designed to be) at work and picking apart weird XML and doing positioning arithmetic in Profit.