On Tue, 17 Mar 2015 06:12:38 -0500 "Edward K. Ream" <[email protected]> wrote:
> On Mon, Mar 16, 2015 at 10:45 PM, Chris George <[email protected]> > wrote: > > > I have found myself wanting to select multiple nodes and perform an > > action on them. I remember this as a limitation that I had > > encountered before when selecting and attempting to copy/paste or > > drag and drop multiple nodes. It seems to me that this would be a > > pretty handy feature. > > > > Is there something I am missing, beyond the obvious challenges of > > programming such a feature? > > This can be done for special features/commands. It makes sense for > drag and drop, for example. However, Leo's gui-independent core > isn't ready for multiple selected nodes, so each feature > has to be handled in gui-specific code. > > Terry, please correct me if I'm being too timid. Interesting coincidence that I just tweaked quickMove.py to operate on multiple nodes. It's a little different from copy / paste in that you have to select your destination *first*, but it's still handy for major re-arranging. One important concept is that multi-node selection still has a single 'current' node, typically the last of node selected. E.g. click a node, shift-click a node three sibs. down to select intervening nodes, then c.p and the Qt tree widget both agree that the last node clicked is the 'current' node. This is good because it means multi-node selections can always be ignored by things that need to ignore them, the 'current node' does not become undefined when multiple nodes are selected. I also just noticed the `delete-node` is not running the same code as context menu delete, the later attempts to delete all selected nodes. I think there have been fairly lengthy debates about the safety and predictability of the context menu code before, although I think it ended up using c.deletePositionsInList, so it seems `delete-node` should do that too. But things do get complicated quickly, particularly because selections can be spread over the outline without selection of intervening nodes - when you copy paste something like that, what do you want to happen? Delete is actually a simpler case. Chris - what were the operations you were missing? Does quickMove cover them? Or do you want to apply todo.py attributes to multiple nodes? Could certainly look in to that. The todo Priority - Redistribute function would almost handle making all children priority x, except that it only modifies existing priorities :-} Cheers -Terry -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/leo-editor. For more options, visit https://groups.google.com/d/optout.
