def on_icondclick(tag, keywords): c = keywords.get("c") p = keywords.get("p") h = p.h if g.match_word(h,0,"@expfolder"): if p.hasChildren(): result = g.app.gui.runAskYesNoDialog(c, "Reread?", "Reread contents of folder "+h[11:]+"?") if result == "no": return kids = [] for cp in p.subtree(): if cp.isDirty() and g.match_word(cp.h, 0, "@text"): kids.append(cp.copy()) if kids != []: result = g.app.gui.runAskYesNoDialog(c, "Reread?", "Save changed @text nodes?") if result == "yes": for kid in kids: savetextnode(c, kid) # delete children while p.firstChild(): p.firstChild().doDelete() #changed = c.isChanged() dir = h[11:] dirs = [] files = [] for file in os.listdir(dir): path = os.path.join(dir, file) if os.path.isdir(path): dirs.append(path) else: files.append(path) #g.es('dirs: '+str(dirs)) #g.es('files: '+str(files)) dirs.sort() files.sort() for f in files: pn = p.insertAsNthChild(0) if os.path.splitext(f)[1] in textexts: c.setHeadString(pn, "@text "+f) pn.clearDirty() else: c.setHeadString(pn, f) #pn.clearDirty() for d in dirs: pn = p.insertAsNthChild(0) c.setHeadString(pn, "@expfolder "+d) #pn.clearDirty() #p.clearDirty() #c.setChanged(changed) c.expandSubtree(p)
def on_icondclick(tag, keywords): c = keywords.get("c") p = keywords.get("p") h = p.h if g.match_word(h,0,"@expfolder"): if p.hasChildren(): result = g.app.gui.runAskYesNoDialog(c, "Reread?", "Reread contents of folder "+h[11:]+"?") if result == "no": return kids = [] for cp in p.subtree(): if cp.isDirty() and g.match_word(cp.h, 0, "@text"): kids.append(cp.copy()) if kids != []: result = g.app.gui.runAskYesNoDialog(c, "Reread?", "Save changed @text nodes?") if result == "yes": for kid in kids: savetextnode(c, kid) # delete children while p.firstChild(): p.firstChild().doDelete() #changed = c.isChanged() dir = h[11:] dirs = [] files = [] for file in os.listdir(dir): path = os.path.join(dir, file) if os.path.isdir(path): dirs.append(path) else: files.append(path) #g.es('dirs: '+str(dirs)) #g.es('files: '+str(files)) dirs.sort() files.sort() for f in files: pn = p.insertAsNthChild(0) if os.path.splitext(f)[1] in textexts: c.setHeadString(pn, "@text "+f) pn.clearDirty() else: c.setHeadString(pn, f) #pn.clearDirty() for d in dirs: pn = p.insertAsNthChild(0) c.setHeadString(pn, "@expfolder "+d) #pn.clearDirty() #p.clearDirty() #c.setChanged(changed) c.expandSubtree(p)