| 56 | }; |
| 57 | |
| 58 | [[nodiscard]] inline ExportSchema buildExportSchema(const Frame& frame) |
| 59 | { |
| 60 | ExportSchema schema; |
| 61 | schema.frameTitle = frame.title; |
| 62 | |
| 63 | QMap<int, QString> sourceTitles; |
| 64 | for (const auto& s : frame.sources) |
| 65 | sourceTitles.insert(s.sourceId, s.title); |
| 66 | |
| 67 | for (const auto& group : frame.groups) { |
| 68 | if (group.groupType == GroupType::Output) |
| 69 | continue; |
| 70 | |
| 71 | for (const auto& dataset : group.datasets) { |
| 72 | ExportColumn col; |
| 73 | col.uniqueId = dataset.uniqueId; |
| 74 | col.groupId = group.groupId; |
| 75 | col.sourceId = dataset.sourceId; |
| 76 | col.sourceTitle = sourceTitles.value(dataset.sourceId, QStringLiteral("")); |
| 77 | col.groupTitle = group.title; |
| 78 | col.title = dataset.title; |
| 79 | col.units = dataset.units; |
| 80 | col.widget = dataset.widget; |
| 81 | col.isNumeric = dataset.isNumeric; |
| 82 | col.isVirtual = dataset.virtual_; |
| 83 | schema.columns.push_back(col); |
| 84 | } |
| 85 | } |
| 86 | |
| 87 | std::sort(schema.columns.begin(), |
| 88 | schema.columns.end(), |
| 89 | [](const ExportColumn& a, const ExportColumn& b) { return a.uniqueId < b.uniqueId; }); |
| 90 | |
| 91 | for (int i = 0; i < static_cast<int>(schema.columns.size()); ++i) |
| 92 | schema.uniqueIdToColumnIndex.insert(schema.columns[static_cast<size_t>(i)].uniqueId, i); |
| 93 | |
| 94 | return schema; |
| 95 | } |
| 96 | |
| 97 | } // namespace DataModel |
no test coverage detected