Direct Transformation and Merge after Pasteing
Open, NormalPublic

Description

Pasting inte the current layer instead of a separate layer has been requested serveral times. (https://bugs.kde.org/show_bug.cgi?id=376883). Currently paste only inserts a new layer.

What the required are basically two featues: The pasted data should be transformable and after deselecting be merged with the current layer.

Usually there would have to be another buffer inside the current layer to handle that. I think instead we could emulate that behavior with the current system and some intelligent tool switching. It would work like this:

  1. Copy creates a new layer that gets selected (like now)
  2. Krita automatically switches into the transform tool and allows to transform the pasted part
  3. When the transforming is finished, the image will be automatically merge with the layer below

Not sure if the merge would be triggered with apply or even just by clicking outside of the transform box.

What do you think?

langkamp triaged this task as Normal priority.
rempt added a subscriber: rempt.Sep 23 2018, 12:08 PM

I'm not really enthusiastic about it -- it presupposes that the only goal of pasting is to transform the paste and merge it with the current layer. If we implement this, users would have to create a new layer and then do the paste and then cancel the transformation if the goal of pasting is to create a new layer.

I think our current behavious is fine: we share it among others with applications like Photoshop... Maybe we could add an extra paste action, but let's not surprise the majority of our users with a surprising change like this.

yeah dont change the default

I would however like this as an extra option

but i would also add one extra variable: frames
you'd need the extra option to paste on current frame only,not on ALL frames in the layer.

There has been a good change for the timeline where you can copy paste from a frame which results in a frame paste only at the current frame in a new layer.

it would be good to have it also possible to just do it directly and merge,but it needs to be clearly labeled as a function.

Maybe "paste special"
And when you use this function you get a popup with several options (like when you drag and drop a file on krita)

Paste in layer
paste in new layer
paste in layer only on current frame
paste in new layer only on current frame

and maybe there are even more possibilities...

I think there are two different actions here.

First is to transform the new layer after pasting. If you currently want to copy/paste a selection you have to copy, deselect, select move or transform tool and then transform. It could optionally directly deselect and jump into the transform tool, which would save you two actions in between. I agree with Boud that it shouldn't be the default.

The second is the merging which is a separate step. I not sure how to trigger the merge and pick one of these targets.

I have create a patch to outline the first part D15737

w_line added a subscriber: w_line.Sep 24 2018, 11:29 PM

If you follow the most recent conversation on reddit about this (https://www.reddit.com/r/krita/comments/9hqeth/krita_developers_ama/e6dvs3d/), I actually did a bit of digging on what the person actually wants. They mention "paste in the same layer", but I think that is not at the heart of what they want.

When the person pastes something, they just want it to instantly go to the transform tool so they can position it, scale it, rotate it. The application pastes the image in the wrong spot many times, so transforming is the next action they wants to take.

After they are done transforming it, they right-click to get a context menu where they can merge the layer down. The application doesn't show that is happening, but that is all it is doing.

The idea of a paste on the same layer doesn't seem to be the important part, but the ability to transform and then merge something quickly.

This is a video they made with how Sketchbook can quickly use the transform tool with merging layers: https://drive.google.com/file/d/1oMSo25_cjJBnSbIJ5AivRZOE37r2UDpa/view?usp=sharing

They first use a selection instead of pasting a layer, but the concept isn't really much different. The person doesn't manually use the layer stack at all, so I wouldn't get too hung up on modifying how that works or looks.

This would be my recommendation for improving the UX based off this conversation thread:

  1. Selection tools right click options - Modify our "Copy Selection to New Layer" action. It should automatically switch to the transform tool and activate the handles after the new layer is created
  2. Transform tool right click options - Add a "Apply and Merge Layer Down" option
  3. When someone pastes something into Krita, highlight the transform tool rectangle and handles. The transform tool already seems to be selected after someone pastes something, but you have to click on the layer for the controls to activate for some reason.

It is easy to get caught up in the "it is not a new layer in the layer stack", but I don't think that is the problem we are trying to solve with this request.

Hey all, Im the dude who made the video linked above.

One point of clarity on how the UI is working in that example. The round pop-up "context-menu" is Sketchbooks way of showing the transform manipulators. It isn't brought up via any click, or hot-key, it just floats under the cursor when you are performing a transform. So in this example the confirm/merge action is a first-class citizen along with scale/rotate/move. In the video the only hotkeys/secondary clicks performed are "ctrl-c, ctrl-v" to copy/paste. A Krita equivalent would be a button/element adjacent to the transform handles which confirmed the transform/merged down.

scottpetrovic has the goal of the use case that we have been discussing exactly right though. Very specifically, to be able to add, or duplicate elements (including a transform step) as quickly (fewest clicks/taps/hotkeys) as possible, while working on a single layer.

Just my opinition:

The only idea that I think is "acceptable" to be turned on by default is activation of the transform tool :) Merging down the pasted layer should be an optional thing (though I don't know where the checkbox should be placed, we can discuss that).

And please don't suggest implementing a thing like "Floating Selection" in Gimp. It is just non-understadable illogical concept that never works as the user expects it to work :)

w_line added a comment.EditedSep 26 2018, 12:12 AM

Quick note of agreement about any of these things being optional and not default (though I would configure them to be default tout suite ;-) ) and also about the "Floating Layer" thing that Gimp does. Every artist that I have seen encounter that has been some combination of confused/enraged.

rempt added a comment.Sep 26 2018, 8:14 AM

I like scott's proposal, but maybe we could add a apply or apply and merge down button to the on-canvas decorations as well, instead of putting it in the right-click menu?

The first part in now in. Now it's possible to enable a setting to switch to the transform tool after paste.