예제 #1
0
    def preencher_tabela(self):

        self.tableWidget_items.setRowCount(len(self.pedido.itens))

        if len(self.pedido.itens) > 0:
            row = 0
            for item_pedido in self.pedido.itens:
                col = 0
                for coluna in self.colunas_item:
                    valor = item_pedido.to_item_dict()[coluna]

                    if col in (4, 5, 6):
                        item = QTableWidgetItem(self.formatar_numero(valor))
                        item.setTextAlignment(Qt.AlignRight)

                        if col == 4 and item_pedido.alerta != '':
                            item.setIcon(self.icone_alerta)
                            item.setToolTip(item_pedido.alerta)

                    else:
                        item = QTableWidgetItem(self.formatar_numero(valor))

                    self.tableWidget_items.setItem(row, col, item)
                    col = col + 1
                row = row + 1

        self.tableWidget_items.setColumnHidden(0, True)
        self.tableWidget_items.setColumnHidden(1, True)

        self.tableWidget_items.resizeColumnsToContents()

        self.limpar_item()
예제 #2
0
    def add_element(self, port, service):
        self.table.insertRow(self.items)
        port_item = QTableWidgetItem(str(port))
        port_item.setTextAlignment(Qt.AlignCenter)
        port_item.setFlags(port_item.flags() ^ Qt.ItemIsEditable)

        service_item = QTableWidgetItem(str(service))
        service_item.setFlags(service_item.flags() ^ Qt.ItemIsEditable)
        service_item.setToolTip("Open in Exploit-db")

        self.table.setItem(self.items, 0, port_item)
        self.table.setItem(self.items, 1, service_item)

        self.items += 1
예제 #3
0
    def add_element(self, status_code, url):
        self.table.insertRow(self.items)
        status_code_item = QTableWidgetItem(str(status_code))
        status_code_item.setTextAlignment(Qt.AlignCenter)
        status_code_item.setFlags(status_code_item.flags() ^ Qt.ItemIsEditable)

        url_item = QTableWidgetItem(url)
        url_item.setFlags(url_item.flags() ^ Qt.ItemIsEditable)
        url_item.setToolTip("Open in Browser")

        self.table.setItem(self.items, 0, status_code_item)
        self.table.setItem(self.items, 1, url_item)

        self.items += 1
예제 #4
0
class EmptyCell(Cell):
    def __init__(self, table_widget: QTableWidget, account: Account):
        super(EmptyCell, self).__init__(table_widget, account)
        self._item = QTableWidgetItem()
        self._item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable)
        self._row = self._column = None

    def set(self, row: int, column: int):
        self._row, self._column = row, column
        self._table_widget.setItem(row, column, self._item)

    def setEnabled(self, enabled, disable_tool_tip):
        if enabled:
            self._item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable)
            self._item.setToolTip("")
        else:
            self._item.setFlags(~(Qt.ItemIsEnabled | Qt.ItemIsSelectable))
            self._item.setToolTip(disable_tool_tip)
예제 #5
0
 def ajoutCV(self):
     newFiles = QFileDialog.getOpenFileNames(self, "Choix CVs", "/home",
                                             "CV (*pptx *pdf *docx)")
     n = len(newFiles[0])
     for f in range(0, n):
         fInfo = QFileInfo(newFiles[0][f])
         fShortName = fInfo.baseName()
         addCV = QListWidgetItem(fShortName)
         addCV.setToolTip(newFiles[0][f])
         ajoutCV = QTableWidgetItem(fShortName)
         ajoutCV.setToolTip(newFiles[0][f])
         if self.ui.tableWidget.rowCount() == 0:
             self.ui.tableWidget.insertRow(0)
             self.ui.tableWidget.setItem(0, 0, QTableWidgetItem(ajoutCV))
         else:
             lgTable = self.ui.tableWidget.rowCount()
             self.ui.tableWidget.insertRow(lgTable)
             self.ui.tableWidget.setItem(lgTable, 0,
                                         QTableWidgetItem(ajoutCV))
