Objective: Lock the layer from user actions.

It should lock the selected layer or layer group, by lock I mean:
 - you cannot move the layer and it's contents
 - you cannot change the blend mode, the opacity and the keep
transperancy modifier
 - you can select an area to copy / define as pattern, et al.
 - you can restack the layer among the others layers avaiable or add it
to a layer group
 - the layer should still be visible in the image
 - when the layer is locked, and the user tries to use any of the locked
actions it should warn the user that the given layer is locked

Maybe a more advance locking mechanism would be good, but having this
basic locking is a good begin. I've done a little bit of research, using
this feature in photoshop. Photoshop adds 2 [1] more locking options,
pixel locking and position locking. The first locks the contents of the
layer, but it lets you apply transformations (scale, rotate, skew, etc).
The latter locks the position of the layer, but you can draw to it,
apply effects, etc but no transformations. Both of this locking lets you
change the blend mode and the opacity of the layer. As I said before,
this would be a simple locking mechanism, but if well designed it could
scale in the future to support this, and others desirables locking.

I've just made this mockup (attached) of how the locking mechanism
should appear to the user in the layers tab. But that could be wrong, in
not really familiar with the GNOME HIG. Clicking in an unlocked lock
will lock the layer, clicking in a locked lock will unlock it.

How all this should be implemented is something that I don't know in the
moment. I need to learn a little bit of how actions interacts with the
layer to try to propose some functions. But what comes to my mind is to
have a function that returns, based on it's caller, if the given caller
is able to act upon the given layer. And a simple set / unset pair of
functions to be called from the UI.

Pedro Kiefer <[EMAIL PROTECTED]>

[1] It actually photoshop has one more locking option, keep transparency
which is already implemented in gimp.

<<attachment: layer_locking_mockup.jpg>>

Gimp-developer mailing list

Reply via email to