class ScriptText(TextScroll): def __init__(self, conn, suite, trait, script): self.conn = conn self.suite = suite self.trait = trait self.script = TraitScript(self.conn, self.suite) self.script.set_trait(trait) self.current_script = script text = self.script.read_script(self.current_script) TextScroll.__init__(self, text) def populate_menu(self, widget, mainmenu, tmenu): menuitem = widget.get_name() populate_menu(mainmenu, self.trait, [menuitem], self.edit_script) def edit_script(self, menuitem, name, parent): sfile = self.script.get(name) tmp, path = tempfile.mkstemp('paella', 'script') print path, tmp script = sfile.read() sfile.close() tmp = file(path, 'w') tmp.write(script) tmp.close() os.system('$EDITOR %s' %path) tmp = file(path, 'r') mod = tmp.read() tmp.seek(0) if mod != script: print 'script modified' self.script.save_script(name, tmp) self.set_text(name, mod) os.remove(path) def new_script(self, name): if self.script.get(name) is not None: dialogs.Message('script exists') raise Error, 'script exists' tmp = strfile() self.script.insert_script(name, tmp) self.append_script(name) tmp.close() self.edit_script(None, name, None) def append_script(self, name, text=''): page = TextScroll(text, name=name) page.tview.connect('populate-popup', self.populate_menu, self.menu) self.append_page(page, name)