Continuing with some usability fixes...

Here's a fix I guarantee that we will *all* appreciate, for the Arranger,
 PianoRoll, DrumEditor, and /especially/ for those who work with WaveEditor:

Zoom about the cursor! 

The Zoom In and Out shortcuts Ctl+PgUp/PgDown (defaults) and
 Ctl+MouseWheel now zoom about the mouse cursor position.

Until now, all zooming was done relative to the canvas' left edge.

I can't tell you how many frustrating years I've worked with
 wave parts in MusE, where one frequently needs to zoom in and out
 from low to high magnification just to find those unwanted spikes
 or do some fades or curious viewing or whatever.
Since the zooming was relative to the left canvas edge, we would zoom 
 and our reference position would go whipping waaaay to the right
 leaving us completely lost - "where the heck am I?" - and adding insult
 by forcing us to do a long painful squint-eyed scroll back to the place 
 we were looking at. 
At high magnifications, this was hell.

No more. Be gone! 
Mag...   ...nificant!

Try 'er out.

Note that due to the fact that MusE does not allow the left edge of
 a canvas to "pull in" ie does not allow bar zero to be "anywhere",
 when you cross over the threshold of the horizontal scroll bar
 thumb track being "full" or completely left, you will *lose* the 
 point you are zooming about, as it *must* shift.
Not much I can do there. Maybe someday we can allow it, so that
 you *never* lose you zoom-about point, no matter what zoom 
 level you are at. 

Also, due to rounding and conversions etc, the zoom-about point 
 may shift slightly as you zoom. It's only worse at higher magnifications.

Tim.


>From ChangeLog:
------------------------------
Feature/fix: Zoom at cursor! Zoom Ctl+PgUp/PgDown (defaults) and 
 Ctl+MouseWheel now zoom about cursor. 

Eliminated redundant call in ScrollScale::setMag(), by blocking signals.
Consolidated all HorizontalZoomIn and HorizontalZoomOut functions 
 into a single HorizontalZoom.
Added eight more 'quick zoom' levels to class ScrollScale.
Modified all HorizontalZoom functions to pass cursor offset, and use it 
 in ScrollScale::setScale().


------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
Lmuse-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lmuse-developer

Reply via email to