duplicate duplicate layer

okay, I found a glitch for yas

  • A bit hard to explain clearly because “duplicate layer” can mean two different things in synfig, depending on whether its used as a noun or a verb; this involves both…
    I’ve been drawing a mussel (to go into a paella for all you spanish food lovers). I used a duplicate layer (noun) over a zoom layer and a rotate layer to make the growth rings, all encapsulated, works and animates nicely. Then to make the bottom shell, I duplicated the whole encapsulated layer (verb). The growth rings on the top layer were randomly appearing and disappearing, it turned out because the index node on the first duplicate layer had been renamed “index2” but the zoom and rotate layers were still connected to “index1”. Took a while to see what the problem was, easy enough to fix when I found it, but I’m not sure it’s supposed to behave this way
    Here’s a file to play with, try duplicating one of the shell layers to see what I’m talking about
    mussel.sifz (35.4 KB)

Yes, duplicate a set of layers that contains a duplicate layer on it seems not to be smart enough. The operation is a layer based operation so when you duplicate a duplicate layer it bumps the index parameter to a new one. It is forbiden that two duplicate layer have the same index so it is bumped. But when you duplicate a normal layer it doesn’t take account that some possible internal valuenodes connected to a “index” exported parameter should be bumped. Because, consider this:
What would happen if you just duplicate a layer that uses the index exported parameter? if it is bumped and the duplicate layer is not duplicated there can be problems. Due to the possibility that you can rename a index exported parameter it is difficult to check if the corresponding duplicate layer has been duplicated.
Got the idea or do you need I duplicate my efforts on the explanation? :wink:

Yes, I think I understand…
I’m thinking, if you duplicate a layer which has a parameter connected to an exported value, the newly duplicated layer will also be connected to the same exported value. And if you export a value and connect it to some parameter, and then go and change the name of that exported value, the new name will automatically be updated in the parameter that is connected to it. When duplicating an inline canvas which contains a duplicate layer and a normal layer connected to it, you have both things happening at once. Is it maybe a problem with the order these layers are duplicated? If the duplicate layer is duplicated first, then index1 will be renamed index2, but the normal layers will still be connected to index1 as the name change was already happened. But if the normal layer is duplicated first, then when the duplicate layer is duplicated and the new index is made, the normal layers will then inherit the name change… Okay, that’s not how it works, and doesn’t solve anything
Let’s just say, I see the problem