Thank you all! c.getSelectedPositions() does the trick~ 

On Friday, January 3, 2014 4:26:50 PM UTC-5, Jacob Peck wrote:
>
> On 1/3/2014 4:22 PM, Jacob Peck wrote: 
> > On 1/3/2014 4:07 PM, Jack Kuan wrote: 
> >> Hi, 
> >> 
> >> I have written a script and made a button for it. I can run it(click 
> >> the button) on one selected node, but how do I make it run ALL 
> >> selected nodes? 
> > This is tricky, and Edward has been pushing towards disallowing Leo 
> > from having multiple selected nodes (a huge mistake IMO). 
> > 
> > Instead of using p in your script, use c.getSelectedPositions() to get 
> > a list, and then iterate over that list: 
> > 
> > alist = c.getSelectedPositions() 
> > for pos in alist: 
> >   g.es(pos.h) 
> >> Also, is there a find command that will let me execute my script on 
> >> all found nodes? 
> >> 
> > Well, this is a case-by-case thing, relatively difficult to 
> generalize... 
> > 
> > You can do this: 
> > 
> > foundNodes = [] 
> > for pos in c.all_positions(): 
> >   if 'someString' in pos.h: foundNodes.append(pos) 
> > 
> oops, that should have been: 
>
> if 'someString' in pos.h: foundNodes.append(pos.copy()) 
>
> -->Jake 
>
> > for pos in foundNodes: 
> >   g.es(pos.h) 
> > 
> > That script searches the entire outline for nodes that have 
> > 'someString' in their headlines, and then iterates over them. 
> > 
> > In general, when working with multiple nodes in Leo, you're going to 
> > want to do a for-each loop over a list or generator. 
> > 
> > Hope this helps! 
> > -->Jake 
> >> Thanks 
> >> Jack 
> >> -- 
> >> 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] <javascript:>. 
> >> To post to this group, send email to 
> >> [email protected]<javascript:>. 
>
> >> Visit this group at http://groups.google.com/group/leo-editor. 
> >> For more options, visit https://groups.google.com/groups/opt_out. 
> > 
>
>

-- 
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/groups/opt_out.

Reply via email to