Ejemplo n.º 1
0
 def analyzeFileList(files: list, item: QtWidgets.QTreeWidgetItem):
     if (item.childCount() > 0):
         for i in range(item.childCount()):
             files = analyzeFileList(files, item.child(i))
     else:
         files.append(item)
     return files
Ejemplo n.º 2
0
def populatebomtree():
    global bom, assy_top, assy_bot, viewtop, bomcolumns, selectionset
    bom = pandas.read_csv(os.path.join(BASE_FOLDER, 'Assembly\\bom.csv'),
                          header=0)
    assy_top = pandas.read_csv(os.path.join(BASE_FOLDER,
                                            'Assembly\\PnP_front.csv'),
                               header=0)
    assy_bot = pandas.read_csv(os.path.join(BASE_FOLDER,
                                            'Assembly\\PnP_back.csv'),
                               header=0)

    tw = window.treeWidget_bom
    tw.clearSelection()
    tw.clear()
    assy_side = assy_top if viewtop else assy_bot
    for index, row in bom.iterrows():
        selected = str.split(row['Parts'], ', ')
        pnp_refdes = assy_side['Name']
        pnp_count = 0
        parts_thisside = ''
        for refdes in selected:
            pnp_row = assy_side[pnp_refdes == refdes]
            if len(pnp_row) > 0:
                if (selectionset == None) or (refdes in selectionset):
                    if pnp_count == 0:
                        twi = QTreeWidgetItem(tw,
                                              row.filter(bomcolumns).tolist())
                    parts_thisside = parts_thisside + ',' + refdes if pnp_count > 0 else refdes
                    pnp_count = pnp_count + 1
                    twi.addChild(
                        QTreeWidgetItem(twi, [pnp_row['Name'].values[0]]))
        if 0 < pnp_count < len(selected):
            twi.setData(0, Qt.DisplayRole, parts_thisside)
        if pnp_count == 1:
            twi.removeChild(twi.child(0))
 def selectNoneSubChild(self, child: QtWidgets.QTreeWidgetItem) -> None:
     for i in range(child.childCount()):
         item = child.child(i)
         if (item.text(1) == ""):
             self.treeWidget.itemWidget(
                 item, 2).setCheckedWithoutInternalChecking(False)
             self.selectNoneSubChild(item)
         else:
             self.treeWidget.itemWidget(
                 item, 2).setCheckedWithoutInternalChecking(False)
 def invertSelectionSubChild(self,
                             child: QtWidgets.QTreeWidgetItem) -> None:
     for i in range(child.childCount()):
         item = child.child(i)
         if (item.text(1) == ""):
             self.treeWidget.itemWidget(
                 item, 2).setCheckedWithoutInternalChecking(not (
                     self.treeWidget.itemWidget(item, 2).isChecked()))
             self.invertSelectionSubChild(item)
         else:
             self.treeWidget.itemWidget(item, 2).setChecked(not (
                 self.treeWidget.itemWidget(item, 2).isChecked()))
 def changeState(checkbox: CheckBoxAction,
                 item: QtWidgets.QTreeWidgetItem):
     if (checkbox.avoidInternalChecking):
         checkbox.avoidInternalChecking = False
         item.setDisabled(not (checkbox.isChecked()))
     else:
         item.setDisabled(not (checkbox.isChecked()))
         for i in range(item.childCount()):
             subitem = item.child(i)
             subcheckbox = subitem.treeWidget().itemWidget(
                 subitem, 2)
             if (subcheckbox):
                 subitem.setDisabled(not (subcheckbox.isChecked()))
                 subcheckbox.setChecked(checkbox.isChecked())
             else:
                 log("[  WARN  ] Unable to disable/enable other checkboxes"
                     )