In the discussion of [[ https://phabricator.kde.org/D20314 ]], Dmitry suggested a number of ways to improve users' interaction with Clone Layers:
> # Implement GUI for changing the source of the clone layer (we wanted to do that for years)
> # When the user wants to keep the clone, he does the following:
>
> presses Ctrl+G to group the merged layers
>
> retargets the clone to this new group
>
> merges the source layers (the clone is intact, because it is not connected to them)
>
> More ideas:
> # show a dialog that "some clone layers are going to be reincarnated into paint layers"
> # or better just show a floating message
>
There are a number of ways to implement (1). Some of them are:
# Drag & Drop.
In this implementation, users can drag the intended target layer onto the Clone Layer to make the Clone Layer copy from the target layer. However, I doubt whether this method is intuitive enough for users to use.
# Pop-up Dialog
In this implementation, an action that pops up a dialog is added to the Context Menu in Layer Docker, if the selected layer is a Clone Layer. In this dialog, users can change the source of the Clone Layer. Also, it can also be debated whether this interface is combined into "Layer Properties" dialog, or has its standalone dialog.
# Sub-menu in Layer Docker's Context Menu
In this implementation, a sub-menu is added to the Context Menu in Layer Docker, if the selected layer is a Clone Layer. The sub-menu contains multiple actions that set the source of the Clone Layer to the layer specified by the action.
Methods (2) and (3) sound more user-friendly. (2) requires more clicks and (3) looks more convenient. However, (3) could probably create a extremely long sub-menu. If you actually have a lot of layers (some people I know will have 30 or so), the sub-menu is going to look awful.