예제 #6
0
    def populateTable(self, path):
        "fill file table with file names"
        self.showFolder(path)

        names = []
        for n in os.listdir(path):
            if os.path.isdir(os.path.join(path, n)): continue  # folder
            names.append(n)

        self.folderTable.clearContents()
        self.folderTable.setRowCount(len(names))
        self.folderTable.setColumnCount(1)

        if not names:  # no files in this folder, inform user
            self.setMessage('This folder has no files')
            return

        self.folderTable.blockSignals(True)
        selEnab = Qt.ItemIsSelectable | Qt.ItemIsEnabled
        for i, n in enumerate(names):
            item = QTableWidgetItem()
            item.setText(n)
            item.setToolTip(n)
            item.setFlags(selEnab)

            # color code encrypted/decrypted files
            if n in self.encrypted:
                item.setTextColor(QColor(211, 70, 0))
                # allowed encrypted filenames to be changed
                item.setFlags(selEnab | Qt.ItemIsEditable)
            if n in self.decrypted:
                item.setForeground(QColor(0, 170, 255))
            self.folderTable.setItem(i, 0, item)
        if len(names) > 5:
            self.setMessage('{:,} files'.format(len(names)), 7)
        self.folderTable.blockSignals(False)
        return
예제 #7
0
    async def validateUrl(self, url: str) -> bool:
        self.download.setDisabled(True)
        self.files.setDisabled(True)
        self.files.clearSelection()
        self.files.clearFocus()
        self.files.clearContents()
        self.files.setRowCount(0)
        self.files.setSortingEnabled(False)
        self.url.setStyleSheet('')
        self.modId = 0
        if not url:
            self.urlInfo.setText('''
                <font color="#888">Please enter a valid mod url.</font>
                ''')
            return False
        modId = getModId(url)
        if not modId:
            self.files.setDisabled(True)
            self.url.setStyleSheet('''
                *{
                    border: 1px solid #B22222;
                    padding: 1px 0px;
                }
                ''')
            self.urlInfo.setText('''
                <font color="#888">Please enter a valid mod url.</font>
                ''')
            return False
        self.urlInfo.setText('🌐')
        try:
            filesResponse = await getModFiles(modId)
        except (RequestError, ResponseError, Exception) as e:
            self.url.setStyleSheet('''
                *{
                    border: 1px solid #B22222;
                    padding: 1px 0px;
                }
                ''')
            self.urlInfo.setText(f'''
                <font color="#888">Could not get mod files: {e}.</font>
                ''')
            return False
        try:
            files = filesResponse['files']
            if not len(files):
                self.urlInfo.setText(f'''
                    <font color="#888">Mod "{modId}" has no files!</font>
                    ''')
                return False

            self.files.setRowCount(len(files))
            for i in range(len(files)):
                file = files[i]
                fileid = int(file['file_id'])
                name = str(file['name'])
                version = str(file['version'])
                _uploadtime = dateparser.parse(file['uploaded_time'])
                uploadtime = _uploadtime.astimezone(tz=None).strftime(
                    '%Y-%m-%d %H:%M:%S') if _uploadtime else '?'
                description = html.unescape(str(file['description']))
                nameItem = QTableWidgetItem(name)
                nameItem.setToolTip(name)
                nameItem.setData(Qt.UserRole, fileid)
                self.files.setItem(i, 0, nameItem)
                versionItem = QTableWidgetItem(version)
                versionItem.setToolTip(version)
                self.files.setItem(i, 1, versionItem)
                uploadtimeItem = QTableWidgetItem(uploadtime)
                uploadtimeItem.setToolTip(uploadtime)
                self.files.setItem(i, 2, uploadtimeItem)
                descriptionItem = QTableWidgetItem(description)
                descriptionItem.setToolTip(description)
                self.files.setItem(i, 3, descriptionItem)
        except KeyError as e:
            logger.exception(
                f'Could not find key "{str(e)}" in mod files response')
            self.urlInfo.setText(f'''
                <font color="#888">Could not find key "{str(e)}" in mod files response.</font>
                ''')
            return False

        self.urlInfo.setText(f'''
            <font color="#888">Found {len(files)} available files.</font>
            ''')
        self.files.resizeColumnsToContents()
        self.files.setDisabled(False)
        self.files.setSortingEnabled(True)
        self.modId = modId
        return True