Exemple #1
0
 def updateMenu(self, nodeidxs):
     nodeidx = self.modelIndex(nodeidxs)
     if (not nodeidx.isValid): return False
     if (nodeidx.internalPointer() is None): return False
     if (nodeidx.internalPointer().sidsPath() == '/CGNSTree'): return False
     self.setLastEntered(nodeidxs)
     if (nodeidx != -1):
         node = nodeidx.internalPointer()
         lknode = not node.sidsIsLink()
         lznode = node.hasLazyLoad()
         actlist = (
             ("%s goodies" % node.sidsType(),),
             None,
             ("Expand sub-tree from this node", self.expand_sb, 'Ctrl++', False),
             ("Collapses sub-tree from this node", self.collapse_sb, 'Ctrl+-', False),                
             None,
             ['Mark nodes...',[
             ("Mark/unmark node", self.marknode, 'Space', False),
              None,
             ("Mark all nodes same SIDS type", self.marknode_t, 'Ctrl+1', False),
             ("Mark all nodes same name", self.marknode_n, 'Ctrl+2', False),
             ("Mark all nodes same value", self.marknode_v, 'Ctrl+3', False),
              None,
             ("Mark parent path", self.marknode_p, 'Ctrl+4', False)]],
             ("Add new child node", self.newnodechild, 'Ctrl+A', False),
             ("Add new brother node", self.newnodebrother, 'Ctrl+Z', False),
             #            None,
             #            ("Open form",self.popform,'Ctrl+F',False),
             #            ("Open view",self.openSubTree,'Ctrl+W',False),
             #            ("Open view on linked-to file",self.openLkTree,'Ctrl+O',lknode),
             None,
             ("Load node data in memory", self.dataLoad, 'Ctrl+L', not lznode),
             ("Release memory node data", self.dataRelease, 'Ctrl+R', lznode),
             None,
             ("Copy current", self.mcopy, 'Ctrl+C', False),
             ("Cut current", self.mcut, 'Ctrl+X', False),
             ("Paste as brother", self.mpasteasbrother, 'Ctrl+V', False),
             ("Paste as child", self.mpasteaschild, 'Ctrl+Y', False),
             None,
             ['On selected nodes...',[
             ("Expand sub-tree from all selected nodes", self.sexpand_sb, 'Ctrl+Shift++', False),
             ("Collapses sub-tree from all selected nodes", self.scollapse_sb, 'Ctrl+Shift+-', False),
             None,
             ("Cut all selected", self.mcutselected, 'Ctrl+Shift+X', False),
             ("Paste as brother for each selected",
              self.mpasteasbrotherselected, 'Ctrl+Shift+V', False),
             ("Paste as child for each selected",
              self.mpasteaschildselected, 'Ctrl+Shift+Y', False),
              None,
             ("Load nodes data in memory for each selected",
              self.dataLoadSelected, 'Ctrl+Shift+L', False),
             ("Release memory node data for each selected",
              self.dataReleaseSelected, 'Ctrl+Shift+R', False)]],
         )
         self.popupmenu.clear()
         self.popupmenu.setTitle('Node menu')
         for aparam in actlist:
             if (aparam is None):
                 self.popupmenu.addSeparator()
             elif (len(aparam) == 1):
                 stp = node.sidsType()
                 tag = '_GM_{}'.format(stp)
                 subm = self.popupmenu.addMenu('{}...'.format(stp))
                 a = QAction("About %s" % node.sidsType(), self,
                             triggered=self.aboutSIDS)
                 subm.addAction(a)
                 patmenu = subm.addMenu('Insert pattern')
                 self.patternMenu(patmenu, node.sidsNode())
                 subm.addSeparator()
                 if (hasattr(self, tag)):
                     getattr(self, tag)(subm, node)
             else:
                 if isinstance(aparam,list):
                     subm = self.popupmenu.addMenu(aparam[0])
                     for aaparam in aparam[1]:
                         if (aaparam is None):
                              subm.addSeparator()
                         else:
                             a = QAction(aaparam[0], self, triggered=aaparam[1])
                             if (aaparam[2] is not None): a.setShortcut(aaparam[2])
                             subm.addAction(a)
                             a.setDisabled(aaparam[3])
                 else:
                     a = QAction(aparam[0], self, triggered=aparam[1])
                     if (aparam[2] is not None): a.setShortcut(aparam[2])
                     self.popupmenu.addAction(a)
                     a.setDisabled(aparam[3])
         return True
Exemple #2
0
    def mkButtons(self, nodes):
        # Remove+delete previous children
        layout = self.layout()
        for i in reversed(range(layout.count())):
            layout.itemAt(i).widget().setParent(None)

        if not nodes:
            return

        parent = nodes[0].parent

        if parent is not None:
            action = QAction("↑", self)
            action.setFont(self.font)
            action.triggered.connect(
                partial(self.showNode, parent.parent, direction="up"))
            action.setProperty("isMode", True)
            self.addAction(action)
            # Make separator pipe
            label = QAction("|", self)
            label.setFont(self.font)
            label.setDisabled(True)
            self.addAction(label)

        # Loop over each "GUIPlugin" plugin
        for node in reversed(list(nodes)):
            action = QAction(node.name, self)
            action.triggered.connect(
                partial(self.showNode, node, direction="down"))
            action.setFont(self.font)
            action.setProperty("isMode", True)
            action.setCheckable(True)
            action.setActionGroup(self.GUIPluginActionGroup)
            self.addAction(action)

            # Make separator pipe
            label = QAction("|", self)
            label.setFont(self.font)
            label.setDisabled(True)
            self.addAction(label)

        # Remove last separator
        if self.layout().count():
            self.layout().takeAt(
                self.layout().count() -
                1).widget().deleteLater()  # Delete the last pipe symbol

        if parent is not None:
            # Make separator pipe
            label = QAction(">", self)
            label.setFont(self.font)
            label.setDisabled(True)
            self.addAction(label)

            action = QAction(parent.name, self)
            action.setFont(self.font)
            action.setProperty("isMode", True)
            action.setDisabled(True)
            action.setActionGroup(self.GUIPluginActionGroup)
            self.addAction(action)

        self.fadeIn()