Example #1
0
 def __init__(self):
     super(ToolBox, self).__init__()
     self.setDragEnabled(True)
     self.setColumnCount(2)
     self.header().setVisible(False)
     gatesheader = QTreeWidgetItem(self, [self.str_basicGates])
     gatesheader.setFlags(
         ~Qt.ItemFlag.ItemIsDragEnabled & ~Qt.ItemFlag.ItemIsSelectable)
     gatesheader.setExpanded(True)
     imgDir = filePath('icons/')
     for name, class_ in inspect.getmembers(
             gates,
             lambda m: (
                 inspect.isclass(m) and m.__module__ == 'engine.gates')):
         item = QTreeWidgetItem(gatesheader, [name[:-4]])
         item.setIcon(0, QIcon(imgDir + name + '.png'))
     item = QTreeWidgetItem(gatesheader, ['JKFlipFlop'])
     item.setIcon(0, QIcon(imgDir + 'JKFlipFlop.png'))
     item = QTreeWidgetItem(gatesheader, ['RSFlipFlop'])
     item.setIcon(0, QIcon(imgDir + 'RSFlipFlop.png'))
     ioheader = QTreeWidgetItem(self, [self.str_IO])
     ioheader.setFlags(
         ~Qt.ItemFlag.ItemIsDragEnabled & ~Qt.ItemFlag.ItemIsSelectable)
     ioheader.setExpanded(True)
     [
         QTreeWidgetItem(ioheader, [name])
         for name in [self.str_I, self.str_O, self.str_Clock]]
     self.userheader = QTreeWidgetItem(self, [self.str_userCircuits])
     [QTreeWidgetItem(self.userheader, [name[:-4], 'user'])
         for name in sorted(listdir(filePath('user/')))]
     self.userheader.setFlags(
         ~Qt.ItemFlag.ItemIsDragEnabled & ~Qt.ItemFlag.ItemIsSelectable)
     self.userheader.setExpanded(True)
     self.setColumnWidth(0, 300)
Example #2
0
    def fill_item(self,item, value):
        item.setExpanded(True)
        if type(value) is dict:
            for key, val in sorted(value.iteritems()):
                child = QTreeWidgetItem()
                x = "{0:.3f}".format(key)
#                 x = key
                child.setText(0, unicode(x))
                child.setFlags(Qt.ItemIsEnabled)
                item.addChild(child)
                self.fill_item(child, val)
        elif type(value) is list:
            for val in value:
                child = QTreeWidgetItem()
                item.addChild(child)
                if type(val) is dict:      
                    child.setText(0, '[dict]')
                    self.fill_item(child, val)
                elif type(val) is list:
                    child.setText(0, '[list]')
                    self.fill_item(child, val)
                else:
                    child.setText(0, str(value.index(val)))
                    child.setExpanded(True)
        else:
            print 'hi'
            child = QTreeWidgetItem()
            child.setText(0, unicode(value))
            item.addChild(child)          
Example #3
0
    def cmd_loadList(self):

        self.treeWidget.clear()
        sels = pymel.core.ls(sl=1, type='transform')

        data = []
        for sel in sels:
            widgetItem = QTreeWidgetItem(self.treeWidget)
            widgetItem.setText(0, sel.name())
            widgetItem.setText(1, sel.nodeName().split('_')[-1])
            widgetItem.setFlags(widgetItem.flags() | QtCore.Qt.ItemIsEditable)
            data.append([widgetItem.text(0), widgetItem.text(1)])
Example #4
0
 def fill_item(self, item, value):  #recursively fills the tree
     item.setExpanded(True)
     for key, val in sorted(value.iteritems()):  #tilts
         child = QTreeWidgetItem()
         child.setText(0, unicode(key))
         child.setFlags(Qt.ItemIsEnabled)
         item.addChild(child)
         for keykey in sorted(val.keys()):  #imgIDs
             childchild = QTreeWidgetItem()
             child.addChild(childchild)
             childchild.setText(0, str(keykey))
             child.setExpanded(True)
             childchild.setExpanded(True)
Example #5
0
 def updateTree(self, name):
     ''' adds DataItem to tree view '''
     dataItem = QTreeWidgetItem(self.ui.dataView)
     dataItem.setText(0, name)
     dataItem.setFlags(Qt.ItemIsEnabled|Qt.ItemIsEditable)
     for i in range(len(self.datas[-1].data)/4):
         x = DataItem(dataItem)
         x.setText(0, self.datas[-1].name[i*4])
         x.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable)
         x.setNumData(self.datas[-1].data[i*4])
         if hasattr(self.datas[-1], 'triggers'):
             x.triggers = self.datas[-1].triggers
         if hasattr(self.datas[-1], 'frames'):
             x.depth = self.datas[-1].seekFrame
