forked from M-Labs/thermostat
Fix loading all channel settings would bring up 2 info boxes
This commit is contained in:
parent
99e1574886
commit
c2fbc7029c
@ -130,18 +130,12 @@ class Thermostat(QObject, metaclass=PropertyMeta):
|
|||||||
return await self._client.ipv4()
|
return await self._client.ipv4()
|
||||||
|
|
||||||
@asyncSlot()
|
@asyncSlot()
|
||||||
async def save_cfg(self, ch):
|
async def save_cfg(self, ch=""):
|
||||||
await self._client.save_config(ch)
|
await self._client.save_config(ch)
|
||||||
self.info_box_trigger.emit(
|
|
||||||
"Config saved", f"Channel {ch} Config has been saved from flash."
|
|
||||||
)
|
|
||||||
|
|
||||||
@asyncSlot()
|
@asyncSlot()
|
||||||
async def load_cfg(self, ch):
|
async def load_cfg(self, ch=""):
|
||||||
await self._client.load_config(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):
|
async def dfu(self):
|
||||||
await self._client.dfu()
|
await self._client.dfu()
|
||||||
|
@ -52,6 +52,7 @@ class CtrlPanel(QObject):
|
|||||||
self,
|
self,
|
||||||
thermostat,
|
thermostat,
|
||||||
autotuners,
|
autotuners,
|
||||||
|
info_box,
|
||||||
trees_ui,
|
trees_ui,
|
||||||
param_tree,
|
param_tree,
|
||||||
sigActivated_handles,
|
sigActivated_handles,
|
||||||
@ -61,6 +62,7 @@ class CtrlPanel(QObject):
|
|||||||
|
|
||||||
self.thermostat = thermostat
|
self.thermostat = thermostat
|
||||||
self.autotuners = autotuners
|
self.autotuners = autotuners
|
||||||
|
self.info_box = info_box
|
||||||
self.trees_ui = trees_ui
|
self.trees_ui = trees_ui
|
||||||
self.NUM_CHANNELS = len(trees_ui)
|
self.NUM_CHANNELS = len(trees_ui)
|
||||||
|
|
||||||
@ -86,10 +88,10 @@ class CtrlPanel(QObject):
|
|||||||
self.params[i].sigTreeStateChanged.connect(self.send_command)
|
self.params[i].sigTreeStateChanged.connect(self.send_command)
|
||||||
|
|
||||||
self.params[i].child("Save to flash").sigActivated.connect(
|
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(
|
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]:
|
for handle in sigActivated_handles[i]:
|
||||||
self.params[i].child(*handle[0]).sigActivated.connect(handle[1])
|
self.params[i].child(*handle[0]).sigActivated.connect(handle[1])
|
||||||
@ -253,3 +255,19 @@ class CtrlPanel(QObject):
|
|||||||
self.params[channel].child(
|
self.params[channel].child(
|
||||||
"Thermistor Config", "Postfilter Rate"
|
"Thermistor Config", "Postfilter Rate"
|
||||||
).setValue(postfilter_params["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."
|
||||||
|
)
|
||||||
|
@ -8,9 +8,6 @@ from pytec.gui.view.net_settings_input_diag import NetSettingsInputDiag
|
|||||||
class ThermostatCtrlMenu(QtWidgets.QMenu):
|
class ThermostatCtrlMenu(QtWidgets.QMenu):
|
||||||
reset_act = pyqtSignal(bool)
|
reset_act = pyqtSignal(bool)
|
||||||
|
|
||||||
load_cfg_act = pyqtSignal(int)
|
|
||||||
save_cfg_act = pyqtSignal(int)
|
|
||||||
|
|
||||||
def __init__(self, thermostat, style):
|
def __init__(self, thermostat, style):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self._thermostat = thermostat
|
self._thermostat = thermostat
|
||||||
@ -69,10 +66,10 @@ class ThermostatCtrlMenu(QtWidgets.QMenu):
|
|||||||
self.actionnet_settings_input_diag.triggered.connect(self.net_settings_request)
|
self.actionnet_settings_input_diag.triggered.connect(self.net_settings_request)
|
||||||
self.addAction(self.actionnet_settings_input_diag)
|
self.addAction(self.actionnet_settings_input_diag)
|
||||||
|
|
||||||
@pyqtSlot(bool)
|
@asyncSlot(bool)
|
||||||
def load(_):
|
async def load(_):
|
||||||
self.load_cfg_act.emit(0)
|
await self._thermostat.load_cfg()
|
||||||
self.load_cfg_act.emit(1)
|
|
||||||
loaded = QtWidgets.QMessageBox(self)
|
loaded = QtWidgets.QMessageBox(self)
|
||||||
loaded.setWindowTitle("Config loaded")
|
loaded.setWindowTitle("Config loaded")
|
||||||
loaded.setText("All channel configs have been loaded from flash.")
|
loaded.setText("All channel configs have been loaded from flash.")
|
||||||
@ -83,10 +80,10 @@ class ThermostatCtrlMenu(QtWidgets.QMenu):
|
|||||||
self.actionLoad_all_configs.triggered.connect(load)
|
self.actionLoad_all_configs.triggered.connect(load)
|
||||||
self.addAction(self.actionLoad_all_configs)
|
self.addAction(self.actionLoad_all_configs)
|
||||||
|
|
||||||
@pyqtSlot(bool)
|
@asyncSlot(bool)
|
||||||
def save(_):
|
async def save(_):
|
||||||
self.save_cfg_act.emit(0)
|
await self._thermostat.save_cfg()
|
||||||
self.save_cfg_act.emit(1)
|
|
||||||
saved = QtWidgets.QMessageBox(self)
|
saved = QtWidgets.QMessageBox(self)
|
||||||
saved.setWindowTitle("Config saved")
|
saved.setWindowTitle("Config saved")
|
||||||
saved.setText("All channel configs have been saved to flash.")
|
saved.setText("All channel configs have been saved to flash.")
|
||||||
|
@ -90,11 +90,11 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
]
|
]
|
||||||
for ch in range(self.NUM_CHANNELS)
|
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.ctrl_panel_view = CtrlPanel(
|
||||||
self.thermostat,
|
self.thermostat,
|
||||||
self.autotuners,
|
self.autotuners,
|
||||||
|
self.info_box,
|
||||||
[self.ch0_tree, self.ch1_tree],
|
[self.ch0_tree, self.ch1_tree],
|
||||||
get_ctrl_panel_config(args),
|
get_ctrl_panel_config(args),
|
||||||
param_tree_sigActivated_handles,
|
param_tree_sigActivated_handles,
|
||||||
@ -139,8 +139,6 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
|
|
||||||
self.thermostat_ctrl_menu = ThermostatCtrlMenu(self.thermostat, self.style())
|
self.thermostat_ctrl_menu = ThermostatCtrlMenu(self.thermostat, self.style())
|
||||||
self.thermostat_ctrl_menu.reset_act.connect(self.reset_request)
|
self.thermostat_ctrl_menu.reset_act.connect(self.reset_request)
|
||||||
self.thermostat_ctrl_menu.save_cfg_act.connect(self.save_cfg_request)
|
|
||||||
self.thermostat_ctrl_menu.load_cfg_act.connect(self.load_cfg_request)
|
|
||||||
|
|
||||||
self.thermostat.hw_rev_update.connect(self.thermostat_ctrl_menu.hw_rev)
|
self.thermostat.hw_rev_update.connect(self.thermostat_ctrl_menu.hw_rev)
|
||||||
self.thermostat_settings.setMenu(self.thermostat_ctrl_menu)
|
self.thermostat_settings.setMenu(self.thermostat_ctrl_menu)
|
||||||
@ -292,18 +290,6 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
self.loading_spinner.start()
|
self.loading_spinner.start()
|
||||||
self.loading_spinner.show()
|
self.loading_spinner.show()
|
||||||
|
|
||||||
@asyncSlot(int)
|
|
||||||
async def save_cfg_request(self, ch):
|
|
||||||
assert self.thermostat.connected()
|
|
||||||
|
|
||||||
await self.thermostat.save_cfg(str(ch))
|
|
||||||
|
|
||||||
@asyncSlot(int)
|
|
||||||
async def load_cfg_request(self, ch):
|
|
||||||
assert self.thermostat.connected()
|
|
||||||
|
|
||||||
await self.thermostat.load_cfg(str(ch))
|
|
||||||
|
|
||||||
@asyncSlot(bool)
|
@asyncSlot(bool)
|
||||||
async def reset_request(self, _):
|
async def reset_request(self, _):
|
||||||
assert self.thermostat.connected()
|
assert self.thermostat.connected()
|
||||||
|
Loading…
Reference in New Issue
Block a user