diff --git a/gui/connection_tab.py b/gui/connection_tab.py index 33cf0e4..7fc5cc6 100644 --- a/gui/connection_tab.py +++ b/gui/connection_tab.py @@ -356,3 +356,5 @@ class ConnectionTab(QWidget): if row.get_receiver_id() == rid: row.set_version_info(device_id, sw_version) break + if device_id: + self._refresh_history_combo() diff --git a/gui/data_model.py b/gui/data_model.py index 6d84e6c..f4ad247 100644 --- a/gui/data_model.py +++ b/gui/data_model.py @@ -77,6 +77,13 @@ class ConnectionConfig: return f"{self.receiver_id} [{self.serial_port} @ {self.baud_rate}]" return f"{self.receiver_id} [file: {os.path.basename(self.file_path)}]" + def endpoint_key(self): + if self.conn_type == 'tcp': + return ('tcp', self.host, self.port) + if self.conn_type == 'serial': + return ('serial', self.serial_port, self.baud_rate) + return ('file', self.file_path) + def to_dict(self): return dataclasses.asdict(self) @@ -135,8 +142,8 @@ class ReceiverManager(QObject): pass def _push_lru(self, config: ConnectionConfig): - key = config.display_str() - self._lru = [c for c in self._lru if c.display_str() != key] + key = config.endpoint_key() + self._lru = [c for c in self._lru if c.endpoint_key() != key] self._lru.insert(0, config) self._lru = self._lru[:LRU_MAX] self._save_lru() @@ -333,3 +340,7 @@ class ReceiverManager(QObject): if state: state.device_id = device_id state.sw_version = sw_version + config = self._configs.get(rid) + if config and device_id: + config.receiver_id = device_id + self._push_lru(config)