1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 14:57:35 +00:00

Spreadsheet: Accept (and ignore) invalid 'columns' in json

The save functionality omits these when the names are standard, so just
ignore them if they don't exist (or are not valid).
This commit is contained in:
AnotherTest 2020-12-20 12:44:43 +03:30 committed by Andreas Kling
parent e8e8d3caf5
commit 28428beb5c

View file

@ -373,8 +373,6 @@ RefPtr<Sheet> Sheet::from_json(const JsonObject& object, Workbook& workbook)
auto sheet = adopt(*new Sheet(workbook)); auto sheet = adopt(*new Sheet(workbook));
auto rows = object.get("rows").to_u32(default_row_count); auto rows = object.get("rows").to_u32(default_row_count);
auto columns = object.get("columns"); auto columns = object.get("columns");
if (!columns.is_array())
return nullptr;
auto name = object.get("name").as_string_or("Sheet"); auto name = object.get("name").as_string_or("Sheet");
sheet->set_name(name); sheet->set_name(name);
@ -383,10 +381,12 @@ RefPtr<Sheet> Sheet::from_json(const JsonObject& object, Workbook& workbook)
sheet->add_row(); sheet->add_row();
// FIXME: Better error checking. // FIXME: Better error checking.
if (columns.is_array()) {
columns.as_array().for_each([&](auto& value) { columns.as_array().for_each([&](auto& value) {
sheet->m_columns.append(value.as_string()); sheet->m_columns.append(value.as_string());
return IterationDecision::Continue; return IterationDecision::Continue;
}); });
}
if (sheet->m_columns.size() < default_column_count && sheet->columns_are_standard()) { if (sheet->m_columns.size() < default_column_count && sheet->columns_are_standard()) {
for (size_t i = sheet->m_columns.size(); i < default_column_count; ++i) for (size_t i = sheet->m_columns.size(); i < default_column_count; ++i)