Removes validity tracking from UI table

This simplifies the code and removes redundant checks.
This commit is contained in:
2026-02-14 14:32:30 +01:00
parent e5fefa57ac
commit 66ac531cd5
3 changed files with 5 additions and 20 deletions
+2 -12
View File
@@ -8,11 +8,10 @@ UI_table::UI_table(QObject *parent) : UI_item(UI_TABLE_TYPE, parent), m_row_coun
UI_table::UI_table(size_t row_count, size_t column_count, std::vector<std::string> row_labels, UI_table::UI_table(size_t row_count, size_t column_count, std::vector<std::string> row_labels,
std::vector<std::string> column_labels, QObject *parent) std::vector<std::string> column_labels, QObject *parent)
: UI_item(UI_TABLE_TYPE, parent), m_row_count(row_count), m_column_count(column_count), m_row_labels(row_labels), : UI_item(UI_TABLE_TYPE, parent), m_row_count(row_count), m_column_count(column_count), m_row_labels(row_labels),
m_column_labels(column_labels), m_valid(), m_table() m_column_labels(column_labels), m_table()
{ {
setup_item(false, false, false); setup_item(false, false, false);
m_table.resize(m_column_count * m_row_count); m_table.resize(m_column_count * m_row_count);
m_valid.resize(m_column_count * m_row_count);
} }
void UI_table::set_row_count(size_t count) void UI_table::set_row_count(size_t count)
@@ -21,7 +20,6 @@ void UI_table::set_row_count(size_t count)
if (m_row_count != 0 || m_column_count != 0) if (m_row_count != 0 || m_column_count != 0)
{ {
m_table.resize(m_column_count * m_row_count); m_table.resize(m_column_count * m_row_count);
m_valid.resize(m_column_count * m_row_count);
} }
emit ui_changed(); emit ui_changed();
@@ -38,7 +36,6 @@ void UI_table::set_column_count(size_t count)
if (m_row_count != 0 || m_column_count != 0) if (m_row_count != 0 || m_column_count != 0)
{ {
m_table.resize(m_column_count * m_row_count); m_table.resize(m_column_count * m_row_count);
m_valid.resize(m_column_count * m_row_count);
} }
emit ui_changed(); emit ui_changed();
@@ -108,14 +105,10 @@ void UI_table::insert_item(size_t row, size_t column, std::string text)
{ {
m_table.resize(capacity()); m_table.resize(capacity());
} }
if (capacity() > m_valid.capacity())
{
m_valid.resize(capacity());
}
size_t index = row * m_column_count + column; size_t index = row * m_column_count + column;
m_table.at(index) = text; m_table.at(index) = text;
m_valid.at(index) = true;
emit ui_changed(); emit ui_changed();
} }
@@ -136,7 +129,6 @@ void UI_table::empty_item(size_t row, size_t column)
size_t index = row * m_column_count + column; size_t index = row * m_column_count + column;
m_table[index] = ""; m_table[index] = "";
m_valid[index] = false;
emit ui_changed(); emit ui_changed();
} }
@@ -149,7 +141,6 @@ void UI_table::from_json(const json &j)
this->m_row_labels = j.at("row_labels"); this->m_row_labels = j.at("row_labels");
this->m_column_count = j.at("column_count"); this->m_column_count = j.at("column_count");
this->m_column_labels = j.at("column_labels"); this->m_column_labels = j.at("column_labels");
this->m_valid = (std::vector<bool>)j.at("valid");
this->m_table = j.at("table"); this->m_table = j.at("table");
} }
@@ -160,7 +151,6 @@ json UI_table::to_json(size_t id) const
j["row_labels"] = m_row_labels; j["row_labels"] = m_row_labels;
j["column_count"] = m_column_count; j["column_count"] = m_column_count;
j["column_labels"] = m_column_labels; j["column_labels"] = m_column_labels;
j["valid"] = m_valid;
j["table"] = m_table; j["table"] = m_table;
return j; return j;
-1
View File
@@ -40,6 +40,5 @@ class UI_table : public UI_item
std::vector<std::string> m_row_labels; std::vector<std::string> m_row_labels;
std::vector<std::string> m_column_labels; std::vector<std::string> m_column_labels;
std::vector<bool> m_valid;
std::vector<std::string> m_table; std::vector<std::string> m_table;
}; };
+2 -6
View File
@@ -856,7 +856,6 @@ void Simulator_base::process_ui_table(json &ui_item, QWidget *widget)
std::vector<std::string> row_labels = (std::vector<std::string>)ui_item.at("row_labels"); std::vector<std::string> row_labels = (std::vector<std::string>)ui_item.at("row_labels");
size_t column_count = ui_item.at("column_count"); size_t column_count = ui_item.at("column_count");
std::vector<std::string> column_labels = (std::vector<std::string>)ui_item.at("column_labels"); std::vector<std::string> column_labels = (std::vector<std::string>)ui_item.at("column_labels");
std::vector<bool> valid = (std::vector<bool>)ui_item.at("valid");
std::vector<std::string> table_data = (std::vector<std::string>)ui_item.at("table"); std::vector<std::string> table_data = (std::vector<std::string>)ui_item.at("table");
bool enabled = ui_item.at("enabled"); bool enabled = ui_item.at("enabled");
bool visible = ui_item.at("visible"); bool visible = ui_item.at("visible");
@@ -900,16 +899,13 @@ void Simulator_base::process_ui_table(json &ui_item, QWidget *widget)
{ {
size_t row = i / column_count; size_t row = i / column_count;
size_t column = i % column_count; size_t column = i % column_count;
if (valid[i] && table->item(row, column) == nullptr) if (table->item(row, column) == nullptr)
{ {
table->setItem(row, column, new QTableWidgetItem()); table->setItem(row, column, new QTableWidgetItem());
} }
if (valid[i])
{
table->item(row, column)->setText(QString::fromStdString(table_data[i])); table->item(row, column)->setText(QString::fromStdString(table_data[i]));
} }
} table->resizeColumnsToContents();
// table->
} }
void Simulator_base::process_ui_can(json &ui_item, QWidget *widget) void Simulator_base::process_ui_can(json &ui_item, QWidget *widget)