Example #6
0
    def parsePluginSpecs(self, parentItem, plugins):
        ret = 0
        loadCount = 0

        for i in range(len(plugins)):
            spec = plugins[i]
            if spec.hasError():
                ret |= ParsedState.ParsedWithErrors
            pluginItem = QTreeWidgetItem([spec.name(), "",
                                         "{0} ({1})".format(spec.version(), spec.compatVersion()),
                                         spec.vendor()])
            pluginItem.setToolTip(0, QDir.toNativeSeparators(spec.filePath()))
            ok = not spec.hasError()
            icon = self.okIcon if ok else self.errorIcon
            if ok and spec.state() is not PluginState.Running:
                icon = self.notLoadedIcon
            pluginItem.setIcon(0, icon)
            pluginItem.setData(0, Qt.UserRole, spec)

            state = Qt.Unchecked
            if spec.isEnabled():
                state = Qt.Checked
                loadCount += 1

            if spec.name() not in self.whitelist:
                pluginItem.setData(C_LOAD, Qt.CheckStateRole, state)
            else:
                pluginItem.setData(C_LOAD, Qt.CheckStateRole, Qt.Checked)
                pluginItem.setFlags(Qt.ItemIsSelectable)
            pluginItem.setToolTip(C_LOAD, "Load on Startup")

            self.specToItem[spec] = pluginItem

            if parentItem:
                parentItem.addChild(pluginItem)
            else:
                self.items.append(pluginItem)

        if loadCount == len(plugins):
            groupState = Qt.Checked
            ret |= ParsedState.ParsedAll
        elif loadCount == 0:
            groupState = Qt.Unchecked
            ret |= ParsedState.ParsedNone
        else:
            groupState = Qt.PartiallyChecked
            ret |= ParsedState.ParsedPartial

        return ret, groupState
Example #7
0
class ToolBox(QTreeWidget):
    """A toolbox that contains logic gates and user circuits, for use
    in the main designer window.
    """

    def __init__(self):
        super(ToolBox, self).__init__()
        self.setDragEnabled(True)
        self.setColumnCount(2)
        self.header().setVisible(False)
        gatesheader = QTreeWidgetItem(self, [self.str_basicGates])
        gatesheader.setFlags(
            ~Qt.ItemFlag.ItemIsDragEnabled & ~Qt.ItemFlag.ItemIsSelectable)
        gatesheader.setExpanded(True)
        imgDir = filePath('icons/')
        for name, class_ in inspect.getmembers(
                gates,
                lambda m: (
                    inspect.isclass(m) and m.__module__ == 'engine.gates')):
            item = QTreeWidgetItem(gatesheader, [name[:-4]])
            item.setIcon(0, QIcon(imgDir + name + '.png'))
        item = QTreeWidgetItem(gatesheader, ['JKFlipFlop'])
        item.setIcon(0, QIcon(imgDir + 'JKFlipFlop.png'))
        item = QTreeWidgetItem(gatesheader, ['RSFlipFlop'])
        item.setIcon(0, QIcon(imgDir + 'RSFlipFlop.png'))
        ioheader = QTreeWidgetItem(self, [self.str_IO])
        ioheader.setFlags(
            ~Qt.ItemFlag.ItemIsDragEnabled & ~Qt.ItemFlag.ItemIsSelectable)
        ioheader.setExpanded(True)
        [
            QTreeWidgetItem(ioheader, [name])
            for name in [self.str_I, self.str_O, self.str_Clock]]
        self.userheader = QTreeWidgetItem(self, [self.str_userCircuits])
        [QTreeWidgetItem(self.userheader, [name[:-4], 'user'])
            for name in sorted(listdir(filePath('user/')))]
        self.userheader.setFlags(
            ~Qt.ItemFlag.ItemIsDragEnabled & ~Qt.ItemFlag.ItemIsSelectable)
        self.userheader.setExpanded(True)
        self.setColumnWidth(0, 300)

    def addUserCircuit(self, name):
        """When the user saves a circuit, add it at the correct
        alphabetical spot, if it is not already present."""
        for i in range(self.userheader.childCount()):
            if self.userheader.child(i).text(0) == name:
                return
        QTreeWidgetItem(self.userheader, [name, 'user'])
        self.userheader.sortChildren(0, Qt.AscendingOrder)
Example #8
0
    def readData(self, *args):

        data = super(Widget_objectList,
                     self).readData(Widget_objectList.path_uiInfo)
        if not type(data) == dict: return
        self.treeWidget.clear()
        keys = data.keys()
        keys.sort()
        for key in keys:
            try:
                nodeName, attrName = data[key]
            except:
                return
            widgetItem = QTreeWidgetItem(self.treeWidget)
            widgetItem.setText(0, nodeName)
            widgetItem.setText(1, attrName)
            widgetItem.setFlags(widgetItem.flags() | QtCore.Qt.ItemIsEditable)