Hi all,

I'm not sure it is exactly what this discussion is about, but let me suggest another point of view about clone behaviours.

In my opinion (and my practice), clones would be much easier to use if there was no difference at all between clones and masters:
the user should be able to edit any clone as if it was the master, and vice versa.

Let me give more details and some reasons why I think so:
Pros:
1- the distinction between clones and master is a purely technical point about where the information is stored: it has no artistic content and has no reason to interfer with the user workflow,
2- atm, if you delete the master, all the clones become free. Suppose you did it by mistake thinking it was a clone... your mistake can go unnoticed for quite a while, and there will likely be no undo then! (yes, we could also raise warnings, but they would be annoying 99% of the time). The only work arround I found to this is to systematically move all the masters to a separate dedicated layer so that they are clearly identified...
It would be much simpler if, when deleting the master, one of the clones was made real and used as the new master by all the others.
3- editing clones is impossible atm; you have to edit the master. But the master is most likely not the instance you would naturally choose (because it's far away from the area you are focusing on or whatever...). Why blocking the user? Why couldn't we edit the clone as if it was the master, and apply the modification to all the relevant objects?
4- this behavior is what is used in most 3d software I think (at least in blender): objects can share data (like mesh definition wich is similar to our path "d" attribute) and you can access and edit this data from any object using it...


Cons:
1- it is not what comes first in mind when reading the svg format! Data is not really shared among objects there. However, I think it is only a matter of software behaviour and UI, so this is still 100% compatible with svg format; we could also use "symbols" for that, whose definition is slightly more symetric.
2- it is not the way it works now and most we are accustomed to think about clones as having a master... The good point is they would still have one, and you could keep your workflow. It is just a matter of adding more features to clone collections.

So my suggestion would be:
- when the user tries to do anything (node-edit/add path effect/style-edit or whatever) to a clone: do it on the master, transparently to the user (if any, display the editor helpers using the clone position)
- when the user tries to do something destructive (delete, ungroup, separate paths components) to an object that has clones: make one of the clones real and let the other use it as the new master,
- when the user tries to do something partially destructive (apply a path effect, convert to path) to an object that has clones: do it normaly and the clones will follow.

This should of course be controllable from the user preferences panel.

Another remark that I learnt from my practice that it is generally a good idea to first put the master in a group and clone the group rather than the object itself : it is usefull when it turns out that you later decide to add more  details to your master or want to change a star to a circle or whatever... Do you have the same experience? If so, we could either have an option to systematically add a group around the object we want to clone, or a menu entry to do it afterward... (I wrote a script for that years ago, maybe it's worth turning it into an official extension?).

Does this experience meet yours?

Regards, JF.


2017-12-16 12:51 GMT+01:00 Jabier Arraiza <jabier.arraiza@...2359...893...>:
On Sat, 2017-12-16 at 12:46 +0100, Eduard Braun wrote:
>
> Am 16.12.2017 um 12:39 schrieb Jabier Arraiza:
> > On Sat, 2017-12-16 at 12:10 +0100, Eduard Braun wrote:
> > > Am 16.12.2017 um 11:55 schrieb Jabier Arraiza:
> > > > On Fri, 2017-12-15 at 22:07 +0100, Eduard Braun wrote:
> > > > > P.S. Just noticed some path operations do not unlink yet:
> > > > > - Inset / Outset
> > > > > - Dynamic / Linked Offset
> > > > > - Simplify
> > > > > - Reverse
> > > > >
> > > > > Should they unlink, too? I don't see a reason why not...
> > > > >
> > > > >
> > > > > Also I can not apply a path effects to clones - is that "by
> > > > > design"?
> > > > > If
> > > > > I try "Clone original" is applied automatically (without a
> > > > > possibility
> > > > > to choose another path effect) but seems to be non-
> > > > > functional...
> > > >
> > > > I do it soon.
> > > > About path effect part, I think we need more discussion.
> > > > Realy not sure about, maybe can be another pref option by
> > > > default
> > > > to
> > > > false?
> > > >
> > > > Thanks.
> > >
> > > Thanks!
> > >
> > > Regarding path effects:
> > > It's certainly not required but the current behavior confused me.
> > > Why
> > > is
> > > there a "Clone original" inserted as soon as I click "Add path
> > > effect"?
> > > Also after that my path is gone - that seems wrong... Maybe just
> > > do
> > > nothing in this case and show a warning if the user attempts to
> > > apply
> > > a
> > > path effect to a clone (like we did for other objects before and
> > > like
> > > we
> > > still do if the new setting is disabled)?
> > >
> > > Regards,
> > > Eduard
> >
> > Removing this clone path effect destroy the clone :(
> > Realy the desirable to me work is:
> >
> > * Clone -> add path effect -> apply clone path effect.
> > * Allow add more LPE after it
> > * When remove clone LPE the clone go up.
> >
> > Put it on my TODO if we find consensuous.
> >
> > Regards.
>
> Ah, I see... that's how it's supposed to work!
> The way you describe sounds perfectly reasonable, just wasn't sure if
> I 
> hit a bug here or even undefined behavior...

Great!

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Inkscape-devel mailing list
Inkscape-devel@...1656...784...sourceforge.net
https://lists.sourceforge.net/lists/listinfo/inkscape-devel