Optionally preserve incoming cable connections when duplicating a node

If I have a node connected to 3 other nodes using 10 cables, duplicating this node without to have to reconnect all the cables could be handy !?!

personally I would keep it modal rather than adding adding a Menu Item on/off setting. But both would be ok I suppose.

I would default to copying the cables as well as the node rather than defaulting to no cables, so ⌥ Drag/⌘ D for with cables — and ⌥⇧ Drag/⌘⇧ D for without cables.

Refreshing this “cable behavior” branch, with a couple more (or are any of these already possible?)

Be nice to:

  1. yes to option-shift-drag to keep all input connections.
  2. instead of 1) click to select cable, 2) delete, then 3) connect to some other port, nice to be able to use one mouse down drag to grab connected cable(s) at port, disconnect and attach to a new port.
  3. drag a box around multiple cables and hit delete to disconnect (with undo/redo).  


Point 2, not sure I understand, if you want to reconnect an already connected cable, you can select that cable at the input port where the cable is connected, drag it and connect it somewhere else, without having to delete it first ?

Or you mean you wanna be able to do that on connected output ports rather than input ports ? If yes, that’s a suggestion by Jaymie on “Replace all connected output cables at once”

Point 3, you can in Vuo 2 beta select cables + nodes by holding option+click drag (default click drag only select nodes). Or you mean you’d wanna select cables only ? If yes, create a separate feature I guess, too different from this one.

To recap the functionality that would be added by this FR: Duplicating a node would create a new node with all of the same cable connections to its input ports (with the other end of each cable connected to the same output port as the original node). This FR only covers creating incoming cable connections, since there’s not one obvious solution for outgoing cables.

1 Like

I would default to copying the cables as well as the node rather than defaulting to no cables

Why? because it’s much faster to + Drag node with mouse and then select with a marquee any undesired cables auto-connected from the original node and then hit delete than it is to + Drag node with mouse and then rewire the very same cables the original node has to its input ports.

I had situations in QC which might not be relevant where I was dragging sub-comp (macro) patches with dozens of input cable and repeating them ten or more times. Rewiring all that is like 5-10 minutes of meaningless work that can be avoided. I’m pretty sure I’ve FR this before for VUO, maybe I didn’t make it as a seperate FR but included in drag copy FR? To me this is designer/3D/visual programming 101 to include all the selected parts who you drag a copy of something.

If we wanted to get really smarty pants we could have it so that when you marquee the node for selection, only those ports that were within the domain of the marquee get their cables auto-connected to the same outputs as the original node. Currently ports don’t “select” when clicked or ‘marqueed’ but Vuo could take a note under the hood incase a copy is dragged or menu commanded. But I’d just default to copy the lot and people can delete the cables they don’t want quick smart.  

One approach could be:

-select a node on editor by clicking on it with mouse, duplicate or cut and paste, no “noodles” are duplicated.

-click and drag a bounding box on the editor surface, with the bounding box encompassing node and noodles. Duplicate, cut and paste, etc., then handle the noodles as additional objects that are part of the selection.

1 Like

I think I understand, it’s a good division of intentions with click and command (copy/paste/duplicate) (no cables) vs drag a marquee and then drag node(s) or commands (duplicate etc) (includes cables).

by “click and drag a bounding box on the editor surface, with the bounding box encompassing node and noodles” is that the same things as what I’m describing with the word marquee (not sure if that’s Mac or Adobe terminology but it’s very old)?

What about the more simple case of click and drag with the option key down (so as one ‘mouse action’ + a modifier key held down at same time)? I think that should include the cables by default. If necessary put something in the references to flip the default. how does that sound?  

Yes, I guess I am suggesting marquee type selection metaphor to select node + noodles.

It seems to me that if I select just a node and hold option, I expect just the node to duplicate.

If it is changed so that input connections duplicate without being selected themselves, it seems like there is some kind of functionality lost. If input connections duplicate while output does not, it seems as though there is a kind of inconsistency.

It seems less discoverable to change to an approach like this. Whereas a user doing something to also select the incoming connection noodles, does seem intuitive and discoverable…then they might also think to option+click to duplicate once all of it has been selected.

All of this said, I don’t have the strongest feelings in the world about any of it. If duplicating noodles became default, well, when you have selected a node on the editor the library switches to showing it…ultimately making it easy to create another instance that way.

That makes sense to me, @George_Toledo. As long as we can do it “with the cables along for the ride” one way or another with some kind of drag interaction on the canvas — well that’s the main substance of this FR (I assume as it’s in the title!).  

Not sure default “⌥ Drag” should come with cables or not.
I feel that “⌥ Drag” for nodes only and “⌥⇧ Drag” with cables echoes more the overall default behaviour, otherwise it’s a more complicated shortcut, for a simpler operation, doesn’t seem logic.

But I don’t really care, if I have to copy/paste for node only and “⌥ Drag” for cables too, I could get used to it, but not sure for new users.

That being said, copy with some selected cables only sounds good too.

  • ⌥ Drag to Copy node only.
  • No incoming cables selected : ⌥⇧ Drag to Copy node with all incoming cables.
  • Some incoming cables selected : ⌥⇧ Drag to Copy node with selected incoming cables only.