* @brief Configures the line series data structures for all dashboard plots. */
| 2541 | * @brief Configures the line series data structures for all dashboard plots. |
| 2542 | */ |
| 2543 | void UI::Dashboard::configureLineSeries() |
| 2544 | { |
| 2545 | Q_ASSERT(m_points > 0); |
| 2546 | |
| 2547 | m_xAxisData.clear(); |
| 2548 | m_yAxisData.clear(); |
| 2549 | m_plotTimeRings.clear(); |
| 2550 | m_plotSweep.clear(); |
| 2551 | m_pltValues.clear(); |
| 2552 | m_pltValues.squeeze(); |
| 2553 | m_activePlots.clear(); |
| 2554 | m_yLinePushes.clear(); |
| 2555 | m_xLinePushes.clear(); |
| 2556 | m_timePushes.clear(); |
| 2557 | |
| 2558 | m_pltXAxis = DSP::AxisData(points() + 1); |
| 2559 | m_pltXAxis.fillRange(0, 1); |
| 2560 | |
| 2561 | for (auto i = m_widgetDatasets.begin(); i != m_widgetDatasets.end(); ++i) { |
| 2562 | const auto& datasets = i.value(); |
| 2563 | |
| 2564 | for (auto d = datasets.begin(); d != datasets.end(); ++d) { |
| 2565 | if (!d->plt) |
| 2566 | continue; |
| 2567 | |
| 2568 | DSP::AxisData yAxis(points() + 1); |
| 2569 | m_yAxisData.insert(d->uniqueId, yAxis); |
| 2570 | |
| 2571 | registerXAxisIfNeeded(*d); |
| 2572 | } |
| 2573 | } |
| 2574 | |
| 2575 | for (int i = 0; i < widgetCount(SerialStudio::DashboardPlot); ++i) { |
| 2576 | const auto& yDataset = getDatasetWidget(SerialStudio::DashboardPlot, i); |
| 2577 | |
| 2578 | if (useTimeXAxis(yDataset)) { |
| 2579 | const int cap = timeRingCapacity(m_plotTimeRange); |
| 2580 | m_plotTimeRings.insert(i, makeHistoryRing(m_plotTimeRange)); |
| 2581 | |
| 2582 | DSP::SweepEngine sweep; |
| 2583 | sweep.configure(1, cap, m_plotTimeRange); |
| 2584 | m_plotSweep.insert(i, std::move(sweep)); |
| 2585 | |
| 2586 | DSP::LineSeries series; |
| 2587 | series.x = &m_pltXAxis; |
| 2588 | series.y = &m_yAxisData[yDataset.uniqueId]; |
| 2589 | m_pltValues.append(series); |
| 2590 | } |
| 2591 | #ifdef BUILD_COMMERCIAL |
| 2592 | else if (const auto& tk2 = Licensing::CommercialToken::current(); |
| 2593 | m_datasets.contains(yDataset.xAxisId) && tk2.isValid() && SS_LICENSE_GUARD() |
| 2594 | && tk2.featureTier() >= Licensing::FeatureTier::Trial) { |
| 2595 | DSP::LineSeries series; |
| 2596 | series.x = &m_xAxisData[yDataset.xAxisId]; |
| 2597 | series.y = &m_yAxisData[yDataset.uniqueId]; |
| 2598 | m_pltValues.append(series); |
| 2599 | } |
| 2600 | #endif |
nothing calls this directly
no test coverage detected