def _add_table_row(self, job: Job, status: QWidget):
        """_add_table_row is a private method that adds a row to the jobs view table."""

        # Assign the row to the job in the row map
        new_row = self.rowCount()
        self.row_map[job] = new_row
        self.insertRow(new_row)

        # Assign the status of the job as an attribute and set the status widget in the table (column 1)
        self.status_map[job] = status
        self.setCellWidget(new_row, 0, status)

        # Set the name of the job as a widget in the table (column 2)
        job_name = QTableWidgetItem(job.name)
        self.setItem(new_row, 1, job_name)
        job_name.setFlags(job_name.flags() & ~Qt.ItemFlag.ItemIsEditable)  # Make the item non-editable

        # Assign the progress bar of the job to the progress bar map and set the
        # progress widget in the table (column 3)
        progress_bar = ProgressWidget()
        self.progress_bar_map[job] = progress_bar
        self.setCellWidget(new_row, 2, progress_bar)

        # Set the cancel button widget in the table (column 4)
        cancel_button = CancelButton(self, job, self.workspace)
        self.cancel_button_map[job] = cancel_button
        self.setCellWidget(new_row, 3, cancel_button)
_add_table_row is a private method that adds a row to the jobs view table.
angrmanagement/ui/widgets/qjobs.py