| 62 | } |
| 63 | |
| 64 | [[nodiscard]] QString baseDatasetLabel(const DatasetInfo* dataset) { |
| 65 | QString label = dataset != nullptr ? QString::fromStdString(dataset->source_name) : QString{}; |
| 66 | if (label.isEmpty()) { |
| 67 | label = QStringLiteral("Dataset"); |
| 68 | } |
| 69 | label.replace('/', '_'); |
| 70 | return label; |
| 71 | } |
| 72 | |
| 73 | [[nodiscard]] QString makeCurveKey(DatasetId dataset_id, TopicId topic_id, std::size_t column_index) { |
| 74 | return QStringLiteral("dataset:%1/topic:%2/column:%3").arg(dataset_id).arg(topic_id).arg(column_index); |