mirror of
https://github.com/Sani7/remote-ui.git
synced 2026-10-26 21:51:13 +01:00
convert selected
move from string to index to reduce data size
This commit is contained in:
+2
-10
@@ -49,20 +49,12 @@ std::string UI_combobox::selected_text() const
|
|||||||
void UI_combobox::from_json(const json &j)
|
void UI_combobox::from_json(const json &j)
|
||||||
{
|
{
|
||||||
UI_x_boxes::from_json(j);
|
UI_x_boxes::from_json(j);
|
||||||
std::string selected_str = j.at("selected");
|
m_selected = j.at("selected");
|
||||||
for (size_t i = 0; i < m_options.size(); i++)
|
|
||||||
{
|
|
||||||
if (m_options[i] == selected_str)
|
|
||||||
{
|
|
||||||
m_selected = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
json UI_combobox::to_json(size_t id) const
|
json UI_combobox::to_json(size_t id) const
|
||||||
{
|
{
|
||||||
json j = UI_x_boxes::to_json(id);
|
json j = UI_x_boxes::to_json(id);
|
||||||
j["selected"] = m_options[m_selected];
|
j["selected"] = m_selected;
|
||||||
return j;
|
return j;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -14,8 +14,8 @@ class UI_combobox : public UI_x_boxes
|
|||||||
QObject *parent = nullptr);
|
QObject *parent = nullptr);
|
||||||
UI_combobox(const json &j, QObject *parent = nullptr);
|
UI_combobox(const json &j, QObject *parent = nullptr);
|
||||||
|
|
||||||
void set_selected(size_t selected);
|
void set_selected(size_t selected) override;
|
||||||
void set_selected(std::string selected) override;
|
void set_selected(std::string selected);
|
||||||
size_t selected() const;
|
size_t selected() const;
|
||||||
std::string selected_text() const;
|
std::string selected_text() const;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -158,7 +158,7 @@ json UI_item::to_json(size_t id) const
|
|||||||
|
|
||||||
void UI_item::click() {};
|
void UI_item::click() {};
|
||||||
|
|
||||||
void UI_item::set_selected(std::string selected)
|
void UI_item::set_selected(size_t selected)
|
||||||
{
|
{
|
||||||
UNUSED(selected);
|
UNUSED(selected);
|
||||||
};
|
};
|
||||||
|
|||||||
+1
-1
@@ -47,7 +47,7 @@ class UI_item : public QObject
|
|||||||
virtual json to_json(size_t id) const;
|
virtual json to_json(size_t id) const;
|
||||||
|
|
||||||
virtual void click();
|
virtual void click();
|
||||||
virtual void set_selected(std::string selected);
|
virtual void set_selected(size_t selected);
|
||||||
virtual void set_value(double value);
|
virtual void set_value(double value);
|
||||||
virtual void can_send(uint32_t id, uint8_t dlc, std::array<uint8_t, 8> payload);
|
virtual void can_send(uint32_t id, uint8_t dlc, std::array<uint8_t, 8> payload);
|
||||||
virtual void can_clear();
|
virtual void can_clear();
|
||||||
|
|||||||
@@ -326,7 +326,7 @@ void Simulator_base::process_ui_combobox(json &ui_item, QWidget *widget)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString selected = QString::fromStdString(ui_item["selected"]);
|
size_t selected = ui_item["selected"];
|
||||||
|
|
||||||
for (json &item : ui_item["options"])
|
for (json &item : ui_item["options"])
|
||||||
{
|
{
|
||||||
@@ -334,9 +334,9 @@ void Simulator_base::process_ui_combobox(json &ui_item, QWidget *widget)
|
|||||||
combobox->addItem(QString::fromStdString(item));
|
combobox->addItem(QString::fromStdString(item));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (combobox->currentText() != selected)
|
if (combobox->currentIndex() != selected)
|
||||||
{
|
{
|
||||||
combobox->setCurrentText(selected);
|
combobox->setCurrentIndex(selected);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -763,7 +763,7 @@ void Simulator_base::setup_combobox(QWidget *item, size_t index)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
connect(combobox, &QComboBox::activated, this, [=, this] {
|
connect(combobox, &QComboBox::activated, this, [=, this] {
|
||||||
m_web_socket->send_event(Web_socket_wrapper::Event::selected, index, combobox->currentText());
|
m_web_socket->send_event(Web_socket_wrapper::Event::selected, index, (size_t)combobox->currentIndex());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,26 +26,23 @@ Web_socket_wrapper::~Web_socket_wrapper()
|
|||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Web_socket_wrapper::send_command(Command command, size_t id)
|
void Web_socket_wrapper::send_command(Command c, size_t id)
|
||||||
{
|
{
|
||||||
json j;
|
json j;
|
||||||
switch (command)
|
j["command"]["type"] = magic_enum::enum_name(c).data();
|
||||||
|
switch (c)
|
||||||
{
|
{
|
||||||
case Command::get_UI_element:
|
case Command::get_UI_element:
|
||||||
j["command"]["type"] = magic_enum::enum_name(command).data();
|
|
||||||
j["command"]["id"] = id;
|
j["command"]["id"] = id;
|
||||||
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
||||||
break;
|
break;
|
||||||
case Command::get_UI_elements:
|
case Command::get_UI_elements:
|
||||||
j["command"]["type"] = magic_enum::enum_name(command).data();
|
|
||||||
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
||||||
break;
|
break;
|
||||||
case Command::get_active_simulator_name:
|
case Command::get_active_simulator_name:
|
||||||
j["command"]["type"] = magic_enum::enum_name(command).data();
|
|
||||||
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
||||||
break;
|
break;
|
||||||
case Command::get_simulators:
|
case Command::get_simulators:
|
||||||
j["command"]["type"] = magic_enum::enum_name(command).data();
|
|
||||||
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -53,14 +50,14 @@ void Web_socket_wrapper::send_command(Command command, size_t id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Web_socket_wrapper::send_command(Command command, QString id)
|
void Web_socket_wrapper::send_command(Command command, QString val)
|
||||||
{
|
{
|
||||||
json j;
|
json j;
|
||||||
|
j["command"]["type"] = magic_enum::enum_name(command).data();
|
||||||
switch (command)
|
switch (command)
|
||||||
{
|
{
|
||||||
case Command::switch_simulator:
|
case Command::switch_simulator:
|
||||||
j["command"]["type"] = magic_enum::enum_name(command).data();
|
j["command"]["name"] = val.toStdString();
|
||||||
j["command"]["name"] = id.toStdString();
|
|
||||||
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -68,16 +65,16 @@ void Web_socket_wrapper::send_command(Command command, QString id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Web_socket_wrapper::send_event(Event event, size_t id)
|
void Web_socket_wrapper::send_event(Event e, size_t id)
|
||||||
{
|
{
|
||||||
if (m_inhibit_events)
|
if (m_inhibit_events)
|
||||||
return;
|
return;
|
||||||
json j;
|
json j;
|
||||||
switch (event)
|
j["event"]["type"] = magic_enum::enum_name(e).data();
|
||||||
|
switch (e)
|
||||||
{
|
{
|
||||||
case Event::clicked:
|
case Event::clicked:
|
||||||
case Event::can_clear:
|
case Event::can_clear:
|
||||||
j["event"]["type"] = magic_enum::enum_name(event).data();
|
|
||||||
j["event"]["id"] = id;
|
j["event"]["id"] = id;
|
||||||
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
||||||
break;
|
break;
|
||||||
@@ -86,15 +83,33 @@ void Web_socket_wrapper::send_event(Event event, size_t id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Web_socket_wrapper::send_event(Event event, size_t id, double val)
|
void Web_socket_wrapper::send_event(Event e, size_t id, size_t val)
|
||||||
{
|
{
|
||||||
if (m_inhibit_events)
|
if (m_inhibit_events)
|
||||||
return;
|
return;
|
||||||
json j;
|
json j;
|
||||||
switch (event)
|
j["event"]["type"] = magic_enum::enum_name(e).data();
|
||||||
|
switch (e)
|
||||||
|
{
|
||||||
|
case Event::selected:
|
||||||
|
j["event"]["id"] = id;
|
||||||
|
j["event"]["selected"] = val;
|
||||||
|
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Web_socket_wrapper::send_event(Event e, size_t id, double val)
|
||||||
|
{
|
||||||
|
if (m_inhibit_events)
|
||||||
|
return;
|
||||||
|
json j;
|
||||||
|
j["event"]["type"] = magic_enum::enum_name(e).data();
|
||||||
|
switch (e)
|
||||||
{
|
{
|
||||||
case Event::value_changed:
|
case Event::value_changed:
|
||||||
j["event"]["type"] = magic_enum::enum_name(event).data();
|
|
||||||
j["event"]["id"] = id;
|
j["event"]["id"] = id;
|
||||||
j["event"]["value"] = val;
|
j["event"]["value"] = val;
|
||||||
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
||||||
@@ -104,39 +119,33 @@ void Web_socket_wrapper::send_event(Event event, size_t id, double val)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Web_socket_wrapper::send_event(Event event, size_t id, QString val)
|
void Web_socket_wrapper::send_event(Event e, size_t id, QString val)
|
||||||
{
|
{
|
||||||
if (m_inhibit_events)
|
if (m_inhibit_events)
|
||||||
return;
|
return;
|
||||||
json j;
|
json j;
|
||||||
switch (event)
|
j["event"]["type"] = magic_enum::enum_name(e).data();
|
||||||
|
switch (e)
|
||||||
{
|
{
|
||||||
case Event::text_changed:
|
case Event::text_changed:
|
||||||
j["event"]["type"] = magic_enum::enum_name(event).data();
|
|
||||||
j["event"]["id"] = id;
|
j["event"]["id"] = id;
|
||||||
j["event"]["text"] = val.toStdString();
|
j["event"]["text"] = val.toStdString();
|
||||||
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
||||||
break;
|
break;
|
||||||
case Event::selected:
|
|
||||||
j["event"]["type"] = magic_enum::enum_name(event).data();
|
|
||||||
j["event"]["id"] = id;
|
|
||||||
j["event"]["selected"] = val.toStdString();
|
|
||||||
m_web_socket->sendTextMessage(QString(j.dump().data()));
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Web_socket_wrapper::send_event(Event event, size_t id, uint32_t sid, uint8_t dlc, std::array<uint8_t, 8> payload)
|
void Web_socket_wrapper::send_event(Event e, size_t id, uint32_t sid, uint8_t dlc, std::array<uint8_t, 8> payload)
|
||||||
{
|
{
|
||||||
if (m_inhibit_events)
|
if (m_inhibit_events)
|
||||||
return;
|
return;
|
||||||
json j;
|
json j;
|
||||||
switch (event)
|
j["event"]["type"] = magic_enum::enum_name(e).data();
|
||||||
|
switch (e)
|
||||||
{
|
{
|
||||||
case Event::can_send:
|
case Event::can_send:
|
||||||
j["event"]["type"] = magic_enum::enum_name(event).data();
|
|
||||||
j["event"]["id"] = id;
|
j["event"]["id"] = id;
|
||||||
j["event"]["sid"] = sid;
|
j["event"]["sid"] = sid;
|
||||||
j["event"]["dlc"] = dlc;
|
j["event"]["dlc"] = dlc;
|
||||||
|
|||||||
@@ -37,12 +37,13 @@ class Web_socket_wrapper : public QObject
|
|||||||
public:
|
public:
|
||||||
explicit Web_socket_wrapper(const QUrl &url, QObject *parent = nullptr);
|
explicit Web_socket_wrapper(const QUrl &url, QObject *parent = nullptr);
|
||||||
~Web_socket_wrapper();
|
~Web_socket_wrapper();
|
||||||
void send_command(Command command, size_t id = 0);
|
void send_command(Command c, size_t id = 0);
|
||||||
void send_command(Command command, QString id);
|
void send_command(Command c, QString val);
|
||||||
void send_event(Event event, size_t id);
|
void send_event(Event e, size_t id);
|
||||||
void send_event(Event event, size_t id, double val);
|
void send_event(Event e, size_t id, size_t val);
|
||||||
void send_event(Event event, size_t id, QString val);
|
void send_event(Event e, size_t id, double val);
|
||||||
void send_event(Event event, size_t id, uint32_t sid, uint8_t dlc, std::array<uint8_t, 8> payload);
|
void send_event(Event e, size_t id, QString val);
|
||||||
|
void send_event(Event e, size_t id, uint32_t sid, uint8_t dlc, std::array<uint8_t, 8> payload);
|
||||||
void close();
|
void close();
|
||||||
void inhibit_events(bool inhibit);
|
void inhibit_events(bool inhibit);
|
||||||
|
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ void Simulators::event_handler(json event)
|
|||||||
}
|
}
|
||||||
case Event::selected: {
|
case Event::selected: {
|
||||||
SPDLOG_DEBUG("Event {}: {} {}", type, (size_t)event.at("id"), std::string(event.at("selected")));
|
SPDLOG_DEBUG("Event {}: {} {}", type, (size_t)event.at("id"), std::string(event.at("selected")));
|
||||||
invoke_active_simulator()->get_UI_item(event.at("id"))->set_selected(std::string(event.at("selected")));
|
invoke_active_simulator()->get_UI_item(event.at("id"))->set_selected(event.at("selected"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Event::can_send: {
|
case Event::can_send: {
|
||||||
|
|||||||
Reference in New Issue
Block a user