some proposed layer functionality (UI enhancements)

Hi,
I just finished one small UI enhancment - ability to create sublayers by using "Create Layer" dialog (patch http://sourceforge.net/tracker/index.php?func=detail&aid=1447043&gro... ), I find it very usefull while I'm creating maps on Inkscape, but I wonder that other are thinking about it.
Also, I found two very nice SVG features supported by Inkscape rendering engine, but not available in UI - masks and clipPaths. I tried to think of various ways to implement that in UI and there is a suggestion: - Add menu item "Mask from selection" - Menu item invokes a dialog where user can input: - select if he wants to make a mask or clip path, - enter a label, - view box type (none, user space, object bounding box). This also enables view box properties (x, y, width, height) - select if original object should be removed from layer - select if mask is automatically applied to a current layer - Add properties "Mask:" and "Clipping path" to layer properties dialog and let user select from available clipPath/mask elements - Not sure how this should fit into a layer dialog which (as I understand) is currently developed
For a start I will make a prototype for myself without a dialog (mask creation from selection, applying it to a current layer), and if the will be no objections in this list, I will make it with a dialog. So, I'd like to hear that do you think and maybe someone can give me some tips, things not taken into a consideration, etc.
Thanks, Andrius

Andrius Ramanauskas wrote:
Hi,
Hello!
I just finished one small UI enhancment - ability to create sublayers by using "Create Layer" dialog (patch http://sourceforge.net/tracker/index.php?func=detail&aid=1447043&gro... ), I find it very usefull while I'm creating maps on Inkscape, but I wonder that other are thinking about it.
Haven't checked out the patch yet, but will do so later today. Sounds interesting, but it seems like what you want could be achieved just by using groups. If you have a group and double click into it, it becomes a temporary layer that you're working in (it's even visually reflected in the layer selector). Then to exit out of the temp layer, double click out of it.
Also, I found two very nice SVG features supported by Inkscape rendering engine, but not available in UI - masks and clipPaths. I tried to think of various ways to implement that in UI and there is a suggestion:
- Add menu item "Mask from selection"
- Menu item invokes a dialog where user can input:
- select if he wants to make a mask or clip path,
- enter a label,
- view box type (none, user space, object bounding box). This also
enables view box properties (x, y, width, height) - select if original object should be removed from layer - select if mask is automatically applied to a current layer
- Add properties "Mask:" and "Clipping path" to layer properties
dialog and let user select from available clipPath/mask elements
- Not sure how this should fit into a layer dialog which (as I
understand) is currently developed
Hmm... I thought we didn't have masks working... very good to know. In fact, I have been wanting to implement clipPath UI for a while now, but unfortunately my programming skills don't hold up to my ambition ;). One question I have is, have you used any vector drawing software before? What you propose is quite different from anything I've seen, although, that's not necessarily a bad thing. I do think that you have some great ideas.
Since this was an area of great interest for me, I've had a number of conversations with Bulia about how we should implement this. So, later in the day, what I will do is compile all of the relevant stuff from our conversations into an email and send that over your way (off-list).
For a start I will make a prototype for myself without a dialog (mask creation from selection, applying it to a current layer), and if the will be no objections in this list, I will make it with a dialog. So, I'd like to hear that do you think and maybe someone can give me some tips, things not taken into a consideration, etc.
Just as a quick note, I think that even for your prototype the best way to go is to use existing examples from other software. So it would still work based on selection, but instead of applying to a layer it would apply to other objects within that selection (as you'd find in Illustrator or Xara for example).
Ideally you'd put both masks and clippaths in the Edit menu. The menu items ClipPath and ClipMask would each have a sub-menu containing two entries... set and release. What was discussed previously would be that you would then take at least 2 selected objects (one to clip by and at least one to get clipped) and the front-most object would end up being the actual clippath/mask for all selected objects underneath. Does that make sense to you?
The only other piece you'd need to get started is, when a clippath/mask is created it then needs to be moved to the "defs" section of the document (where you'll find gradients stored). If you have ANY questions before I send more information later, please don't hesitate to shoot me an email.
By the way, glad to have you on board. :)
-Josh
P.S. If you happen to drop by our jabber or irc channel, I'm ScislaC... I won't be around for a few hours now, but will be this evening.

On Sat, 2006-03-11 at 11:40 -0700, Joshua A. Andler wrote:
Haven't checked out the patch yet, but will do so later today. Sounds interesting, but it seems like what you want could be achieved just by using groups. If you have a group and double click into it, it becomes a temporary layer that you're working in (it's even visually reflected in the layer selector). Then to exit out of the temp layer, double click out of it.
Nested layers are more convenient when you are pretty much _only_ using those groups as layers.
(I went through a lot of trouble to implement nested layers in the backend, actually -- the only reason I didn't initially add UI for them is that the quick layer selector currently has some bugs when dealing with nested layers)
-mental
participants (4)
-
Alexandre Prokoudine
-
Andrius Ramanauskas
-
Joshua A. Andler
-
MenTaLguY