* @brief Adds a new dataset of the given type to the selected group. */
| 4355 | * @brief Adds a new dataset of the given type to the selected group. |
| 4356 | */ |
| 4357 | void DataModel::ProjectModel::addDataset(const SerialStudio::DatasetOption option, int sourceId) |
| 4358 | { |
| 4359 | ensureValidGroup(sourceId); |
| 4360 | |
| 4361 | const auto groupId = m_selectedGroup.groupId; |
| 4362 | DataModel::Dataset dataset; |
| 4363 | dataset.groupId = groupId; |
| 4364 | |
| 4365 | QString title; |
| 4366 | switch (option) { |
| 4367 | case SerialStudio::DatasetGeneric: |
| 4368 | title = tr("New Dataset"); |
| 4369 | break; |
| 4370 | case SerialStudio::DatasetPlot: |
| 4371 | title = tr("New Plot"); |
| 4372 | dataset.plt = true; |
| 4373 | break; |
| 4374 | case SerialStudio::DatasetFFT: |
| 4375 | title = tr("New FFT Plot"); |
| 4376 | dataset.fft = true; |
| 4377 | break; |
| 4378 | case SerialStudio::DatasetBar: |
| 4379 | title = tr("New Level Indicator"); |
| 4380 | dataset.widget = QStringLiteral("bar"); |
| 4381 | break; |
| 4382 | case SerialStudio::DatasetGauge: |
| 4383 | title = tr("New Gauge"); |
| 4384 | dataset.widget = QStringLiteral("gauge"); |
| 4385 | break; |
| 4386 | case SerialStudio::DatasetCompass: |
| 4387 | title = tr("New Compass"); |
| 4388 | dataset.wgtMin = 0; |
| 4389 | dataset.wgtMax = 360; |
| 4390 | dataset.widget = QStringLiteral("compass"); |
| 4391 | break; |
| 4392 | case SerialStudio::DatasetMeter: |
| 4393 | title = tr("New Meter"); |
| 4394 | dataset.widget = QStringLiteral("meter"); |
| 4395 | break; |
| 4396 | case SerialStudio::DatasetLED: |
| 4397 | title = tr("New LED Indicator"); |
| 4398 | dataset.led = true; |
| 4399 | break; |
| 4400 | case SerialStudio::DatasetWaterfall: |
| 4401 | title = tr("New Waterfall"); |
| 4402 | dataset.waterfall = true; |
| 4403 | break; |
| 4404 | default: |
| 4405 | break; |
| 4406 | } |
| 4407 | |
| 4408 | int count = 1; |
| 4409 | QString newTitle = title; |
| 4410 | for (const auto& d : std::as_const(m_groups[groupId].datasets)) { |
| 4411 | if (d.title == newTitle) { |
| 4412 | count++; |
| 4413 | newTitle = QString("%1 (%2)").arg(title, QString::number(count)); |
| 4414 | } |
no test coverage detected