33 Set up the trash table displaying all deleted keyfiles.
35 self.
ui.tableWidget.setRowCount(0)
36 self.
ui.tableWidget.setColumnCount(3)
37 self.
ui.tableWidget.setHorizontalHeaderLabels([self.tr(
"Serial Number"),
"",
""])
39 header = self.
ui.tableWidget.horizontalHeader()
40 header.setSectionResizeMode(0, QHeaderView.ResizeMode.Stretch)
41 header.setSectionResizeMode(1, QHeaderView.ResizeMode.Fixed)
42 header.setSectionResizeMode(2, QHeaderView.ResizeMode.Fixed)
43 self.
ui.tableWidget.setColumnWidth(1, 40)
44 self.
ui.tableWidget.setColumnWidth(2, 40)
46 serial_numbers = self.
key_handler.read_keys(
"trash")
48 for serial_number
in serial_numbers:
49 row = self.
ui.tableWidget.rowCount()
50 self.
ui.tableWidget.insertRow(row)
52 item = QTableWidgetItem(serial_number)
53 item.setFlags(Qt.ItemFlag.ItemIsEnabled)
54 self.
ui.tableWidget.setItem(row, 0, item)
56 delete_btn = QPushButton()
57 delete_btn.setToolTip(self.tr(
"Permanently delete"))
58 delete_btn.setIcon(QIcon(
":/icons/icons/editbin.svg"))
59 apply_icon_button_style(delete_btn)
60 delete_btn.setFixedSize(28, 28)
61 delete_btn.setIconSize(QSize(20, 20))
62 delete_btn.clicked.connect(
lambda _, key=serial_number: self.
delete_keyfile(key))
63 self.
ui.tableWidget.setCellWidget(row, 1, delete_btn)
65 undo_btn = QPushButton()
66 undo_btn.setToolTip(self.tr(
"Restore"))
67 undo_btn.setIcon(QIcon(
":/icons/icons/undo.svg"))
68 apply_icon_button_style(undo_btn)
69 undo_btn.setFixedSize(28, 28)
70 undo_btn.setIconSize(QSize(20, 20))
71 undo_btn.clicked.connect(
lambda _, key=serial_number: self.
restore_keyfile(key))
72 self.
ui.tableWidget.setCellWidget(row, 2, undo_btn)
76 Permanently delete all keyfiles in the trash directory after confirmation.
77 Clear the table UI after deletion.
79 confirm = QMessageBox.question(
81 self.tr(
"Confirm Deletion"),
82 self.tr(
"Are you sure you want to permanently delete all keyfiles in trash?"),
83 QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No
85 if confirm != QMessageBox.StandardButton.Yes:
91 self.
ui.tableWidget.setRowCount(0)
93 QMessageBox.information(self, self.tr(
"Success"), self.tr(
"Trash has been cleared."))
97 Permanently delete a keyfile from the trash and remove its row from the table.
99 \param key (str): Serial number of the keyfile to delete.
101 confirm = QMessageBox.question(
103 self.tr(
"Confirm Deletion"),
104 self.tr(f
"Are you sure you want to permanently delete keyfile '{key}'?"),
105 QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No
108 if confirm != QMessageBox.StandardButton.Yes:
112 for row
in range(self.
ui.tableWidget.rowCount()):
113 item = self.
ui.tableWidget.item(row, 0)
114 if item
and item.text() == key:
115 self.
ui.tableWidget.removeRow(row)