def exportGraph(self,fname=None,asString=0): try: if not asString: if not fname: fname = gui.getFilenameToSave() if fname == "": self.didSave = False return nodes = filter(lambda o: isinstance(o,node.Node),gui.manager.objects) nodes = map(lambda o: o.getExportData(), nodes) data = (nodes, node.connector.getExportData()) data = cPickle.dumps(data) if asString: return data f = open(fname,"w") f.write(data) f.close() if fname != "scene.ariel": print "sketch saved to", fname # save filename for later, update title of window to reflect last saved name self.lastFilename = fname ofSetWindowTitle(self.lastFilename) self.didSave = True except: print "export failed." import traceback traceback.print_exc() gui.doPopupMessage("Export failed.")
def saveOver(self,fname=None,asString=0): #print "saveover:", self.lastFilename fname = self.lastFilename try: if not asString: if not fname: fname = gui.getFilenameToSave() if fname == "": return nodes = filter(lambda o: isinstance(o,node.Node),gui.manager.objects) nodes = map(lambda o: o.getExportData(), nodes) data = (nodes, node.connector.getExportData()) data = cPickle.dumps(data) if asString: return data f = open(fname,"w") f.write(data) f.close() print "sketch saved to", fname self.lastFilename = fname ofSetWindowTitle(self.lastFilename) self.didSave = True except: print "export failed." import traceback traceback.print_exc() gui.doPopupMessage("Export failed.")
def saveOver(self, fname=None, asString=0): #print "saveover:", self.lastFilename fname = self.lastFilename try: if not asString: if not fname: fname = gui.getFilenameToSave() if fname == "": return nodes = filter(lambda o: isinstance(o, node.Node), gui.manager.objects) nodes = map(lambda o: o.getExportData(), nodes) data = (nodes, node.connector.getExportData()) data = cPickle.dumps(data) if asString: return data f = open(fname, "w") f.write(data) f.close() print "sketch saved to", fname self.lastFilename = fname ofSetWindowTitle(self.lastFilename) self.didSave = True except: print "export failed." import traceback traceback.print_exc() gui.doPopupMessage("Export failed.")
def exportGraph(self, fname=None, asString=0): try: if not asString: if not fname: fname = gui.getFilenameToSave() if fname == "": self.didSave = False return nodes = filter(lambda o: isinstance(o, node.Node), gui.manager.objects) nodes = map(lambda o: o.getExportData(), nodes) data = (nodes, node.connector.getExportData()) data = cPickle.dumps(data) if asString: return data f = open(fname, "w") f.write(data) f.close() if fname != "scene.ariel": print "sketch saved to", fname # save filename for later, update title of window to reflect last saved name self.lastFilename = fname ofSetWindowTitle(self.lastFilename) self.didSave = True except: print "export failed." import traceback traceback.print_exc() gui.doPopupMessage("Export failed.")
def runGraph(self, fname): args = "" if self.fullscreen.currentChoice == 1: args += " fullscreen" if os.system(sys.executable + " player.py " + fname + args): gui.doPopupMessage( "Scene exited abnormally.", "Check the Terminal window for additional error information.")
def doUndo(self): try: del(gui.undo.undoState[-1]) except: pass state = gui.undo.undo() if not state: gui.doPopupMessage("There is no further undo information.") return self.loadGraph(state)
def doUndo(self): try: del (gui.undo.undoState[-1]) except: pass state = gui.undo.undo() if not state: gui.doPopupMessage("There is no further undo information.") return self.loadGraph(state)
def runGraph(self,fname): args = "" if self.fullscreen.currentChoice == 1: args += " fullscreen" if os.system(sys.executable+" player.py "+fname+args): gui.doPopupMessage("Scene exited abnormally.","Check the Terminal window for additional error information.")
def loadGraph(self, state=None): node.connector.isLoadingFromFile = 1 try: if not state: fname = gui.getFilenameToOpen() self.lastFilename = fname if fname == "": return fm = open(fname) data = cPickle.load(fm) fm.close() else: data = cPickle.loads(state) # print "loading data" # print data nodeData, connectorData = data index = {} node.connector.clearAll() # filter out (delete) all existing nodes gui.manager.objects = filter(lambda f: not isinstance(f, node.Node), gui.manager.objects) for n in nodeData: #print n name, inputs, outputs, params, layout = n basename = string.splitfields(string.split(name)[1],".")[1] classname = "node."+basename try: newNode = eval(classname + "()") except: #print "failed to load class",classname classname = basename #print "trying user scripts" for c in nodepallet.labelsToNodes.values(): # print "checking",c.__name__ if c.__name__ == classname: #print "we have a match!" newNode = c() #print "class loaded" newNode.x, newNode.y, newNode.w, newNode.h = layout #print newNode newNode.setParameterDict(params) # if isinstance(newNode, node.Container): # newNode.parseFile() #print inputs,outputs for i in inputs+outputs: index[i[1]] = (newNode,i[0]) for conn in connectorData: f,t = conn fromNode, fromConn = index[f] toNode, toConn = index[t] fromConn = fromNode.getOutputByName(fromConn) #print "looking for",toConn,"in",toNode toConn = toNode.getInputByName(toConn) #print "connections",fromConn,toConn fromConn.connect(toConn) # is there a better spot for this? # change splitter's output type to match the current input type (if there is one) for n in gui.manager.objects: if isinstance(n, node.Splitter): if n.inputs[0]: n.switchOutputClass(n.inputs[0].getParent()) except: print "load failed." import traceback traceback.print_exc() gui.doPopupMessage("Load failed.","Please make sure you are trying to load a valid ARIEL scene.") node.connector.isLoadingFromFile = 0 ofSetWindowTitle(self.lastFilename)
def loadGraph(self, state=None): node.connector.isLoadingFromFile = 1 try: if not state: fname = gui.getFilenameToOpen() self.lastFilename = fname if fname == "": return fm = open(fname) data = cPickle.load(fm) fm.close() else: data = cPickle.loads(state) # print "loading data" # print data nodeData, connectorData = data index = {} node.connector.clearAll() # filter out (delete) all existing nodes gui.manager.objects = filter( lambda f: not isinstance(f, node.Node), gui.manager.objects) for n in nodeData: #print n name, inputs, outputs, params, layout = n basename = string.splitfields(string.split(name)[1], ".")[1] classname = "node." + basename try: newNode = eval(classname + "()") except: #print "failed to load class",classname classname = basename #print "trying user scripts" for c in nodepallet.labelsToNodes.values(): # print "checking",c.__name__ if c.__name__ == classname: #print "we have a match!" newNode = c() #print "class loaded" newNode.x, newNode.y, newNode.w, newNode.h = layout #print newNode newNode.setParameterDict(params) # if isinstance(newNode, node.Container): # newNode.parseFile() #print inputs,outputs for i in inputs + outputs: index[i[1]] = (newNode, i[0]) for conn in connectorData: f, t = conn fromNode, fromConn = index[f] toNode, toConn = index[t] fromConn = fromNode.getOutputByName(fromConn) #print "looking for",toConn,"in",toNode toConn = toNode.getInputByName(toConn) #print "connections",fromConn,toConn fromConn.connect(toConn) # is there a better spot for this? # change splitter's output type to match the current input type (if there is one) for n in gui.manager.objects: if isinstance(n, node.Splitter): if n.inputs[0]: n.switchOutputClass(n.inputs[0].getParent()) except: print "load failed." import traceback traceback.print_exc() gui.doPopupMessage( "Load failed.", "Please make sure you are trying to load a valid ARIEL scene.") node.connector.isLoadingFromFile = 0 ofSetWindowTitle(self.lastFilename)