From da044a61a94dcd770b90b33a4251a3ce7efde7d2 Mon Sep 17 00:00:00 2001 From: Raees Khan <rak177@pitt.edu> Date: Tue, 19 Jul 2022 05:21:00 -0400 Subject: [PATCH] Fixing bug --- FSL/src/configregions.cpp | 10 +++++----- FSL/src/configregions.h | 4 +++- FSL/src/fsl_mainwindow.cpp | 16 ++++++++-------- FSL/src/fsl_mainwindow.h | 3 +++ 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/FSL/src/configregions.cpp b/FSL/src/configregions.cpp index dfce43647..7c9bd42a5 100644 --- a/FSL/src/configregions.cpp +++ b/FSL/src/configregions.cpp @@ -18,7 +18,7 @@ ConfigRegions::ConfigRegions(QWidget *parent) : positron_cut_validator = new QDoubleValidator(-100000.0,100000.0,8); gamma_cut_validator = new QDoubleValidator(-100000.0,100000.0,8); - QLocale loc(QLocale::C); + loc= QLocale::C; loc.setNumberOptions(QLocale::RejectGroupSeparator); electron_cut_validator->setLocale(loc); @@ -48,10 +48,10 @@ void ConfigRegions::add_region_config() region_name = (ui->lE_reg_name->text()).toStdString(); frootLV_names = (ui->lE_froot->text()).toStdString(); - electron_cut = (ui->lE_electron->text()).toDouble(); - proton_cut = (ui->lE_proton->text()).toDouble(); - positron_cut = (ui->lE_positron->text()).toDouble(); - gamma_cut = (ui->lE_gamma->text()).toDouble(); + electron_cut = loc.toDouble(ui->lE_electron->text(), &loc_bool); + proton_cut = loc.toDouble(ui->lE_proton->text(), &loc_bool); + positron_cut = loc.toDouble(ui->lE_positron->text(), &loc_bool); + gamma_cut = loc.toDouble(ui->lE_gamma->text(), &loc_bool); diff --git a/FSL/src/configregions.h b/FSL/src/configregions.h index 860f0d40d..76ca0b6a3 100644 --- a/FSL/src/configregions.h +++ b/FSL/src/configregions.h @@ -3,7 +3,7 @@ #include <QDialog> #include <QDoubleValidator> - +#include <QLocale> namespace Ui { class ConfigRegions; @@ -23,6 +23,8 @@ public: double positron_cut; double gamma_cut; void add_region_config(); + QLocale loc; + bool loc_bool; signals: void send_config(std::string region_name, std::string frootLV_names diff --git a/FSL/src/fsl_mainwindow.cpp b/FSL/src/fsl_mainwindow.cpp index 84d39e434..6712eb0ee 100644 --- a/FSL/src/fsl_mainwindow.cpp +++ b/FSL/src/fsl_mainwindow.cpp @@ -129,7 +129,7 @@ FSLMainWindow::FSLMainWindow(QWidget *parent) p_z_validator = new QDoubleValidator(-100000.0,100000.0,8); mag_field_validator = new QDoubleValidator(-100000.0,100000.0,8); - QLocale lo(QLocale::C); + lo = QLocale::C; lo.setNumberOptions(QLocale::RejectGroupSeparator); p_x_validator->setLocale(lo); @@ -420,10 +420,10 @@ void FSLMainWindow::configure_regions() std::vector<std::string> froot_names = this->parse_froot_string(((ui->regions_table->model() ->index(row,1)).data().toString()).toStdString()); - double ele_cut = (ui->regions_table->model()->index(row,2)).data().toDouble(); - double prot_cut = (ui->regions_table->model()->index(row,3)).data().toDouble(); - double posit_cut = (ui->regions_table->model()->index(row,4)).data().toDouble(); - double gam_cut = (ui->regions_table->model()->index(row,5)).data().toDouble(); + double ele_cut = lo.toDouble((ui->regions_table->model()->index(row,2)).data().toString(), &locale_bool); + double prot_cut = lo.toDouble((ui->regions_table->model()->index(row,3)).data().toString(), &locale_bool); + double posit_cut = lo.toDouble((ui->regions_table->model()->index(row,4)).data().toString(), &locale_bool); + double gam_cut = lo.toDouble((ui->regions_table->model()->index(row,5)).data().toString(), &locale_bool); Region region_from_list = {reg_name, froot_names, ele_cut,prot_cut,posit_cut,gam_cut}; regions.push_back(region_from_list); @@ -688,9 +688,9 @@ void FSLMainWindow::assign_magnetic_field_map() //Function to configure particle energy and direction void FSLMainWindow::configure_energy_direction() { - p_x = ui->lE_px->text().toDouble(); - p_y = ui->lE_py->text().toDouble(); - p_z = ui->lE_pz->text().toDouble(); + p_x = lo.toDouble(ui->lE_px->text(), &locale_bool); + p_y = lo.toDouble(ui->lE_py->text(), &locale_bool); + p_z = lo.toDouble(ui->lE_pz->text(), &locale_bool); double p = sqrt(pow(p_x,2)+pow(p_y,2)+pow(p_z,2)); x_dir = std::to_string(p_x/p); diff --git a/FSL/src/fsl_mainwindow.h b/FSL/src/fsl_mainwindow.h index cc0b284ef..3b12f85b7 100644 --- a/FSL/src/fsl_mainwindow.h +++ b/FSL/src/fsl_mainwindow.h @@ -5,6 +5,7 @@ #include <nlohmann/json.hpp> #include <QStringListModel> #include <QProcess> +#include <QLocale> #include <QStandardItemModel> #include <QDoubleValidator> #include "configregions.h" @@ -52,6 +53,8 @@ public: //Parameters associated with the main tab + QLocale lo; + bool locale_bool; nlohmann::json j; QProcess fullSimLight_process; QProcess gmex_process; -- GitLab