@@ -181,6 +181,7 @@ void ChartsWidget::settingChanged() {
181
181
range_slider->setRange (1 , settings.max_cached_minutes * 60 );
182
182
for (auto c : charts) {
183
183
c->setFixedHeight (settings.chart_height );
184
+ c->setSeriesType (settings.chart_series_type == 0 ? QAbstractSeries::SeriesTypeLine : QAbstractSeries::SeriesTypeScatter);
184
185
}
185
186
}
186
187
@@ -300,6 +301,8 @@ bool ChartsWidget::eventFilter(QObject *obj, QEvent *event) {
300
301
// ChartView
301
302
302
303
ChartView::ChartView (QWidget *parent) : QChartView(nullptr , parent) {
304
+ series_type = settings.chart_series_type == 0 ? QAbstractSeries::SeriesTypeLine : QAbstractSeries::SeriesTypeScatter;
305
+
303
306
QChart *chart = new QChart ();
304
307
chart->setBackgroundRoundness (0 );
305
308
axis_x = new QValueAxis (this );
@@ -326,9 +329,10 @@ ChartView::ChartView(QWidget *parent) : QChartView(nullptr, parent) {
326
329
QMenu *menu = new QMenu (this );
327
330
line_series_action = menu->addAction (tr (" Line" ), [this ]() { setSeriesType (QAbstractSeries::SeriesTypeLine); });
328
331
line_series_action->setCheckable (true );
329
- line_series_action->setChecked (true );
332
+ line_series_action->setChecked (series_type == QAbstractSeries::SeriesTypeLine );
330
333
scatter_series_action = menu->addAction (tr (" Scatter" ), [this ]() { setSeriesType (QAbstractSeries::SeriesTypeScatter); });
331
334
scatter_series_action->setCheckable (true );
335
+ scatter_series_action->setChecked (series_type == QAbstractSeries::SeriesTypeScatter);
332
336
menu->addSeparator ();
333
337
menu->addAction (tr (" Manage series" ), this , &ChartView::manageSeries);
334
338
manage_btn->setMenu (menu);
@@ -490,7 +494,7 @@ void ChartView::updatePlot(double cur, double min, double max) {
490
494
int num_points = std::max<int >(end - begin, 1 );
491
495
int pixels_per_point = width () / num_points;
492
496
if (series_type == QAbstractSeries::SeriesTypeScatter) {
493
- ((QScatterSeries *)s.series )->setMarkerSize (std::max< int >( 1 , 16 * (pixels_per_point / 64.0 ) ));
497
+ ((QScatterSeries *)s.series )->setMarkerSize (std::clamp (pixels_per_point / 10 , 1 , 16 ));
494
498
} else {
495
499
s.series ->setPointsVisible (pixels_per_point > 20 );
496
500
}
0 commit comments