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