implement new feature "beats_translate_to_sync"

Described here: https://bugs.launchpad.net/mixxx/+bug/1180052

I can change all the skins if needed, but I thought 1.12 was going to ship with new skins, so I don't want to waste effort. Let me know.

Note that this feature can cause a (minor, in my opinion) sync bug to be more noticeable. I described the bug here http://sourceforge.net/p/mixxx/mailman/message/32711547/
Just wanted to chime in here and ask why we don't also allow for
adjustments to the beatgrid regardless of your use case... While your
example is one that should be covered, there should be an easier way to
simply nudge the beatgrid right or left by the smallest increment. Right
now adjusting the beatgrid is less than intuitive and I think allowing for
a simple fine adjustment to the beatgrid would cover this and make it very
useful.

Doodlebro
On Aug 25, 2014 10:55 AM, "Ryan Kramer" <notifications@github.com> wrote:

> In src/skin/tooltips.cpp:
>
> > @@ -232,7 +232,8 @@ void Tooltips::addStandardTooltips() {
> >
> >      add("beats_translate_curpos")
> >              << tr("Adjust Beatgrid")
> > -            << tr("Adjust beatgrid so the closest beat is aligned with the current play position.");
> > +            << QString("%1: %2").arg(leftClick, tr("Adjust beatgrid so the closest beat is aligned with the current play position."))
> > +            << QString("%1: %2").arg(rightClick, tr("While playing, adjust beatgrid so that its beats are aligned with another playing deck."));
>
> It's hard to come up with a useful description that is also technically
> accurate. In which case, we should favor "useful to the user" over
> "technically accurate". Honestly, I didn't like it when I wrote it, and I
> don't think any of the suggestions are much better.
>
> The use case is "I've nudged this deck into sync with another deck. I want
> to shift the beatgrid (of either deck) to reflect the nudging I've just
> done." I think an ideal tooltip would convey this use case. Perhaps "Adjust
> beatgrid to match another playing deck" is better? (And it's generic enough
> that it's not technically inaccurate regarding the single beat/multiple
> beats.)
>
> And technically, this function works even if neither deck is playing. I
> don't see any usefulness to using this on stopped decks, but I didn't see a
> reason to disable it either. Should I change the code to make it a no-op if
> either deck is stopped?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/mixxxdj/mixxx/pull/318/files#r16665856>.
>