Ever since a massive thunderstorm, I've been unable to send email in
my customary way. This message has been stuck in my outbox half the
day now. Let's see if *this* finally works.

On Friday, May 28, 2010, Ian Gardner wrote:

> As it was me responsible for starting kicking up all this dust, I feel

> responsible for at least helping to start sweeping it all up ;-)

I still have the message open from yesterday when I saved out a copy of your

patch and determined I was going to make time to look at it and figure out

whether to edit the patch itself, send it back for revisions, etc., to answer

your last message.

I just never actually got that far.

So now that I have, I'm not totally clear on what bit of this is responsible

for the controversial change, so I'm not going to hand edit the patch and

apply it.

> How about this: as a learning exercise for me how about I have a go at

> creating a proof of concept implementation which, as you say, establishes

> the ability to put a linked segment somewhere else, and at the very least

> playing back properly at its location.

Sounds like a plan. As a starting place, just have the linked copy behave as

though it were a normal copy sitting on the target track. We can get

everywhere else from there, I think.

> to aim at. Once I have something vaguely functional I can make a patch or

> even commit it to a branch (nice and safe, away from the trunk) and we can

> argue about it and refine it from there as you point out.

I'd rather add you to the project and run it that way. You know which bit of

your original patch to avoid committing. That stuff can go straight into

trunk/ as far as I'm concerned, and you can do this segment symlink business

in a branch, taking as long as you need to work through it.

> "phase 1" implementation of linked segments would be to have a look

> through whatever's behind the control-drag function which currently

> creates deep-copied segments, and make a new drag mode to create links

> instead by some means, be that based on triggered segment functionality or

> by some other means as yet undreamed of. This may take me some time, but

> hopefully will be fun(!) trying.

I haven't actually worked on the main window/segment canvas in ages, but this

is probably a tool like in the edit views, and the SegmentMover or whatever

probably assembles and invokes a MacroCommand. It may be possible to

accomplish this simply by adding another key modifier, although I don't know

what's available off the top of my head. Shift breaks the grid snap, Ctrl

causes a copy, I'm not sure if Alt is changing anything or not. If not,

adding Alt to make a symlink might be reasonable. Ctrl+Alt(+Shift)+drag and

drop to deposit a symlinked copy at the location of the mouse release.

As to the mechanics of making that work, I'm thinking it's probably cleaner

from a maintenance perspective if this comes into being as something entirely

new, even if it involves some redundant code. Do a symlink segment as a

subclass or special extension of Segment. It's got to have a pointer to the

master segment, and steps have to be taken to ensure that pointer remains

valid (I imagine a lot of operations might actually delete and re-create

segments; that is certainly true with Event objects, where a lot of operations

don't change the original, but delete it and create a new one made to order in

its place) and then there's the matter of getting the sequencer to treat this

thing as though it were a segment on this track. That's going to be the

tricky bit.

I don't know if the triggered segment mechanism already offers a lot of canned

solutions to those problems or not, never having studied it.

Anyway, don't take anything I just said in the preceding three paragraphs to

be any kind of mandate, or a clear map to follow. I'm brainstorming from my

armchair without looking at any of the code, and it's entirely possible

everything I just said is completely stupid.

Uh, get yourself a SourceForge ID and let me know what it is.

------------------------------------------------------------------------------

_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

Reply via email to