On Jul 4, 3:18 pm, "Ville M. Vainio" <[email protected]> wrote:
> On Sat, Jul 4, 2009 at 10:13 PM, Edward K. Ream<[email protected]> wrote:
> > BTW, this would also be the end of tnodes, and all the confusion
> > regarding vnodes vs tnodes, t.uA's vs. v.uA's, etc. etc.
>
> Relevant, because I was just now hit with this (for my next cool tweak
> regarding contextmenu, "collect under" that uses multiselection):

I think we will all be better off without the tnode/vnode
distinction.  This is much easier (for me) now that the clones are
always exactly the same node.  The notion that clones were independent
nodes caused (me) a lot of confusion.

> It will also allow node api users to operate on nodes directly in
> "documented" fashion, instead of having to go through positions.

I'm not sure what to think about this.  Certainly, given a (v)node,
there are several operations that can be done.  But many other
operations can only be done in the context of a traversal, that is,
with a position.

It will be interesting to see how this plays out.

> Positions are bad sometimes, because their meaning changes when the
> tree changes. If you want to move 30 nodes under node n, you can just
> do p.moveToLastChildOf(n) in a loop. With positions, this doesn't work
> (well, it works, but gives lots of assert failures and undo doesn't
> work).

Again, I'm not sure what to think about this.  Certainly, one must
take care when changing outlines, but I'm not all that sure that the
level of difficulty is really different between nodes and positions.

> positions are relevant as tree iterators (in the meaning of "positions
> on screen"), but are no longer a necessary middleman for all tree
> operations for "bookkeeping".

Hmm.  I suppose this is true, but positions are vital also.

Indeed, you could say that the union of all v.children arrays defines
the outline's structure.  Depending on what these are allowed to
contain, we could get a (strict) tree, a DAG, or a general graph.

OTOH, positions are absolutely required in order to draw the tree, so
it's dubious to downplay positions.  Leo must, and does, pay strict
attention to upgrading the current and root positions when changing
the tree.

In short, it is the (careful!) combination of positions and (v)nodes
that will make the one-node world work.

Edward
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/leo-editor?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to