From: D. M. M. <mic...@ro...> - 2009-09-22 16:18:37
|
In the matrix we currently have the old zoom slider working, and it's effectively a "stretch or squash" function that just changes the zoom on the X axis. Originally, I kind of expected we'd eliminate this, and Chris indicated he thought this seemed like it might be useful. Now there's a scaling problem to solve with selection rectangles. We just trace a QRect with a pen of width 2, and the dimensions of the outlines at 500% horizontal zoom wind up being 10px 2px 10px 2px. To correct for this, we'll need to pull the horizontal zoom factor in here, do some calculations, and draw these rectangles as a series of lines in two different thicknesses. I more or less see how to do it from here, but before I bother, I thought it would be a good time to decide whether we want to keep the horizontal zoom slide at all, and beyond that, whether we feel it is important to be able to zoom each axis independently. Where we're going with the GUI for the panner is to use one or more ThumbWheel widgets from Sonic Visualiser. SV has an L shaped control block with one wheel for horizontal, and one wheel for vertical. When I use this, I find myself wanting a mechanism for chaining one to the other, and just zooming everything at once. The extra trouble I'm going to have to go to in order to cook that up is the main reason why I haven't done anything with the ported ThumbWheel widget yet. So what if we ignore all of the above and take the simple way out. One thumb wheel, one zoom that affects both axes equally? Would this feel like the reasonable thing to do, or the cheap way out? I'm pretty strongly inclined to just go that route. We could always do independent zoom later if anyone seriously cared, and one way or the other the old zoom slider is a relic that's out of place here now. -- D. Michael McIntyre |
From: Jani F. <j.f...@gm...> - 2009-09-22 17:17:35
|
2009/9/22 D. Michael McIntyre <mic...@ro...> > > So what if we ignore all of the above and take the simple way out. One > thumb > wheel, one zoom that affects both axes equally? Would this feel like the > reasonable thing to do, or the cheap way out? > > I think it doesn't matter much, as long as we have a zoom. -Jani |
From: Julie S <msj...@ya...> - 2009-09-22 17:52:17
|
Hello All, From the last post: >> So what if we ignore all of the above and take the simple >> way out. One thumb >> wheel, one zoom that affects both axes equally? Would >> this feel like the >> >> reasonable thing to do, or the cheap way out? > > > I think it doesn't matter much, as > long as we have a zoom. > I can agree with the idea of just zooming in both axis in Matrix view. But I like the single horizontal zoom better. Also the horizontal zoom feature, fits in better with RG's main window zoom. Scaling the vertical axis could be useful for people with vision issues, but we do not zoom the main window this way or zoom the notation view at all. So, anyway you look at it we are inconsistent across views. But looking to the future, an independent vertical and horizontal zoom in most of the common views would be nice for a variety of reasons. ...Sorry this doesn't help Michael....so just do what you have to do. Sincerely, Julie S. |
From: D. M. M. <mic...@ro...> - 2009-09-22 19:17:51
|
On Tuesday 22 September 2009, Julie S wrote: > Scaling the vertical axis could be useful for people with vision issues, > but we do not zoom the main window this way or zoom the notation view at > all. We don't zoom the main window this way because we can't (yet, and it's pretty much a rewrite we may or my not ever want to do). We *do* zoom notation now. Notation and matrix both have the panner-based zoom from "an entire symphony is one pixel" to "one pixel is four times bigger than your screen." This zoom currently has the axes chained. Then the matrix has this other, legacy zoom slider like the main window. Either way that slider is history, but the slider lets us play with what happens when zooming one axis independently, and this whole selection rectangle drawing problem is at least one significant issue that would have to be resolved to make that workable. I can understand the math and the code to get there, but there could be performance concerns caused by the extra calculations slowing down a mechanism that is already pretty slow, and if we have axis-independent zoom, there's the problem of developing a new (instead of off the shelf) mechanism for chaining the two zoom controls together. > ...so just do what you have to do. I think I'll start with one ThumbWheel and we'll see how it feels from there. I won't remove any code, just comment it out or hide the widget or something for now. -- D. Michael McIntyre |
From: D. M. M. <mic...@ro...> - 2009-09-26 01:22:17
|
On Tuesday 22 September 2009, D. Michael McIntyre wrote: > I can understand the math and the code to get there, Math yes, code no. This turns out to be a stumper. I'm stuck, pissed off, and officially saying fuck it. I'm not going to do anything different with the wheels either. I just don't really care about any of this anymore, and I'm moving along to something else. I sure did a lot more work than I bargained on for a message where I was trying to justify not having independent-axis zoom. -- D. Michael McIntyre |
From: Chris C. <ca...@al...> - 2009-09-22 19:26:19
|
On Tue, Sep 22, 2009 at 5:16 PM, D. Michael McIntyre <mic...@ro...> wrote: > So what if we ignore all of the above and take the simple way out. One thumb > wheel, one zoom that affects both axes equally? Would this feel like the > reasonable thing to do, or the cheap way out? Zooming both axes together is a useful, and visually appealing, thing to do. I would be inclined to think that a single zoom wheel (perhaps vertically mounted at one end of the panner widget, with a button at top or bottom to reset it) that controlled zooming in both axes together would be the most useful _single_ control we could have -- better than having _only_ the horizontal zoom, and probably better (because more straightforward and with a more intuitive effect) than having two separate zoom wheels as in Sonic Visualiser. However, I can't manage to persuade myself that we will actually get away without the horizontal zoom in the matrix. I think there will be a lot of users who still want it. It may be that we could get away with relegating it to a less obvious place (e.g. a smaller set of options in a menu somewhere), so that you can _choose_ a horizontal stretch/zoom factor, but you more often just casually roll in and out with the two-dimensional zoom. Chris |
From: D. M. M. <mic...@ro...> - 2009-09-22 19:46:18
|
On Tuesday 22 September 2009, Chris Cannam wrote: > I would be inclined to think that a single zoom wheel (perhaps > vertically mounted at one end of the panner widget, with a button at > top or bottom to reset it) that controlled zooming in both axes > together would be the most useful _single_ control we could have -- That's about what I was thinking. > However, I can't manage to persuade myself that we will actually get > away without the horizontal zoom in the matrix. I think there will be > a lot of users who still want it. I don't know if I expect that or not. Lots of complaints over the years about not being able to zoom vertically. Everything I've ever used zoom for, zooming in both axes is nice. Zooming just in one axis used to suck, because you'd get these skinny > It may be that we could get away > with relegating it to a less obvious place (e.g. a smaller set of > options in a menu somewhere), so that you can _choose_ a horizontal > stretch/zoom factor, Bah. I have NOT gone all Guillaume/OS-X on us, but I'm still trying like hell to say no to new obscure things buried out of the way somewhere, or obscure configuration options. Nobody will find these, and if they need to be buried, just dump them and be done with it. So I'd argue if we really have to have a horizontal zoom, we need its counterpart, and all of this needs to be in plain sight, along with a mechanism for chaining them together. Perhaps what we could try is an experiment. Hide the slider for now, present one control for the two-axis zoom, and wait for someone to request independent control or a horizontal-only zoom. Or maybe I will just wind up implementing this in layers. I figure that's how I'm going to burn the rest of my vacation; hooking this up. It's not critical priority, but it's on the list. -- D. Michael McIntyre |
From: Chris F. <chr...@go...> - 2009-09-22 21:01:25
|
On Tue, 2009-09-22 at 20:51 +0000, dmm...@us... wrote: > Revision: 10939 > http://rosegarden.svn.sourceforge.net/rosegarden/?rev=10939&view=rev > Author: dmmcintyr > Date: 2009-09-22 20:51:24 +0000 (Tue, 22 Sep 2009) > > Log Message: > ----------- > Try this, Chris (Fryer) and see if it's more what you were expecting. That's the ticket. |