Esempio n. 1
0
 def DelLine(self, lineID):
     from .graphicmgr import GetGraphicMgr
     oLine = self.m_ItemInfo[lineID]
     oPinID = oLine.GetAttr(define.LineAttrName.OUTPUT_PINID)
     iPinID = oLine.GetAttr(define.LineAttrName.INPUT_PINID)
     GetIDMgr().DelLine4Pin(oPinID, iPinID, lineID)
     GetGraphicMgr().DelLine4Graphic(lineID)
     del self.m_ItemInfo[lineID]
     graphicID = GetIDMgr().DelLine2Graphic(lineID)
     GetSignal().DEL_LINE.emit(graphicID, lineID)
     GetSignal().PIN_DEL_LINE.emit(iPinID)
Esempio n. 2
0
 def S_FocusItem(self, oModelIndex):
     """
     oModelIndex QModelIndex
     self.model() QStandardItemModel
     """
     item = self.m_Tree.model().itemFromIndex(oModelIndex)
     if not item:
         return
     iItemType, ID = item.GetInfo()
     if iItemType == define.SearchTreeItemType.GRAPHIC:
         GetSignal().UI_FOCUS_GRAPHIC.emit(self.m_BPID, ID)
     else:
         if iItemType == define.SearchTreeItemType.PIN:
             ID = interface.GetNodeIDByPinID(ID)
         graphicID = interface.GetGraphicIDByNodeID(ID)
         GetSignal().UI_FOCUS_NODE.emit(graphicID, ID)
Esempio n. 3
0
 def S_TypeChanged(self):
     sType = self.m_VarType.currentText()
     iType = bddefine.NAME_TYPE[sType]
     if iType == self.m_Type:
         return
     value = bddefine.GetDefauleValue(iType)
     GetSignal().UI_VARIABLE_CHANGE_ATTR.emit(self.m_VarID, eddefine.VariableAttrName.TYPE, iType)
     interface.SetVariableAttr(self.m_VarID, eddefine.VariableAttrName.VALUE, value)
     self.m_Type = iType
     self._SetValueWidget()
Esempio n. 4
0
 def NewGraphic(self, bpID):
     from .bpmgr import GetBPMgr
     graphicID = misc.uuid()
     sName = "图表-%s" % self.NewID()
     oGraphic = CGraphic(graphicID, sName)
     GetIDMgr().SetGraphic2BP(bpID, graphicID)
     GetBPMgr().AddGraphic2BP(graphicID)
     self.m_ItemInfo[graphicID] = oGraphic
     GetSignal().NEW_GRAPHIC.emit(bpID, graphicID)
     return graphicID
Esempio n. 5
0
    def _InitSignal(self):
        GetSignal().DEL_LINE.connect(self.S_OnDelLineUI)
        GetSignal().DEL_NODE.connect(self.S_OnDelNodeUI)
        GetSignal().NEW_NODE.connect(self.S_OnNewNodeUI)

        GetSignal().UI_LINE_PRESS.connect(self.S_LineOnPress)
        GetSignal().UI_LINE_MOVE.connect(self.S_LineOnMove)
        GetSignal().UI_LINE_RELEASE.connect(self.S_LineOnRelease)
        GetSignal().UI_LINE_CONNECT.connect(self.S_LineOnConnect)
Esempio n. 6
0
    def NewNode(self, graphicID,  sNodeName, pos, varID):
        """
        因为预定义节点和上面的pin是预先定义的,可以生成很多实例
        所以每创建一个节点,复制节点以及pin
        """
        from . import interface
        from .graphicmgr import GetGraphicMgr
        oDefineNode = self.m_DefineInfo[sNodeName]
        iNodeType = oDefineNode.GetAttr(bddefine.NodeAttrName.TYPE)

        bIsEventNode = False
        if iNodeType == bddefine.NODE_TYPE_EVENT:
            bIsEventNode = True
            bpID = interface.GetBPIDByGraphicID(graphicID)
            iEventNodeID = interface.GetBlueprintAttr(bpID, eddefine.BlueprintAttrName.EVENT_NODE)
            if iEventNodeID:
                mygID = interface.GetGraphicIDByNodeID(iEventNodeID)
                GetSignal().UI_FOCUS_NODE.emit(mygID, iEventNodeID)
                return

        oNode = copy.deepcopy(oDefineNode)
        nodeID = misc.uuid()
        GetIDMgr().SetNode2Graphic(graphicID, nodeID)     # 记录node对应的graphic
        GetGraphicMgr().AddNode2Graphic(nodeID)           # 添加到graphic里面
        oNode.SetID(nodeID)
        oNode.SetAttr(bddefine.NodeAttrName.POSITION, pos)
        lstPin = []
        for _, oDefinePin in oNode.m_PinInfo.items():
            pinID = interface.AddPin(nodeID, oDefinePin)
            lstPin.append(pinID)
        oNode.SetAttr(bddefine.NodeAttrName.PINIDLIST, lstPin)
        self.m_ItemInfo[nodeID] = oNode

        # 如果是添加变量节点
        if varID:
            oNode.SetAttr(bddefine.NodeAttrName.VARIABLE_ID, varID)
            self.SetVarNodeInfo(nodeID, varID)

        if bIsEventNode:
            interface.SetBlueprintAttr(bpID, eddefine.BlueprintAttrName.EVENT_NODE, nodeID)
        GetSignal().NEW_NODE.emit(graphicID, nodeID)
        return nodeID
