From 22fc7cbf22be754aa13008d81e11b736f7d2b9f9 Mon Sep 17 00:00:00 2001 From: atse Date: Tue, 27 Aug 2024 13:17:25 +0800 Subject: [PATCH] Fix loading all channel settings would bring up 2 info boxes --- pytec/pytec/gui/model/thermostat.py | 10 ++------- pytec/pytec/gui/view/ctrl_panel.py | 22 ++++++++++++++++++-- pytec/pytec/gui/view/thermostat_ctrl_menu.py | 8 +++---- pytec/tec_qt.py | 2 +- 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/pytec/pytec/gui/model/thermostat.py b/pytec/pytec/gui/model/thermostat.py index 042ba4e..9c3e78d 100644 --- a/pytec/pytec/gui/model/thermostat.py +++ b/pytec/pytec/gui/model/thermostat.py @@ -130,18 +130,12 @@ class Thermostat(QObject, metaclass=PropertyMeta): return await self._client.ipv4() @asyncSlot() - async def save_cfg(self, ch): + async def save_cfg(self, ch=""): await self._client.save_config(ch) - self.info_box_trigger.emit( - "Config saved", f"Channel {ch} Config has been saved from flash." - ) @asyncSlot() - async def load_cfg(self, ch): + async def load_cfg(self, ch=""): await self._client.load_config(ch) - self.info_box_trigger.emit( - "Config loaded", f"Channel {ch} Config has been loaded from flash." - ) async def dfu(self): await self._client.dfu() diff --git a/pytec/pytec/gui/view/ctrl_panel.py b/pytec/pytec/gui/view/ctrl_panel.py index 966ecb4..24947e1 100644 --- a/pytec/pytec/gui/view/ctrl_panel.py +++ b/pytec/pytec/gui/view/ctrl_panel.py @@ -51,6 +51,7 @@ class CtrlPanel(QObject): self, thermostat, autotuner, + info_box, trees_ui, param_tree, sigActivated_handles, @@ -60,6 +61,7 @@ class CtrlPanel(QObject): self.thermostat = thermostat self.autotuner = autotuner + self.info_box = info_box self.trees_ui = trees_ui self.NUM_CHANNELS = len(trees_ui) @@ -85,10 +87,10 @@ class CtrlPanel(QObject): self.params[i].sigTreeStateChanged.connect(self.send_command) self.params[i].child("Save to flash").sigActivated.connect( - partial(self.thermostat.save_cfg, i) + partial(self.save_settings, i) ) self.params[i].child("Load from flash").sigActivated.connect( - partial(self.thermostat.load_cfg, i) + partial(self.load_settings, i) ) for handle in sigActivated_handles[i]: self.params[i].child(*handle[0]).sigActivated.connect(handle[1]) @@ -255,3 +257,19 @@ class CtrlPanel(QObject): self.params[channel].child( "Thermistor Config", "Postfilter Rate" ).setValue(postfilter_params["rate"]) + + @asyncSlot(int) + async def load_settings(self, ch): + await self.thermostat.load_cfg(ch) + + self.info_box.display_info_box( + "Config loaded", f"Channel {ch} Config has been loaded from flash." + ) + + @asyncSlot(int) + async def save_settings(self, ch): + await self.thermostat.save_cfg(ch) + + self.info_box.display_info_box( + "Config saved", f"Channel {ch} Config has been saved from flash." + ) diff --git a/pytec/pytec/gui/view/thermostat_ctrl_menu.py b/pytec/pytec/gui/view/thermostat_ctrl_menu.py index 247bd13..2df7a08 100644 --- a/pytec/pytec/gui/view/thermostat_ctrl_menu.py +++ b/pytec/pytec/gui/view/thermostat_ctrl_menu.py @@ -71,8 +71,8 @@ class ThermostatCtrlMenu(QtWidgets.QMenu): @pyqtSlot(bool) def load(_): - self.load_cfg_act.emit(0) - self.load_cfg_act.emit(1) + self._thermostat.load_cfg() + loaded = QtWidgets.QMessageBox(self) loaded.setWindowTitle("Config loaded") loaded.setText("All channel configs have been loaded from flash.") @@ -85,8 +85,8 @@ class ThermostatCtrlMenu(QtWidgets.QMenu): @pyqtSlot(bool) def save(_): - self.save_cfg_act.emit(0) - self.save_cfg_act.emit(1) + self._thermostat.save_cfg() + saved = QtWidgets.QMessageBox(self) saved.setWindowTitle("Config saved") saved.setText("All channel configs have been saved to flash.") diff --git a/pytec/tec_qt.py b/pytec/tec_qt.py index 49339a7..b5cbb4e 100755 --- a/pytec/tec_qt.py +++ b/pytec/tec_qt.py @@ -92,11 +92,11 @@ class MainWindow(QtWidgets.QMainWindow): ] for ch in range(self.NUM_CHANNELS) ] - self.thermostat.info_box_trigger.connect(self.info_box.display_info_box) self.ctrl_panel_view = CtrlPanel( self.thermostat, self.autotuners, + self.info_box, [self.ch0_tree, self.ch1_tree], get_ctrl_panel_config(args), param_tree_sigActivated_handles,