def addInstBlockPort( self, execPath, instName, blockName, desiredPortName, typeSpec, pathToConnect, extDep, metaData, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_AddInstBlockPort( self.binding, execPath, exec_, instName, blockName, desiredPortName, typeSpec, pathToConnect, extDep, metaData, ) InvokeCmd(cmd, self.qUndoStack) return cmd.getActualPortName()
def addBlockPort( self, execPath, blockName, desiredPortName, portType, typeSpec, pathToConnect, connectType, extDep, metaData, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_AddBlockPort( self.binding, execPath, exec_, blockName, desiredPortName, self.decodePortType(portType), typeSpec, pathToConnect, self.decodePortType(connectType), extDep, metaData, ) InvokeCmd(cmd, self.qUndoStack) return cmd.getActualPortName()
def instPreset(self, execPath, presetPath, posX, posY): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_InstPreset(self.binding, execPath, exec_, presetPath, QtCore.QPointF(posX, posY)) InvokeCmd(cmd, self.qUndoStack) return cmd.getActualNodeName()
def addFunc(self, execPath, title, initialCode, posX, posY): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_AddFunc(self.binding, execPath, exec_, title, initialCode, QtCore.QPointF(posX, posY)) InvokeCmd(cmd, self.qUndoStack) return cmd.getActualNodeName()
def addPort( self, execPath, desiredPortName, portTypeStr, typeSpec, portToConnect, extDep, metaData, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) portTypeStrLower = portTypeStr.lower() if portTypeStrLower == "io": portType = self.client.DFG.PortTypes.IO elif portTypeStrLower == "out": portType = self.client.DFG.PortTypes.Out else: portType = self.client.DFG.PortTypes.In cmd = DFG.DFGUICmd_AddPort( self.binding, execPath, exec_, desiredPortName, portType, typeSpec, portToConnect, extDep, metaData, ) InvokeCmd(cmd, self.qUndoStack) return cmd.getActualPortName()
def editPort( self, execPath, oldPortName, desiredNewPortName, portType, typeSpec, extDep, metaData, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_EditPort( self.binding, execPath, exec_, oldPortName, desiredNewPortName, self.decodePortType(portType), typeSpec, extDep, metaData, ) InvokeCmd(cmd, self.qUndoStack) return cmd.getActualNewPortName()
def implodeNodes(self, execPath, packedNodeNames, desiredNodeName): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) nodeNames = BindingWrapper.splitNames(packedNodeNames) cmd = DFG.DFGUICmd_ImplodeNodes(self.binding, execPath, exec_, nodeNames, desiredNodeName) InvokeCmd(cmd, self.qUndoStack) return cmd.getActualImplodedNodeName()
def addSet(self, execPath, desiredNodeName, varPath, posX, posY): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_AddSet(self.binding, execPath, exec_, desiredNodeName, varPath, QtCore.QPointF(posX, posY)) InvokeCmd(cmd, self.qUndoStack) return cmd.getActualNodeName()
def importNodeFromJSON(self, execPath, nodeName, filePath, posX, posY): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_ImportNodeFromJSON(self.binding, execPath, exec_, nodeName, filePath, QtCore.QPointF(posX, posY)) InvokeCmd(cmd, self.qUndoStack) return cmd.getActualNodeName()
def moveNodes(self, execPath, packedNodeNames, packedNewTopLeftPosXs, packedNewTopLeftPosYs): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) nodeNames = BindingWrapper.splitNames(packedNodeNames) newTopLeftPoss = BindingWrapper.splitPoss(packedNewTopLeftPosXs, packedNewTopLeftPosYs) cmd = DFG.DFGUICmd_MoveNodes(self.binding, execPath, exec_, nodeNames, newTopLeftPoss) InvokeCmd(cmd, self.qUndoStack)
def connect( self, execPath, srcPort, dstPort, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_Connect(self.binding, execPath, exec_, srcPort, dstPort) InvokeCmd(cmd, self.qUndoStack)
def dismissLoadDiags( self, packedIndices, ): rootExec = self.binding.getExec() indices = BindingWrapper.splitInts(packedIndices) cmd = DFG.DFGUICmd_DismissLoadDiags( self.binding, indices, ) InvokeCmd(cmd, self.qUndoStack)
def splitFromPreset( self, execPath, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_SplitFromPreset( self.binding, execPath, exec_, ) InvokeCmd(cmd, self.qUndoStack)
def _initTreeView(self): """Initializes the preset TreeView. Also connects the DFG Controller's dirty signal to the onDirty method. """ controller = self.dfgWidget.getDFGController() self.treeWidget = DFG.PresetTreeWidget(controller, self.config, True, False, False, False, False, True) self.dfgWidget.newPresetSaved.connect(self.treeWidget.refresh) controller.varsChanged.connect(self.treeWidget.refresh) controller.dirty.connect(self.onDirty) controller.topoDirty.connect(self.onTopoDirty)
def _initDFG(self): """Initializes the Data Flow Graph. An evalContext is created to provide contextual information about the evaluation to operators and other objects and systems with Fabric Engine. A binding to a graph is initialized and is setup so the application can interact with it via the DFGWidget and through other scripted methods within the application. The UICmdHandler handles the interaction between the UI and the client. The DFGWidget is the UI that reflects the binding to the graph that is created and changed through the application. """ self.evalContext = self.client.RT.types.EvalContext.create() self.evalContext = self.evalContext.getInstance('EvalContext') self.evalContext.host = 'Canvas' self.astManager = KLASTManager(self.client) self.host = self.client.getDFGHost() self.mainBinding = self.host.createBindingToNewGraph() self.lastSavedBindingVersion = self.mainBinding.getVersion() self.lastAutosaveBindingVersion = self.lastSavedBindingVersion graph = self.mainBinding.getExec() self.scriptEditor = ScriptEditor(self.client, self.mainBinding, self.qUndoStack, self.logWidget, self.settings, self, self.config) self.dfguiCommandHandler = UICmdHandler(self.client, self.scriptEditor) astManager = KLASTManager(self.client) self.lastSavedBindingVersion = self.mainBinding.getVersion() self.lastAutosaveBindingVersion = self.lastSavedBindingVersion graph = self.mainBinding.getExec() self.dfgWidget = DFG.DFGWidget(None, self.client, self.host, self.mainBinding, '', graph, self.astManager, self.dfguiCommandHandler, self.config) self.scriptEditor.setDFGControllerGlobal( self.dfgWidget.getDFGController()) tabSearchWidget = self.dfgWidget.getTabSearchWidget() tabSearchWidget.enabled.connect(self.enableShortCutsAndUndoRedo) self.dfgWidget.onGraphSet.connect(self.onGraphSet) self.dfgWidget.additionalMenuActionsRequested.connect( self.onAdditionalMenuActionsRequested) self.dfgWidget.urlDropped.connect(self.onUrlDropped)
def disconnect( self, execPath, packedSrcPorts, packedDstPorts, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) srcPorts = BindingWrapper.splitNames(packedSrcPorts) dstPorts = BindingWrapper.splitNames(packedDstPorts) cmd = DFG.DFGUICmd_Disconnect(self.binding, execPath, exec_, srcPorts, dstPorts) InvokeCmd(cmd, self.qUndoStack)
def setArgValue( self, argName, typeName, valueJSON, ): value = self.rtvalEncoderDecoder.getFromString(typeName, valueJSON) cmd = DFG.DFGUICmd_SetArgValue( self.binding, argName, value, ) InvokeCmd(cmd, self.qUndoStack)
def removePort( self, execPath, portName, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_RemovePort( self.binding, execPath, exec_, portName, ) InvokeCmd(cmd, self.qUndoStack)
def setCode( self, execPath, code, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_SetCode( self.binding, execPath, exec_, code, ) InvokeCmd(cmd, self.qUndoStack)
def setExtDeps( self, execPath, packedExtDeps, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) extDeps = BindingWrapper.splitNames(packedExtDeps) cmd = DFG.DFGUICmd_SetExtDeps( self.binding, execPath, exec_, extDeps, ) InvokeCmd(cmd, self.qUndoStack)
def explodeNode( self, execPath, nodeName ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_ExplodeNode( self.binding, execPath, exec_, nodeName ) InvokeCmd(cmd, self.qUndoStack) return cmd.getExplodedNodeNames()
def removePort( self, execPath, packedPortNames, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) portNames = BindingWrapper.splitNames(packedPortNames) cmd = DFG.DFGUICmd_RemovePort( self.binding, execPath, exec_, portNames, ) InvokeCmd(cmd, self.qUndoStack)
def reorderPorts( self, execPath, packedIndices, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) indices = BindingWrapper.splitInts(packedIndices) cmd = DFG.DFGUICmd_ReorderPorts( self.binding, execPath, exec_, indices, ) InvokeCmd(cmd, self.qUndoStack)
def setNodeComment( self, execPath, nodeName, comment, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_SetNodeComment( self.binding, execPath, exec_, nodeName, comment, ) InvokeCmd(cmd, self.qUndoStack)
def setRefVarPath( self, execPath, refName, varPath, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_SetRefVarPath( self.binding, execPath, exec_, refName, varPath, ) InvokeCmd(cmd, self.qUndoStack)
def renamePort( self, execPath, portPath, desiredNewPortName, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_RenamePort( self.binding, execPath, exec_, portPath, desiredNewPortName, ) InvokeCmd(cmd, self.qUndoStack) return cmd.getActualNewPortName()
def setPortDefaultValue( self, execPath, portPath, typeName, valueJSON, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) value = self.rtvalEncoderDecoder.getFromString(typeName, valueJSON) cmd = DFG.DFGUICmd_SetPortDefaultValue( self.binding, execPath, exec_, portPath, value, ) InvokeCmd(cmd, self.qUndoStack)
def paste( self, execPath, json, cursorPosX, cursorPosY, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_Paste( self.binding, execPath, exec_, json, QtCore.QPointF(cursorPosX, cursorPosY), ) InvokeCmd(cmd, self.qUndoStack) return cmd.getPastedItemNames()
def createPreset( self, execPath, nodeName, presetDirPath, presetName, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_CreatePreset( self.binding, execPath, exec_, nodeName, presetDirPath, presetName, ) InvokeCmd(cmd, self.qUndoStack) return cmd.getPathname()
def resizeBackDrop( self, execPath, backDropNodeName, newTopLeftPosX, newTopLeftPosY, newSizeW, newSizeH, ): rootExec = self.binding.getExec() exec_ = rootExec.getSubExec(execPath) cmd = DFG.DFGUICmd_ResizeBackDrop( self.binding, execPath, exec_, backDropNodeName, QtCore.QPointF(newTopLeftPosX, newTopLeftPosY), QtCore.QSizeF(newSizeW, newSizeH), ) InvokeCmd(cmd, self.qUndoStack)