Esempio n. 7
0
 def NewVariable(self, bpID):
     from .bpmgr import GetBPMgr
     iType = bddefine.Type.INT
     sName = "NewVar%s" % self.NewID()
     varID = misc.uuid()
     self.m_ItemInfo[varID] = CVariable(varID, sName, iType, 0)
     GetIDMgr().SetVar2BP(bpID, varID)
     GetBPMgr().AddToAttrList(bpID,
                              eddefine.BlueprintAttrName.VARIABLE_LIST,
                              varID)
     GetSignal().NEW_VARIABLE.emit(bpID, varID)
     return varID
Esempio n. 8
0
 def NewLine(self, graphicID, oPinID, iPinID):
     # 删除input槽之前的连接
     from .graphicmgr import GetGraphicMgr
     lstLine = GetIDMgr().GetAllLineByPin(iPinID)
     for lineID in lstLine:
         self.DelLine(lineID)
     lineID = misc.uuid()
     oLine = CLine(lineID, oPinID, iPinID)
     self.m_ItemInfo[lineID] = oLine
     GetIDMgr().SetLine2Graphic(graphicID, lineID)           # 记录line对应的graphic
     GetIDMgr().AddLine2Pin(oPinID, iPinID, lineID)          # 记录引脚对应的line
     GetGraphicMgr().AddLine2Graphic(lineID)                 # 添加到graphic属性里面
     GetSignal().PIN_ADD_LINE.emit(iPinID)
     return lineID
Esempio n. 9
0
    def S_FocusNode(self, graphicID, nodeID):
        if self.m_GraphicID != graphicID:
            return

        bpID = interface.GetBPIDByGraphicID(graphicID)
        GetSignal().UI_FOCUS_GRAPHIC.emit(bpID, graphicID)

        pos = interface.GetNodeAttr(nodeID, bddefine.NodeAttrName.POSITION)
        x, y = pos[0], pos[1]
        oNodeUI = GetUIMgr().GetNodeUI(nodeID)
        if oNodeUI:
            x += oNodeUI.size().width() / 2
            y += oNodeUI.size().height() / 2
        point = QPointF(x, y)
        self.centerOn(point)
        GetStatusMgr().SelectOneNode(graphicID, nodeID)
Esempio n. 10
0
    def DelNode(self, nodeID):
        from . import interface
        from .graphicmgr import GetGraphicMgr
        oNode = self.m_ItemInfo.get(nodeID, None)
        if not oNode:
            return
        lstLine = interface.GetAllLineByNode(nodeID)
        for lineID in lstLine:
            interface.DelLine(lineID)
        lstPin = oNode.GetAttr(bddefine.NodeAttrName.PINIDLIST)
        for pinID in lstPin:
            interface.DelPin(pinID)
        del self.m_ItemInfo[nodeID]
        GetGraphicMgr().DelNode4Graphic(nodeID)
        graphicID = GetIDMgr().DelNode2Graphic(nodeID)
        GetSignal().DEL_NODE.emit(graphicID, nodeID)

        iNodeType = oNode.GetAttr(bddefine.NodeAttrName.TYPE)
        if iNodeType == bddefine.NODE_TYPE_EVENT:
            bpID = interface.GetBPIDByGraphicID(graphicID)
            interface.SetBlueprintAttr(bpID, eddefine.BlueprintAttrName.EVENT_NODE, None)
