feat: add interactive folder selection for CSV saves and stabilize cross-platform dependency locking
This commit is contained in:
@@ -303,7 +303,8 @@ class DeviceController(QObject):
|
||||
"""Read wafer memory in a background thread.
|
||||
|
||||
Uses the family code and port from the last detect.
|
||||
Emits readResult on completion, then auto-chains to parseAndSaveData.
|
||||
Emits readResult on completion; QML prompts for the save directory
|
||||
before calling parseAndSaveData.
|
||||
"""
|
||||
if self._operation_in_progress:
|
||||
self._append_log("Already busy — ignoring read request")
|
||||
@@ -350,9 +351,7 @@ class DeviceController(QObject):
|
||||
self._raw_bytes = data
|
||||
self.readResult.emit({"success": True, "bytes": len(data)})
|
||||
self._set_operation_progress(False)
|
||||
# Auto-chain: read → parse → save (matches C# behavior).
|
||||
# Parse runs on main thread — it's CPU-bound but bounded (~1s).
|
||||
self.parseAndSaveData(family_code, port)
|
||||
self._append_log("Memory read complete - choose save directory to save CSV")
|
||||
self._save_status()
|
||||
return
|
||||
self._connection_status = "Disconnected"
|
||||
@@ -489,6 +488,7 @@ class DeviceController(QObject):
|
||||
return
|
||||
|
||||
self._append_log(f"Saved CSV: {csv_path}")
|
||||
self._last_csv_path = csv_path
|
||||
|
||||
# Load data into the QAbstractTableModel
|
||||
self._data_model.load_data(temp_data, cols)
|
||||
|
||||
Reference in New Issue
Block a user