From daf34607c9b96f3733cc747c19aa424bb7a3f6f7 Mon Sep 17 00:00:00 2001 From: wh201906 Date: Tue, 21 Nov 2023 23:17:41 +0800 Subject: [PATCH] Add point-only mode in PlotTab Fixes #45 --- src/plottab.cpp | 32 +++++++++++++++++++++++++------- src/plottab.h | 3 ++- src/ui/plottab.ui | 26 +++++++++++++++++++++----- 3 files changed, 48 insertions(+), 13 deletions(-) diff --git a/src/plottab.cpp b/src/plottab.cpp index d04259e..fde924d 100644 --- a/src/plottab.cpp +++ b/src/plottab.cpp @@ -37,7 +37,7 @@ void PlotTab::initSettings() connect(ui->plot_dataSpEdit, &QLineEdit::editingFinished, this, &PlotTab::savePlotPreference); connect(ui->plot_clearFlagTypeBox, QOverload::of(&QComboBox::currentIndexChanged), this, &PlotTab::savePlotPreference); connect(ui->plot_clearFlagEdit, &QLineEdit::editingFinished, this, &PlotTab::savePlotPreference); - connect(ui->plot_scatterBox, &QCheckBox::clicked, this, &PlotTab::savePlotPreference); + connect(ui->plot_plotStyleBox, QOverload::of(&QComboBox::currentIndexChanged), this, &PlotTab::savePlotPreference); } @@ -388,17 +388,35 @@ void PlotTab::on_plot_XTypeBox_currentIndexChanged(int index) } } -void PlotTab::on_plot_scatterBox_stateChanged(int arg1) + +void PlotTab::on_plot_plotStyleBox_currentIndexChanged(int index) { - if(arg1 == Qt::Checked) + if(index == 0) + { + // line only + for(int i = 0; i < ui->qcpWidget->graphCount(); i++) + { + ui->qcpWidget->graph(i)->setLineStyle(QCPGraph::lsLine); + ui->qcpWidget->graph(i)->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssNone)); + } + } + else if(index == 1) { + // point only for(int i = 0; i < ui->qcpWidget->graphCount(); i++) + { + ui->qcpWidget->graph(i)->setLineStyle(QCPGraph::lsNone); ui->qcpWidget->graph(i)->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssCircle)); + } } - else + else if(index == 2) { + // line with point for(int i = 0; i < ui->qcpWidget->graphCount(); i++) - ui->qcpWidget->graph(i)->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssNone)); + { + ui->qcpWidget->graph(i)->setLineStyle(QCPGraph::lsLine); + ui->qcpWidget->graph(i)->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssCircle)); + } } } @@ -447,7 +465,7 @@ void PlotTab::savePlotPreference() settings->setValue("DataSp_Context", ui->plot_dataSpEdit->text()); settings->setValue("ClearF_Type", ui->plot_clearFlagTypeBox->currentIndex()); settings->setValue("ClearF_Context", ui->plot_clearFlagEdit->text()); - settings->setValue("Scatter", ui->plot_scatterBox->isChecked()); + settings->setValue("PlotStyle", ui->plot_plotStyleBox->currentIndex()); settings->endGroup(); } @@ -480,7 +498,7 @@ void PlotTab::loadPreference() ui->plot_dataSpEdit->setText(settings->value("DataSp_Context", defaultDataSp).toString()); ui->plot_clearFlagTypeBox->setCurrentIndex(settings->value("ClearF_Type", 1).toInt()); ui->plot_clearFlagEdit->setText(settings->value("ClearF_Context", "cls").toString()); - ui->plot_scatterBox->setChecked(settings->value("Scatter", false).toBool()); + ui->plot_plotStyleBox->setCurrentIndex(settings->value("PlotStyle", 0).toInt()); colorList = settings->value("GraphColor", QStringList()).toStringList(); nameList = settings->value("GraphName", QStringList()).toStringList(); settings->endGroup(); diff --git a/src/plottab.h b/src/plottab.h index c78704b..a6dbf24 100644 --- a/src/plottab.h +++ b/src/plottab.h @@ -48,7 +48,7 @@ private slots: void on_plot_advancedBox_stateChanged(int arg1); void on_plot_frameSpTypeBox_currentIndexChanged(int index); void on_plot_dataSpTypeBox_currentIndexChanged(int index); - void on_plot_scatterBox_stateChanged(int arg1); + void on_plot_plotStyleBox_currentIndexChanged(int index); void on_plot_frameSpEdit_editingFinished(); void on_plot_dataSpEdit_editingFinished(); void on_plot_clearFlagTypeBox_currentIndexChanged(int index); @@ -57,6 +57,7 @@ private slots: void savePlotPreference(); void loadPreference(); void processData(); + private: Ui::PlotTab *ui; diff --git a/src/ui/plottab.ui b/src/ui/plottab.ui index ba1a739..07c2e25 100644 --- a/src/ui/plottab.ui +++ b/src/ui/plottab.ui @@ -7,7 +7,7 @@ 0 0 1208 - 59 + 61 @@ -348,16 +348,32 @@ - - - - Scatter + Style: + + + + + Line + + + + + Point + + + + + Both + + + +