diff --git a/pytec/tec_qt.py b/pytec/tec_qt.py index cbc32da..cc98c4d 100755 --- a/pytec/tec_qt.py +++ b/pytec/tec_qt.py @@ -252,20 +252,23 @@ class MainWindow(QtWidgets.QMainWindow): self.conn_menu.host_set_line.setEnabled(False) self.conn_menu.port_set_spin.setEnabled(False) - try: - self._connecting_task = asyncio.create_task( - asyncio.wait_for(self.thermostat.start_session(host=host, port=port), timeout=5) + self._connecting_task = asyncio.create_task( + asyncio.wait_for( + self.thermostat.start_session(host=host, port=port), timeout=5 ) + ) + try: await self._connecting_task except (OSError, asyncio.TimeoutError): await self.bail() return except asyncio.CancelledError: return + else: + await self._on_connection_changed(True) finally: self._connecting_task = None - await self._on_connection_changed(True) else: if self._connecting_task is not None: self._connecting_task.cancel()