Esempio n. 11
0
 def _InitSignal(self):
     GetSignal().UI_NEW_BLUEPRINT.connect(self.S_NewBlueprint)
     GetSignal().UI_SAVE_BLUEPRINT.connect(self.S_SaveBlueprint)
     GetSignal().UI_OPEN_BLUEPRINT.connect(self.S_OpenBlueprint)
     GetSignal().UI_SAVE_ALL_BLUEPRINT.connect(self.S_SaveAllBlueprint)
Esempio n. 12
0
 def _InitSignal(self):
     GetSignal().PIN_ADD_LINE.connect(self.S_PinAddLine)
     GetSignal().PIN_DEL_LINE.connect(self.S_PinDelLine)
     GetSignal().LINE_RUN_STATUE.connect(self.S_ChangeLineRunStaue)
Esempio n. 13
0
 def _InitSignal(self):
     self.m_BtnMatch.clicked.connect(self.S_ChangeMatch)
     self.m_Search.returnPressed.connect(self.S_Search)
     self.m_Tree.doubleClicked.connect(self.S_FocusItem)
     GetSignal().UI_SHOW_BP_SEARCH.connect(self.S_ShowBPSearch)
Esempio n. 14
0
 def mousePressEvent(self, event):
     super(CTypeButton, self).mousePressEvent(event)
     if event.button() == Qt.LeftButton:
         GetSignal().UI_LINE_PRESS.emit(self.m_GraphicID, self.m_PinID)
     event.accept()
Esempio n. 15
0
 def S_NameEditingFinished(self):
     sName = self.m_VarName.text()
     if sName == self.m_Name:
         return
     GetSignal().UI_VARIABLE_CHANGE_ATTR.emit(self.m_VarID, eddefine.VariableAttrName.NAME, sName)
     self.m_Name = sName
Esempio n. 16
0
 def S_SaveAllBlueprint(self):
     GetSignal().UI_SAVE_ALL_BLUEPRINT.emit()
Esempio n. 17
0
 def mouseDoubleClickEvent(self, event):
     super(CFileTree, self).mouseDoubleClickEvent(event)
     index = self.indexAt(event.pos())
     sFile = self.m_FileSystem.filePath(index)
     if os.path.isfile(sFile):
         GetSignal().UI_OPEN_BLUEPRINT.emit(sFile)
Esempio n. 18
0
 def mouseDoubleClickEvent(self, event):
     oItem = self.currentItem()
     _, ID = oItem.GetInfo()
     GetSignal().UI_FOCUS_GRAPHIC.emit(self.m_BPID, ID)
Esempio n. 19
0
 def _InitSignal(self):
     super(CGraphicAttrTree, self)._InitSignal()
     GetSignal().NEW_GRAPHIC.connect(self.S_NewItem)
Esempio n. 20
0
 def _InitSignal(self):
     GetSignal().UI_FOCUS_NODE.connect(self.S_FocusNode)
Esempio n. 21
0
 def _InitSignal(self):
     super(CVariableAttrTree, self)._InitSignal()
     GetSignal().NEW_VARIABLE.connect(self.S_NewItem)
Esempio n. 22
0
 def _AddRunLine(self, lineID):
     if lineID not in self.m_LineList:
         self.m_LineList.append(lineID)
         GetSignal().LINE_RUN_STATUE.emit(lineID, True)
Esempio n. 23
0
 def enterEvent(self, event):
     super(CPinUI, self).enterEvent(event)
     GetSignal().UI_LINE_CONNECT.emit(self.m_GraphicID, self.m_PinID)
     event.accept()
Esempio n. 24
0
 def S_OpenBlueprint(self):
     GetSignal().UI_OPEN_BLUEPRINT.emit()
Esempio n. 25
0
 def mouseReleaseEvent(self, event):
     super(CTypeButton, self).mouseReleaseEvent(event)
     if event.button() == Qt.LeftButton:
         GetSignal().UI_LINE_RELEASE.emit(self.m_GraphicID)
     event.accept()
Esempio n. 26
0
 def S_Save(self):
     GetSignal().UI_SAVE_BLUEPRINT.emit(self.m_BPID)
Esempio n. 27
0
 def _InitSignal(self):
     GetSignal().UI_VARIABLE_CHANGE_ATTR.connect(self.S_ChangeVarAttr)
Esempio n. 28
0
 def Stop(self):
     for lineID in self.m_LineList:
         GetSignal().LINE_RUN_STATUE.emit(lineID, False)
     self.m_Statue = BLUEPRINT_STOP