update UI
This commit is contained in:
56
main.py
56
main.py
@@ -826,10 +826,32 @@ class App(QWidget):
|
|||||||
self.flash_thread.device_done.connect(self._on_flash_done)
|
self.flash_thread.device_done.connect(self._on_flash_done)
|
||||||
self.flash_thread.all_done.connect(self._on_flash_all_done)
|
self.flash_thread.all_done.connect(self._on_flash_all_done)
|
||||||
|
|
||||||
# Disable flash button trong khi đang flash
|
# Disable flash button và lock UI trong khi đang flash
|
||||||
self.btn_flash.setEnabled(False)
|
self.btn_flash.setEnabled(False)
|
||||||
|
self._set_main_ui_locked(True)
|
||||||
self.flash_thread.start()
|
self.flash_thread.start()
|
||||||
|
|
||||||
|
def _set_main_ui_locked(self, locked):
|
||||||
|
"""Khóa toàn bộ UI nhưng vẫn cho cuộn dọc bảng thiết bị."""
|
||||||
|
enabled = not locked
|
||||||
|
self.btn_scan.setEnabled(enabled)
|
||||||
|
self.net_input.setEnabled(enabled)
|
||||||
|
self.mode_combo.setEnabled(enabled)
|
||||||
|
self.method_combo.setEnabled(enabled)
|
||||||
|
self.parallel_spin.setEnabled(enabled)
|
||||||
|
self.show_all_cb.setEnabled(enabled)
|
||||||
|
|
||||||
|
# Bảng thiết bị: không setEnabled(False) để giữ thanh cuộn
|
||||||
|
if locked:
|
||||||
|
self.table.setSelectionMode(QTableWidget.SelectionMode.NoSelection)
|
||||||
|
self.table.setStyleSheet(
|
||||||
|
"QTableWidget { color: #6b7280; font-size: 13px; }"
|
||||||
|
"QTableWidget::item { selection-background-color: transparent; }"
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
self.table.setSelectionMode(QTableWidget.SelectionMode.ExtendedSelection)
|
||||||
|
self.table.setStyleSheet("QTableWidget { font-size: 13px; }")
|
||||||
|
|
||||||
def _on_flash_status(self, index, msg):
|
def _on_flash_status(self, index, msg):
|
||||||
"""Update status column while flashing."""
|
"""Update status column while flashing."""
|
||||||
row = self._flash_row_map.get(index, index)
|
row = self._flash_row_map.get(index, index)
|
||||||
@@ -866,6 +888,7 @@ class App(QWidget):
|
|||||||
def _on_flash_all_done(self):
|
def _on_flash_all_done(self):
|
||||||
"""All flashing complete."""
|
"""All flashing complete."""
|
||||||
self.btn_flash.setEnabled(True)
|
self.btn_flash.setEnabled(True)
|
||||||
|
self._set_main_ui_locked(False)
|
||||||
QMessageBox.information(self, "Flash Complete", "All devices have been processed.")
|
QMessageBox.information(self, "Flash Complete", "All devices have been processed.")
|
||||||
|
|
||||||
def _open_auto_flash(self):
|
def _open_auto_flash(self):
|
||||||
@@ -1305,11 +1328,7 @@ class App(QWidget):
|
|||||||
|
|
||||||
self.auto_btn_start.setEnabled(False)
|
self.auto_btn_start.setEnabled(False)
|
||||||
self.auto_btn_stop.setEnabled(True)
|
self.auto_btn_stop.setEnabled(True)
|
||||||
self.auto_net_input.setEnabled(False)
|
self._set_auto_ui_locked(True)
|
||||||
self.auto_target_spin.setEnabled(False)
|
|
||||||
self.auto_method_combo.setEnabled(False)
|
|
||||||
self.auto_parallel_spin.setEnabled(False)
|
|
||||||
self.btn_back.setEnabled(False)
|
|
||||||
|
|
||||||
self.auto_status_label.setText("🔍 Scanning LAN...")
|
self.auto_status_label.setText("🔍 Scanning LAN...")
|
||||||
self.auto_status_label.setStyleSheet("font-size: 12px; font-weight: bold; color: #f9e2af;")
|
self.auto_status_label.setStyleSheet("font-size: 12px; font-weight: bold; color: #f9e2af;")
|
||||||
@@ -1439,13 +1458,28 @@ class App(QWidget):
|
|||||||
def _auto_reset_controls(self):
|
def _auto_reset_controls(self):
|
||||||
self.auto_btn_start.setEnabled(True)
|
self.auto_btn_start.setEnabled(True)
|
||||||
self.auto_btn_stop.setEnabled(False)
|
self.auto_btn_stop.setEnabled(False)
|
||||||
self.auto_net_input.setEnabled(True)
|
self._set_auto_ui_locked(False)
|
||||||
self.auto_target_spin.setEnabled(True)
|
|
||||||
self.auto_method_combo.setEnabled(True)
|
|
||||||
self.auto_parallel_spin.setEnabled(True)
|
|
||||||
self.btn_back.setEnabled(True)
|
|
||||||
self._auto_worker = None
|
self._auto_worker = None
|
||||||
|
|
||||||
|
def _set_auto_ui_locked(self, locked):
|
||||||
|
"""Khóa cấu hình Auto Flash nhưng vẫn cho cuộn xem list thiết bị."""
|
||||||
|
enabled = not locked
|
||||||
|
self.auto_net_input.setEnabled(enabled)
|
||||||
|
self.auto_target_spin.setEnabled(enabled)
|
||||||
|
self.auto_method_combo.setEnabled(enabled)
|
||||||
|
self.auto_parallel_spin.setEnabled(enabled)
|
||||||
|
self.btn_back.setEnabled(enabled)
|
||||||
|
|
||||||
|
# Bảng thiết bị Auto: không setEnabled(False) để giữ thanh cuộn
|
||||||
|
if locked:
|
||||||
|
self.auto_result_table.setSelectionMode(QTableWidget.SelectionMode.NoSelection)
|
||||||
|
self.auto_result_table.setStyleSheet(
|
||||||
|
"QTableWidget { color: #6b7280; font-size: 12px; }"
|
||||||
|
"QTableWidget::item { selection-background-color: transparent; }"
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
self.auto_result_table.setSelectionMode(QTableWidget.SelectionMode.ExtendedSelection)
|
||||||
|
self.auto_result_table.setStyleSheet("QTableWidget { font-size: 12px; }")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app = QApplication(sys.argv)
|
app = QApplication(sys.argv)
|
||||||
|
|||||||
Reference in New Issue
Block a user