[Ipe-discuss] UI-update

Troels Sørensen trold at dcs.warwick.ac.uk
Mon Nov 28 18:48:02 CET 2011

I realised that my replies only went to Otfried... so here we go again:

2011/11/27 Otfried Cheong <otfried at ipe.airpost.net>

> On 11/27/2011 09:15 AM, Troels Sørensen wrote:
>> Reading actions.lua also made me figure out that it is indeed
>> possible to delete a layer.  This is highly non-obvious, and actually
>> the reason for me starting to write ipelets.  Is there any reason for
>> not allowing deletion of non-empty layers (besides the undo-code not
>> supporting it atm.)?  I often end up with extra layers that are not
>> visible in any views, and it is annoying having to empty a layer to be
>> able to delete it.  Similarly, the selected layer in some view seems
>> like a strange block for deleting a layer.
> So what should be the desired behaviour?  Simply delete all the objects in
> the layer that you are deleting?  Or move them to the active layer?

Layers is not a feature that is unique to ipe, and thus the behaviour
should be the same as in the other programs using layers: deleting a layer
also deletes all objects in the layer.  This is the behaviour in both
Photoshop and Gimp.

Every view needs to have an active layer, so what should Ipe do when you
> delete a layer that's active somewhere?   I think it would be a rather
> unpleasant surprise if Ipe simply switched the view to a different active
> layer.

I don't think that the active layer should have any influence on what can
be deleted.  Imagine your text-editor saying "You cannot delete this line;
that's where your cursor is".  There are two situations to consider here:
1) The layer to be deleted is active in the current view: the user already
has focus on the layer-frame, and can see what is going on.
2) The layer to be deleted is active in another view: the user has to
change to that view for it to even matter.  It seems unlikely that the user
will remember what layer was active on that view, but not be able to
remember that it was deleted.

As long as the rule for selecting the new active layer is consistent, I am
not too worried about which one it is.  Possible rules for the case that
the active layer gets deleted include:
1) Previous layer becomes active, unless deleted layer was the first, in
which case the next layer becomes active
2) Next layer becomes active, unless deleted layer was the last, in which
case the previous becomes active
3) Either of the above rules, but restricted to visible layers in that
view.  Select last layer, if no visible layers remain.

The problem of having an invisible layer as the active one is deeper than
simple deletion of layers.  I would suggest either using a different colour
for the active layer in the layer menu, if the active layer is invisible,
or displaying a warning in the status line.

Of course would we could do is enable "delete" in the side menu for all
> layers, and then show an error message if it is active in some view, to
> make it clearer to the user what is happening.

I am not a big fan of pop-up warnings.  No other program I know of pops up
anything for simple warnings that show up in normal use of the program.
 While it does ease the learning curve, most advanced users will get
annoyed by it.  This also holds true for undo/redo; I don't need a pop-up,
simply because I reached the end of the undo/redo stack.  A simple message
in the status line would suffice, like most other programs do for undo/redo.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.science.uu.nl/pipermail/ipe-discuss/attachments/20111128/e6d7edeb/attachment.html 

More information about the Ipe-discuss mailing list