Editing features ( mega-topic ) ( unimplemented )



  • Legend

    Notice: There's a summary at the bottom.

    ( accumulated ) : The sub-topic has been accumulated from an existing topic and marked there aswell.
    ( partially accumulated ) : Some aspects of the sub-topic have been accumulated from an existing topic and marked there aswell.
    CEDIT : EDIT for a sub ( child ) - topic
    PEDIT : EDIT for the mega ( parent ) - topic

     

    1. Nested selection tool ( Accumulated )

    What I imagine is a tool, similar to the Transform tool with group member mode activated, which would at the first click select the top-most visible object ( on the artboard ) of an object hierarchy. Then, with each subsequent click it would select the next parent group.

     

    2. Making the reflect tool cursor snap to paths, nodes and guides ( Accumulated )

    alt text

     

    3. Making bounding box color dependent on object fill / stroke color ( Accumulated )

    3.1 Description

    This isn't too pressing an issue, but it would be nice if the bounding box color automatically stayed in a good contrast to the object fill or stroke color ( I already know about layer colors ).

    3.2 GIF

    alt text

     

    4. Make proportional enabled by default for scatter and pattern brushes ( Accumulated )

    I think this makes sense, since you'd naturally expect the scattered object to show up on the path, which it doesn't if the stroke width is as small as the default.

     

    5. Variables

    • there are still several attributes that are either
      • not style-definable
      • only style-definable as part of a higher level style
        • example : stroke width and style "Stroke"
    • possible implementation with concrete use case
      • open the "Variables" panel
      • click the + button at the bottom of the panel
      • a modal view with two fields pops up
        • name
        • value
      • type in the values "outer_most_stroke" and "300%"
      • click ok
      • repeat the above steps with "multiplier" and "1.5"
      • a new entry in the list of the panel is created
      • draw a rectangle and open the appearance panel
      • add two stroke contents and set their values in the following way
        • select a content and click on the cog in the content entry
        • in the modal view, set values for width and alignment to your liking
        • when setting the alignment for the second content, enter # outer_most_stroke
        • click ok
      • the alignment of the second stroke content is now linked to the variable's value
      • changing the value of the variable's definition results in a change of the stroke's alignment
      • go back to the second stroke content's alignment editing
      • after the variable reference ( # outer_most_stroke ), insert "* ( # multiplier )"
      • the alignment should now always be the value of the multiplier variable ( 1.5 ) times the value of the variable "outer_most_stroke", even after the values of the variable definitions have been changed
      • this feature should be available for any field at all places in VS
      • should a variable be referenced that has a value that is either of..
        • ill-formatted
        • illegal in any other way
          .. the reference should be ignored and a default value should be used for the attribute
      • implementing this feature should be relatively easy, since only two things need to done code-wise ( maybe slightly more difficult than that, but I can't imagine much more difficult )
        • adding a "Variables" panel, which could basically be the "Conditions" panel with minor adjustments
        • resolve any use of the syntax "# { variable_name }" to an access of the corresponding property of the class corresponding to the new "Variables" panel

     

    6. Keyframe animation timeline

    After a lot of experimentation I found using VS to make keyframe animations using the blend tool and batch export actually viable. However, the alignment of all the frames on the artboard and exporting for each preview take a lot of time.

    Having a keyframe animation timeline would speed up the process by a lot. I realize this probably goes a little beyond VS's intended purpose, but VS offers so many nice tools and effects that help in drawing the blend sources that even a very simple timeline with a preview would enable one doing both illustration and animation in VS.

     

    Summary

    1. Nested selection tool ( Accumulated )
    2. Making the reflect tool cursor snap to paths, nodes and guides ( Accumulated )
    3. Making bounding box color dependent on object fill / stroke color ( Accumulated )
    4. Make proportional enabled by default for scatter and pattern brushes ( Accumulated )
    5. Variables
    6. Keyframe animation timeline

     

    EDIT: Added 6. in 1.1.028.


  • administrators

    @Nils About "Variables". These are mostly supported in VS (styles are actually variables). The only missing thing is to add new "variable" types, like stroke width and maybe allow the combination of multiple variables to build up an attribute.

    This is doable, but not immediately (not in then current sprint).


  • administrators

    @Nils Question about Variables: would these be only real (number) values? or something else also?
    The Styles panel already handles the variable editing scheme in general, so I would be inclined to have these "number" variables there also.
    Having a separate panel is only advantageous if restricted to a specific variable type
    (in case of Conditions, we have a Styles panel restricted to show condition variables).



  • @vectoradmin I was thinking more about something apart from styles. As I outlined above I meant direct references to variables with arbitrary values in any field that takes a primitive value with the syntax # variable_name.

    The reason I was thinking that was that I noticed you only add attribute styles step-wise and I thought "why not abstract this process in one sweep?".


  • administrators

    @Nils said in Editing features ( mega-topic ) ( unimplemented ):

    @vectoradmin I was thinking more about something apart from styles. As I outlined above I meant direct references to variables with arbitrary values in any field that takes a primitive value with the syntax # variable_name.

    The problem with this is that it will only work for fields (values) that explicitly support this. Having all internal numbers as "variables" could result in some performance impact.

    For example: currently a "shape" can a variable, as it is a larger "attribute", but the width of the rectangle shape cannot currently be a variable (detailed attributes). If we are to allow all detailed attributes to be variables, we need to "resolve" these, that means a "variant" like storage (more memory) and at least a check of their type when accessing, and this will slow things down considerably.

    One thing that can be done, is to converge in the future to more and more variable use for areas where it is needed, as long as it can be handled without performance impact.

    But there is an alternate solution for this, that is currently doable: using (numeric) variables to override deep properties in objects / attributes. This would have minor performance impact (and only if used), and would not require any changes to the storage or memory model of existing objects.

    I just have to find the right UI presentation of this.



  • @vectoradmin said in Editing features ( mega-topic ) ( unimplemented ):

    using (numeric) variables to override deep properties in objects / attributes

    Yes, that is probably 98% of what I would use. I assume such overrides wouldn't affect clone links and such, right?


  • administrators

    @Nils said in Editing features ( mega-topic ) ( unimplemented ):

    Yes, that is probably 98% of what I would use. I assume such overrides wouldn't affect clone links and such, right?

    Depends on what object the override is added. If added to the source object, then the clone would inherit it. If on the clone, then it would overwrite (localize) a cloned attribute of the source.



  • @vectoradmin I see. You mentioned not possible in the "current sprint". When do you expect the current and the next sprint to end approximately?


  • administrators

    @Nils Thinking about this: the UI could be implemented in a way to hide the complexity from the user and have variable names in regular numeric fields.
    The only limitation is that some fields would accept variables and other not. This limitation could evolve over time, if variable support is added to more places.



  • @vectoradmin Why do not all fields have variable support? From a programming perspective that seems quite strange.


  • administrators

    @Nils said in Editing features ( mega-topic ) ( unimplemented ):

    @vectoradmin Why do not all fields have variable support? From a programming perspective that seems quite strange.

    Internal class "fields" or numeric "fields" in UI?

    I as referring to numeric fields in UI 🙂

    In VS, internal class "fields" are properties (there are very few fields as in C++ syntax). These can have variable support if stored as variants (a lot are not), or if a variable override sets them (possible for all).

    UI numeric "fields": these have an associated "formatter" that determines what is a correct input and how to interpret it. Most numeric fields have a number "formatter" type. These would need to be changed in resources.