aboutsummaryrefslogtreecommitdiff
path: root/confui
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2023-01-13 15:32:58 +0100
committerlonkaars <loek@pipeframe.xyz>2023-01-13 15:32:58 +0100
commitdba17944c70cf4e51a40e617a1ba6abc0fd1e65d (patch)
tree667ce85f3d11d29a56ffd740c207044987d2b268 /confui
parent81e1d54c33fedd3e297bbf812c36d628e8261056 (diff)
fix infinite loop
Diffstat (limited to 'confui')
-rw-r--r--confui/mainwindow.cpp7
-rw-r--r--confui/mainwindow.h2
-rw-r--r--confui/ui_node.cpp2
-rw-r--r--confui/ui_node.h2
4 files changed, 12 insertions, 1 deletions
diff --git a/confui/mainwindow.cpp b/confui/mainwindow.cpp
index 4fac1e9..20f61f1 100644
--- a/confui/mainwindow.cpp
+++ b/confui/mainwindow.cpp
@@ -73,13 +73,18 @@ void CDMainWindow::update() {
QAction *menu_port = menu_options_serialport->addAction(QString::fromStdString(port));
connect(menu_port, &QAction::triggered, this, [this, port]() { menu_set_serial_port(port); });
}
+}
+void CDMainWindow::update_net() {
cd_s_bin *msg = cd_cmd_gen_get_node(true, NULL);
cd_pclient_send(msg);
free(msg);
}
-void CDMainWindow::menu_refresh() { update(); }
+void CDMainWindow::menu_refresh() {
+ update_net();
+ update();
+}
void CDMainWindow::menu_add_automation() {
g_cd_mesh_connector->create_link();
diff --git a/confui/mainwindow.h b/confui/mainwindow.h
index 53a30c2..af52617 100644
--- a/confui/mainwindow.h
+++ b/confui/mainwindow.h
@@ -42,4 +42,6 @@ public:
virtual void menu_add_automation();
/** @brief menu bar set serial port action handler */
void menu_set_serial_port(string new_port);
+ /** @brief send get_node command to sync network state */
+ virtual void update_net();
};
diff --git a/confui/ui_node.cpp b/confui/ui_node.cpp
index f1175f6..2898c42 100644
--- a/confui/ui_node.cpp
+++ b/confui/ui_node.cpp
@@ -44,7 +44,9 @@ void CDNodeWidget::update() {
switch_on_off->setChecked(_node->light_on);
button_add_remove->setText(_node->provisioned ? "Remove from network" : "Join network");
+}
+void CDNodeWidget::update_net() {
cd_s_bin *msg = cd_cmd_gen_get_node(false, this->_node->uuid);
cd_pclient_send(msg);
free(msg);
diff --git a/confui/ui_node.h b/confui/ui_node.h
index eb07f6d..4c049b3 100644
--- a/confui/ui_node.h
+++ b/confui/ui_node.h
@@ -34,4 +34,6 @@ public:
virtual void toggle_provision();
/** @brief turn led on/off */
virtual void update_led(bool on);
+ /** @brief send get_node command to update self */
+ virtual void update_net();
};