添加测量分析项目创建时的测量参数和能量刻度处理
This commit is contained in:
parent
4ed8642ea1
commit
02af6f39d9
|
|
@ -73,6 +73,36 @@ void NewMeasureAnalysisDlg::initialization()
|
||||||
ui->lineEdit_filename->setProperty("data_file_path", filename);
|
ui->lineEdit_filename->setProperty("data_file_path", filename);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 遍历可执行文件目录中configure/DeviceParams目录下的测量设备参数文件
|
||||||
|
const QString& device_params_dir_path = QDir(qApp->applicationDirPath()).filePath("configure/DeviceParams");
|
||||||
|
QDir device_params_dir(device_params_dir_path);
|
||||||
|
if (!device_params_dir.exists(device_params_dir_path)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
QList<QString> ms_cfg_basenames = device_params_dir.entryList(QDir::Files | QDir::NoDotAndDotDot | QDir::NoSymLinks, QDir::Time);
|
||||||
|
for (const QString& ms_cfg_basename : ms_cfg_basenames) {
|
||||||
|
const QString& ms_cfg_filename = device_params_dir.filePath(ms_cfg_basename);
|
||||||
|
QFileInfo ms_cfg_file_info(ms_cfg_filename);
|
||||||
|
if ("mscfg" == ms_cfg_file_info.suffix()) {
|
||||||
|
ui->comboBox_measure_param->addItem(ms_cfg_file_info.baseName(), ms_cfg_file_info.absoluteFilePath());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 遍历可执行文件目录中configure/EnergyScale目录下的能量刻度文件
|
||||||
|
const QString& energy_scale_dir_path = QDir(qApp->applicationDirPath()).filePath("configure/EnergyScale");
|
||||||
|
QDir energy_scale_dir(energy_scale_dir_path);
|
||||||
|
if (!energy_scale_dir.exists(energy_scale_dir_path)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
QList<QString> energy_scale_basenames = energy_scale_dir.entryList(QDir::Files | QDir::NoDotAndDotDot | QDir::NoSymLinks, QDir::Time);
|
||||||
|
for (const QString& energy_scale_basename : energy_scale_basenames) {
|
||||||
|
const QString& energy_scale_filename = energy_scale_dir.filePath(energy_scale_basename);
|
||||||
|
QFileInfo energy_scale_file_info(energy_scale_filename);
|
||||||
|
if ("json" == energy_scale_file_info.suffix()) {
|
||||||
|
ui->comboBox_energy_scale->addItem(energy_scale_file_info.baseName(), energy_scale_file_info.absoluteFilePath());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ui->btn_ok->setEnabled(false);
|
ui->btn_ok->setEnabled(false);
|
||||||
auto turnStackPageBtnState = [this](){
|
auto turnStackPageBtnState = [this](){
|
||||||
int last_stack_index = ui->stackedWidget->count() - 1;
|
int last_stack_index = ui->stackedWidget->count() - 1;
|
||||||
|
|
@ -117,7 +147,7 @@ void NewMeasureAnalysisDlg::initialization()
|
||||||
|
|
||||||
void NewMeasureAnalysisDlg::newProject(const QString& particle_data_filename)
|
void NewMeasureAnalysisDlg::newProject(const QString& particle_data_filename)
|
||||||
{
|
{
|
||||||
const QString& project_name = ui->lineEdit_name->text();
|
QString project_name = ui->lineEdit_name->text();
|
||||||
QString projects_dir_path = QDir(qApp->applicationDirPath()).filePath("Projects");
|
QString projects_dir_path = QDir(qApp->applicationDirPath()).filePath("Projects");
|
||||||
QDir projects_dir(projects_dir_path);
|
QDir projects_dir(projects_dir_path);
|
||||||
QString project_dir_path = projects_dir.filePath(project_name);
|
QString project_dir_path = projects_dir.filePath(project_name);
|
||||||
|
|
@ -132,7 +162,22 @@ void NewMeasureAnalysisDlg::newProject(const QString& particle_data_filename)
|
||||||
} else if (ui->rbtn_background_spec->isChecked()) {
|
} else if (ui->rbtn_background_spec->isChecked()) {
|
||||||
spec_type = MeasureAnalysisProjectModel::SpectrumType::Background;
|
spec_type = MeasureAnalysisProjectModel::SpectrumType::Background;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString measure_param_filename = ui->comboBox_measure_param->currentData().toString();
|
||||||
|
QString project_measure_param_filename = QDir(project_dir_path).filePath(QStringLiteral(u"设备参数配置.mscfg"));
|
||||||
|
QFileInfo measure_param_file_info(measure_param_filename);
|
||||||
|
if (measure_param_file_info.exists()) {
|
||||||
|
QFile::copy(measure_param_filename, project_measure_param_filename);
|
||||||
|
}
|
||||||
|
QString energy_scale_filename = ui->comboBox_energy_scale->currentData().toString();
|
||||||
|
QString project_energy_scale_filename = QDir(project_dir_path).filePath(QStringLiteral(u"能量刻度.json"));
|
||||||
|
QFileInfo energy_scale_file_info(energy_scale_filename);
|
||||||
|
if (energy_scale_file_info.exists()) {
|
||||||
|
QFile::copy(energy_scale_filename, project_energy_scale_filename);
|
||||||
|
}
|
||||||
|
|
||||||
bool is_measure_complete = !particle_data_filename.isEmpty();
|
bool is_measure_complete = !particle_data_filename.isEmpty();
|
||||||
|
|
||||||
MeasureAnalysisProjectModel* model = new MeasureAnalysisProjectModel;
|
MeasureAnalysisProjectModel* model = new MeasureAnalysisProjectModel;
|
||||||
model->SetProjectDir(project_dir_path);
|
model->SetProjectDir(project_dir_path);
|
||||||
model->SetProjectName(project_name);
|
model->SetProjectName(project_name);
|
||||||
|
|
@ -141,6 +186,8 @@ void NewMeasureAnalysisDlg::newProject(const QString& particle_data_filename)
|
||||||
model->SetMeasurePresetTime(measure_preset_time);
|
model->SetMeasurePresetTime(measure_preset_time);
|
||||||
model->SetConformTimeWin(conform_time_win);
|
model->SetConformTimeWin(conform_time_win);
|
||||||
model->SetDescriptionInfo(description_info);
|
model->SetDescriptionInfo(description_info);
|
||||||
|
model->SetMeasureDeviceParamsCfgFilename(project_measure_param_filename);
|
||||||
|
model->SetEnergyScaleFilename(energy_scale_filename);
|
||||||
model->SetAllChannelParticleDataFilename(particle_data_filename);
|
model->SetAllChannelParticleDataFilename(particle_data_filename);
|
||||||
model->SetIsMeasureComplete(is_measure_complete);
|
model->SetIsMeasureComplete(is_measure_complete);
|
||||||
ProjectList::Instance()->AddProjectModel(model);
|
ProjectList::Instance()->AddProjectModel(model);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user