gui_client: remove diff mode switch, always use diff mode
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+10
-24
@@ -31,7 +31,7 @@ from pathlib import Path
|
||||
from PyQt5.QtCore import QObject, QTimer, Qt, pyqtSignal
|
||||
from PyQt5.QtGui import QColor, QFont
|
||||
from PyQt5.QtWidgets import (
|
||||
QApplication, QCheckBox, QComboBox, QFormLayout, QGridLayout, QGroupBox,
|
||||
QApplication, QComboBox, QFormLayout, QGridLayout, QGroupBox,
|
||||
QHBoxLayout, QLabel, QLineEdit, QMainWindow, QPushButton, QScrollArea,
|
||||
QSizePolicy, QSpinBox, QStatusBar, QTabWidget, QTreeWidget, QTreeWidgetItem,
|
||||
QVBoxLayout, QWidget,
|
||||
@@ -124,20 +124,18 @@ class TcpReader(QObject):
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self._sock = None
|
||||
self._running = False
|
||||
self._diff_mode = False
|
||||
self._sock = None
|
||||
self._running = False
|
||||
self._state: dict = {}
|
||||
|
||||
def connect_to(self, host: str, port: int, diff_mode: bool = False) -> str | None:
|
||||
def connect_to(self, host: str, port: int) -> str | None:
|
||||
"""Open connection; returns error string or None on success."""
|
||||
try:
|
||||
self._sock = socket.create_connection((host, port), timeout=5)
|
||||
self._sock.settimeout(None)
|
||||
except OSError as exc:
|
||||
return str(exc)
|
||||
self._diff_mode = diff_mode
|
||||
self._state = {}
|
||||
self._state = {}
|
||||
self._running = True
|
||||
threading.Thread(target=self._read_loop, daemon=True).start()
|
||||
return None
|
||||
@@ -165,11 +163,8 @@ class TcpReader(QObject):
|
||||
if line:
|
||||
try:
|
||||
data = json.loads(line)
|
||||
if self._diff_mode:
|
||||
self._state = jay_merge_full(self._state, data)
|
||||
self.message.emit(copy.deepcopy(self._state))
|
||||
else:
|
||||
self.message.emit(data)
|
||||
self._state = jay_merge_full(self._state, data)
|
||||
self.message.emit(copy.deepcopy(self._state))
|
||||
except json.JSONDecodeError:
|
||||
pass
|
||||
except OSError:
|
||||
@@ -217,11 +212,9 @@ class ConnectorTab(QWidget):
|
||||
self._port = QSpinBox()
|
||||
self._port.setRange(1, 65535)
|
||||
self._port.setValue(9999)
|
||||
self._diff_cb = QCheckBox("Diff mode")
|
||||
self._load_conn_settings()
|
||||
form.addRow("Host:", self._host)
|
||||
form.addRow("Port:", self._port)
|
||||
form.addRow(self._diff_cb)
|
||||
|
||||
btn_row = QHBoxLayout()
|
||||
self._btn = QPushButton("Connect")
|
||||
@@ -244,10 +237,6 @@ class ConnectorTab(QWidget):
|
||||
else:
|
||||
self.disconnect_requested.emit()
|
||||
|
||||
@property
|
||||
def diff_mode(self) -> bool:
|
||||
return self._diff_cb.isChecked()
|
||||
|
||||
def _save_conn_settings(self):
|
||||
try:
|
||||
_SETTINGS_PATH.parent.mkdir(parents=True, exist_ok=True)
|
||||
@@ -256,9 +245,8 @@ class ConnectorTab(QWidget):
|
||||
data = json.loads(_SETTINGS_PATH.read_text())
|
||||
except (OSError, json.JSONDecodeError):
|
||||
pass
|
||||
data["host"] = self._host.text()
|
||||
data["port"] = self._port.value()
|
||||
data["diff_mode"] = self._diff_cb.isChecked()
|
||||
data["host"] = self._host.text()
|
||||
data["port"] = self._port.value()
|
||||
_SETTINGS_PATH.write_text(json.dumps(data, indent=2))
|
||||
except OSError:
|
||||
pass
|
||||
@@ -270,8 +258,6 @@ class ConnectorTab(QWidget):
|
||||
self._host.setText(data["host"])
|
||||
if "port" in data:
|
||||
self._port.setValue(int(data["port"]))
|
||||
if "diff_mode" in data:
|
||||
self._diff_cb.setChecked(bool(data["diff_mode"]))
|
||||
except (OSError, json.JSONDecodeError, KeyError, ValueError):
|
||||
pass
|
||||
|
||||
@@ -844,7 +830,7 @@ class MainWindow(QMainWindow):
|
||||
|
||||
def _connect(self, host: str, port: int):
|
||||
self._plot.clear_data()
|
||||
err = self._reader.connect_to(host, port, self._connector.diff_mode)
|
||||
err = self._reader.connect_to(host, port)
|
||||
if err:
|
||||
self._connector.set_disconnected(err)
|
||||
self._statusbar.showMessage(f"Connection failed: {err}")
|
||||
|
||||
Reference in New Issue
Block a user