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.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._set_main_ui_locked(True)
|
||||
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):
|
||||
"""Update status column while flashing."""
|
||||
row = self._flash_row_map.get(index, index)
|
||||
@@ -866,6 +888,7 @@ class App(QWidget):
|
||||
def _on_flash_all_done(self):
|
||||
"""All flashing complete."""
|
||||
self.btn_flash.setEnabled(True)
|
||||
self._set_main_ui_locked(False)
|
||||
QMessageBox.information(self, "Flash Complete", "All devices have been processed.")
|
||||
|
||||
def _open_auto_flash(self):
|
||||
@@ -1305,11 +1328,7 @@ class App(QWidget):
|
||||
|
||||
self.auto_btn_start.setEnabled(False)
|
||||
self.auto_btn_stop.setEnabled(True)
|
||||
self.auto_net_input.setEnabled(False)
|
||||
self.auto_target_spin.setEnabled(False)
|
||||
self.auto_method_combo.setEnabled(False)
|
||||
self.auto_parallel_spin.setEnabled(False)
|
||||
self.btn_back.setEnabled(False)
|
||||
self._set_auto_ui_locked(True)
|
||||
|
||||
self.auto_status_label.setText("🔍 Scanning LAN...")
|
||||
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):
|
||||
self.auto_btn_start.setEnabled(True)
|
||||
self.auto_btn_stop.setEnabled(False)
|
||||
self.auto_net_input.setEnabled(True)
|
||||
self.auto_target_spin.setEnabled(True)
|
||||
self.auto_method_combo.setEnabled(True)
|
||||
self.auto_parallel_spin.setEnabled(True)
|
||||
self.btn_back.setEnabled(True)
|
||||
self._set_auto_ui_locked(False)
|
||||
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__":
|
||||
app = QApplication(sys.argv)
|
||||
|
||||
Reference in New Issue
Block a user