@Differance On Wednesday, May 27, 2020 at 11:56:57 AM UTC+2, Differance wrote: > > Couldn't a paste-as-template just traverse the tree and make new > clones where they already are clones and just copy as new nodes > everywhere else? > > Might it be an easy enough rule to say that: > > It is easier said than done. When you copy an outline part, Leo stores on the clipboard selected nodes along with their gnx fields. When pasting those gnx fields can be re-assigned to new values (when doing an ordinary paste command) or they can be left unchanged (when doing paste-retaining-clones). Nodes for which all clone instances are inside the copied tree have all the information (required to keep them as clones of each other) inside the clipboard content. However, nodes that have clones outside the copied outline have parents that the clipboard content doesn't know at all. Therefore some required information is lost. The paste-as-template command will have hard time to distinguish which of these nodes should be retained and which should be re-instantiated.
It is not possible to use just the gnx value to distinguish which nodes were previously clones because all of the copied nodes might have the original node still present in the outline or in the undo data and every node will look like it should be cloned. It isn't possible either to just use the number of parents of the existing nodes to see if they should be retained because children of clones don't need to have more than one parent node, but they still can be found on several places in the outline and therefore they should be cloned. Using marked bit of each node can help to simplify this task of distinguishing which nodes should retain their identity and which should not. Vitalije -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/leo-editor/eae72108-af6e-48a2-879e-43672a5614b4%40googlegroups.com.
