how should selections work

Casper Boemann cbr at boemann.dk
Sun Apr 17 20:24:57 CEST 2005


Ok

I'm just writing down some thoughts on selecting from a user's pov.

How do we visualise selections. For now I'll just call it "graying" but it 
should actually be more intelligent so that it is always visible that 
something is selected, nomatter what the selected area contains.

I guess we want to continue with the distinction between no selection and 
selection. When we have no specific selection everything should be visible. 
This is the normal work mode and the user should be able to see the 
masterpiece without any "graying"

Now the user selects some specific area. Currently the "graying" is 
applied to all the underlying layers (actually the composition of them) 
wheras the layers on top are not "grayed". This is inconsistent.

How could we do this in a more intuitive way?

1) we could gray only the active layer. But the other layers are not touchable 
either, so that seems a bit inconsistent too.

2) we could gray all layers except the selected part of the active layer. It 
would be clearly visible to the user. but that would gray areas that are 
acutally touchable, but just hidden by a grayed layer on top.

3) we could apply the graying after all composition is made. Then it would be 
clearly visible where the layer is touchable and where it isn't. But the 
things you see non-grayed could actually belong to another layer.

other ideas or a preference ?

The selected area should be normally visible, and non selected parts "grayed". 
Right ?

From a programmers pov I think (but I'm not sure) that the statefulness of the 
alpha strategy is a cause of problems. The color and inv flag should be moved 
to the KisSelection.

To do that the colorstrategies must provide a way to apply a selection mask, 
so we don't have to store the color inside the alpha strategy. 

Inversion of a mask should always be done directly to the device and not as a 
flag. To do that we need to change the default pixelvalue of the datamanager 
and iterate the touched pixels. I have already changed so the default 
pixelvalue is a property of the datamanager. A function to change the 
property is still missing though.

To avoid having to delete a selection in midlife of the parent layer, we need 
to be able to clear the entire datamanger of its tiles. I have already added 
the clear() function to the datamanager.

Bart or Adrian. the fillpainter currently abuses the selection when no 
selection exists. If the selection is to be persistent this is no good. Also 
the fill is currently different if an area is selected or not. It would be 
very nice if this could be changed. Is this possible, and easy ?

-- 
best regards / venlig hilsen
Casper Boemann



More information about the kimageshop mailing list