On Oct 8, 7:41 am, "Edward K. Ream" <[email protected]> wrote:
> Creating batches of slides quickly becomes tedious.
Finally, here is a tested, undoable, script that inserts @screenshot
and (optionally) @select nodes. This will likely be the last script
needed.
'''
Copy the @screenshot node (a child of this node)
to all @slide nodes under p, (an @slideshow node),
that do not contain an @screenshot node.
'''
error = None
# Find this node:
h = '@button co...@screenshot-node'
p2 = g.findNodeAnywhere(c,h)
if not p2:
error = 'Can not find',p.h
# Find the @screenshot tree and the optional @select node.
if not error:
select,template = None,None
for child in p2.children():
if g.match_word(child.h,0,'@screenshot'):
template = child.copy()
if g.match_word(child.h,0,'@select'):
select = child.copy()
if not template:
error = 'No template @slideshow node in %s' % p2.h
if not error:
if not g.match_word(p.h,0,'@slideshow'):
error = 'not an @slideshow node',p.h
if error:
g.error(error)
else:
c.selectPosition(template)
c.copyOutline()
changed = False
b = c.undoer.beforeChangeTree(p)
for child in p.children():
if not g.match_word(child.h,0,'@slide'):
continue
for grandChild in child.children():
if g.match_word(grandChild.h,0,'@screenshot'):
break
else:
changed = True
p3 = child.insertAsLastChild()
c.selectPosition(p3)
c.pasteOutline()
g.note('copied @screenshot to %s' % child.h)
if select:
c.selectPosition(p3)
p4 = child.insertAsLastChild()
p4.h = select.h
g.note('copied %s to %s' % (select.h,child.h))
c.selectPosition(p3)
c.deleteOutline(p3)
child.contract()
if changed:
c.undoer.afterChangeTree(p,'co...@screenshot',b)
c.redraw()
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.