Problem: On Windows, if you set the "length" radio button in the selection bar, then tab round to it, this sets the "end" radio button.
This was caused by commit 7e49dc4.
The fix is to restore the previous code just for Windows.
... whenever they really describe the size of a buffer that fits in memory, or
of a block file (which is never now more than a megabyte and so could be fit in
memory all at once), or a part thereof.
... A non-narrowing conversion out to long long is a necessity, but the
conversions to float and double are simply conveniences.
Conversion from floating is explicit, to avoid unintended consequences with
arithmetic operators, when later sampleCount ceases to be an alias for an
integral type.
Some conversions are not made explicit, where I expect to change the type of
the variable later to have mere size_t width.
It WAS working, just not the way QA wanted, because releasing mouse click when in the ruler and on the first seek continued the seek/scrub cycle. Introduced a 'mInOneShotMode' variable to complete the baroque behaviour in the way that was requested. Also updated tool tip code to reflect the one-shot and non one-shot difference in tooltip and status.
... And in some places where a library uses signed types, assert that
the reported number is not negative.
What led me to this, is that there are many places where a size_t value for
an allocation is the product of a number of channels and some other number.
Caused by optimisation of NumericTextCtrl::ValueToControls(). It now only updates on a change, and because mValueStr was being updated without calling value to controls, the string was not being identified as having changed.
This also makes it clearer in the code when we are dealing with a Toolbar ID (for the scrubbing toolbar) and when we are dealing with a button ID (for enabling/disabling the scrub ruler).
... I believe this list of four places is exhaustive.
There are many, many more safe narrowings that I examined.
This resulted from changing the definition of sampleCount in my builds so that
narrowing conversions failed to compile without some fixes, and I examined and
fixed every place.
The rest of that work is not yet shared.
1) Enable scrub bar by default, to increase visibility of the new feature.
2) Add 'Enable/Disable Scrub Bar' to QP right click menu.
Did not remove Scrubbing from transport menu, as to do so disables scrubbing.
Vital feature of MixerBoard as the point is to be able to have large sliders.
The problem was that the slider background was cached in a bitmap, and that cached image was not being refreshed on a resize.
Restored Paul's original intention, which I inadvertently changed in my fix for Bug 1419. Moving into the scrub ruler shows the scrub indicator now even before we actually start scrubbing (or seeking). The tooltip is now seen as belonging to the scrub indicator rather than to the ruler. Additionally I show the indicator immediately on entry, rather than requiring a movement left or right first, which I think is better and I think the original version didn't.
Bug 1451 comment 6 asks for PlayHead to change too with the change in the button icon on up/down, making the action of the button clearer.
This change does not though change the icon on the button to red when recording. It stays green, though the PlayHead does change correctly.
Per comments in the bug, fixed by making the pinned/unpinned button more clearly a button.
This involved adding a new type of grabber that does not have the ribs for dragging it and acts as a spacer.
Also fixing grabber so that it does not have to be at position (0,0)
Also making the ruler 1 pixel higher.
Also changing the pin button to be a toggle button that changes from up to down on a click.
Also fixing AButton so that an image can be bigger than the button.