Moving simulatorbase to size_t ids

This commit is contained in:
2026-02-01 19:00:27 +01:00
parent 4a0d04527e
commit 5ead06727c
2 changed files with 71 additions and 34 deletions
+68 -20
View File
@@ -118,10 +118,17 @@ void SimulatorBase::UI_item_parser(json& input)
void SimulatorBase::process_ui_label(json& uiItem) void SimulatorBase::process_ui_label(json& uiItem)
{ {
QLabel* label = id_to_label(QString::fromStdString(uiItem["id"])); QWidget* widget = id_to_ui(uiItem["id"]);
if (widget == nullptr)
{
QD << "id_to_ui returned null on " << QString::number((size_t)uiItem["id"]);
return;
}
auto label = qobject_cast<QLabel*>(widget);
if (label == nullptr) if (label == nullptr)
{ {
QD << "id_to_label returned null on " << QString::fromStdString(uiItem["id"]); QD << "widget is not of type QLabel";
return; return;
} }
@@ -135,11 +142,18 @@ void SimulatorBase::process_ui_label(json& uiItem)
void SimulatorBase::process_ui_slider(json& uiItem) void SimulatorBase::process_ui_slider(json& uiItem)
{ {
QwtSlider* slider = id_to_slider(QString::fromStdString(uiItem["id"])); QLabel* label = id_to_label(uiItem["id"]);
QLabel* label = id_to_slider_label(QString::fromStdString(uiItem["id"])); QWidget* widget = id_to_ui(uiItem["id"]);
if (widget == nullptr)
{
QD << "id_to_ui returned null on " << QString::number((size_t)uiItem["id"]);
return;
}
auto slider = qobject_cast<QwtSlider*>(widget);
if (slider == nullptr) if (slider == nullptr)
{ {
QD << "id_to_slider returned null on " << QString::fromStdString(uiItem["id"]); QD << "widget is not of type QwtSlider";
return; return;
} }
@@ -151,7 +165,7 @@ void SimulatorBase::process_ui_slider(json& uiItem)
{ {
if (label != nullptr) if (label != nullptr)
{ {
label->setText(format_slider_value(QString::fromStdString(uiItem["id"]), value)); label->setText(format_value((size_t)uiItem.at("id"), value));
} }
slider->setValue(value); slider->setValue(value);
} }
@@ -171,11 +185,18 @@ void SimulatorBase::process_ui_slider(json& uiItem)
void SimulatorBase::process_ui_dial(json& uiItem) void SimulatorBase::process_ui_dial(json& uiItem)
{ {
QwtDial* dial = id_to_dial(QString::fromStdString(uiItem["id"])); QLabel* label = id_to_label(uiItem["id"]);
QLabel* label = id_to_dial_label(QString::fromStdString(uiItem["id"])); QWidget* widget = id_to_ui(uiItem["id"]);
if (widget == nullptr)
{
QD << "id_to_ui returned null on " << QString::number((size_t)uiItem["id"]);
return;
}
auto dial = qobject_cast<QwtDial*>(widget);
if (dial == nullptr) if (dial == nullptr)
{ {
QD << "id_to_dial returned null on " << QString::fromStdString(uiItem["id"]); QD << "widget is not of type QwtDial";
return; return;
} }
@@ -186,7 +207,7 @@ void SimulatorBase::process_ui_dial(json& uiItem)
{ {
if (label != nullptr) if (label != nullptr)
{ {
label->setText(format_slider_value(QString::fromStdString(uiItem["id"]), value)); label->setText(format_value(uiItem["id"], value));
} }
dial->setValue(value); dial->setValue(value);
} }
@@ -201,11 +222,18 @@ void SimulatorBase::process_ui_dial(json& uiItem)
void SimulatorBase::process_ui_thermo(json& uiItem) void SimulatorBase::process_ui_thermo(json& uiItem)
{ {
QwtThermo* thermo = id_to_thermo(QString::fromStdString(uiItem["id"])); QLabel* label = id_to_label(uiItem["id"]);
QLabel* label = id_to_thermo_label(QString::fromStdString(uiItem["id"])); QWidget* widget = id_to_ui(uiItem["id"]);
if (widget == nullptr)
{
QD << "id_to_ui returned null on " << QString::number((size_t)uiItem["id"]);
return;
}
auto thermo = qobject_cast<QwtThermo*>(widget);
if (thermo == nullptr) if (thermo == nullptr)
{ {
QD << "id_to_dial returned null on " << QString::fromStdString(uiItem["id"]); QD << "widget is not of type QwtThermo";
return; return;
} }
@@ -216,7 +244,7 @@ void SimulatorBase::process_ui_thermo(json& uiItem)
{ {
if (label != nullptr) if (label != nullptr)
{ {
label->setText(format_slider_value(QString::fromStdString(uiItem["id"]), value)); label->setText(format_value(uiItem["id"], value));
} }
thermo->setValue(value); thermo->setValue(value);
} }
@@ -237,10 +265,17 @@ void SimulatorBase::process_ui_textbox(json& uiItem)
void SimulatorBase::process_ui_combobox(json& uiItem) void SimulatorBase::process_ui_combobox(json& uiItem)
{ {
QComboBox* combobox = id_to_combobox(QString::fromStdString(uiItem["id"])); QWidget* widget = id_to_ui(uiItem["id"]);
if (widget == nullptr)
{
QD << "id_to_ui returned null on " << QString::number((size_t)uiItem["id"]);
return;
}
auto combobox = qobject_cast<QComboBox*>(widget);
if (combobox == nullptr) if (combobox == nullptr)
{ {
QD << "id_to_combobox returned null on " << QString::fromStdString(uiItem["id"]); QD << "widget is not of type QComboBox";
return; return;
} }
@@ -267,11 +302,17 @@ void SimulatorBase::process_ui_radiobutton(json& uiItem)
void SimulatorBase::process_ui_button(json& uiItem) void SimulatorBase::process_ui_button(json& uiItem)
{ {
//TODO: fix bgcolor and color //TODO: fix bgcolor and color
QPushButton* button = id_to_button(QString::fromStdString(uiItem["id"])); QWidget* widget = id_to_ui(uiItem["id"]);
if (widget == nullptr)
{
QD << "id_to_ui returned null on " << QString::number((size_t)uiItem["id"]);
return;
}
auto button = qobject_cast<QPushButton*>(widget);
if (button == nullptr) if (button == nullptr)
{ {
QD << "id_to_button returned null on " << QString::fromStdString(uiItem["id"]); QD << "widget is not of type QPushButton";
return; return;
} }
@@ -322,10 +363,17 @@ void SimulatorBase::process_ui_button(json& uiItem)
void SimulatorBase::process_ui_led(json& uiItem) void SimulatorBase::process_ui_led(json& uiItem)
{ {
QPushButton* led = id_to_led(QString::fromStdString(uiItem["id"])); QWidget* widget = id_to_ui(uiItem["id"]);
if (widget == nullptr)
{
QD << "id_to_ui returned null on " << QString::number((size_t)uiItem["id"]);
return;
}
auto led = qobject_cast<QPushButton*>(widget);
if (led == nullptr) if (led == nullptr)
{ {
QD << "id_to_led returned null on " << QString::fromStdString(uiItem["id"]); QD << "widget is not of type led";
return; return;
} }
+3 -14
View File
@@ -20,20 +20,9 @@ class SimulatorBase : public QMainWindow {
explicit SimulatorBase(Web_socket_wrapper* api, QWidget* parent = nullptr); explicit SimulatorBase(Web_socket_wrapper* api, QWidget* parent = nullptr);
void setup_cb(void); void setup_cb(void);
void sim_update(void); void sim_update(void);
virtual QLabel* id_to_label(QString name) {return nullptr;} virtual QWidget* id_to_ui(size_t id) {return nullptr;}
virtual QPushButton* id_to_led(QString name) {return nullptr;} virtual QLabel* id_to_label(size_t name) {return nullptr;}
virtual QPushButton* id_to_button(QString name) {return nullptr;} virtual QString format_value(size_t name, double val) {return QString();}
virtual QwtSlider* id_to_slider(QString name) {return nullptr;}
virtual QLabel* id_to_slider_label(QString name) {return nullptr;}
virtual QString format_slider_value(QString name, double val) {return QString();}
virtual QwtDial* id_to_dial(QString name) {return nullptr;}
virtual QLabel* id_to_dial_label(QString name) {return nullptr;}
virtual QString format_dial_value(QString name, double val) {return QString();}
virtual QwtThermo* id_to_thermo(QString name) {return nullptr;}
virtual QLabel* id_to_thermo_label(QString name) {return nullptr;}
virtual QString format_thermo_label(QString name) {return QString();}
virtual QComboBox* id_to_combobox(QString name) {return nullptr;}
virtual QTextEdit* id_to_textbox(QString name) {return nullptr;}
signals: signals:
void quit(); void quit();