添加测量分析项目创建时的测量参数和能量刻度处理
This commit is contained in:
parent
4ed8642ea1
commit
02af6f39d9
|
|
@ -73,6 +73,36 @@ void NewMeasureAnalysisDlg::initialization()
|
|||
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);
|
||||
auto turnStackPageBtnState = [this](){
|
||||
int last_stack_index = ui->stackedWidget->count() - 1;
|
||||
|
|
@ -117,7 +147,7 @@ void NewMeasureAnalysisDlg::initialization()
|
|||
|
||||
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");
|
||||
QDir projects_dir(projects_dir_path);
|
||||
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()) {
|
||||
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();
|
||||
|
||||
MeasureAnalysisProjectModel* model = new MeasureAnalysisProjectModel;
|
||||
model->SetProjectDir(project_dir_path);
|
||||
model->SetProjectName(project_name);
|
||||
|
|
@ -141,6 +186,8 @@ void NewMeasureAnalysisDlg::newProject(const QString& particle_data_filename)
|
|||
model->SetMeasurePresetTime(measure_preset_time);
|
||||
model->SetConformTimeWin(conform_time_win);
|
||||
model->SetDescriptionInfo(description_info);
|
||||
model->SetMeasureDeviceParamsCfgFilename(project_measure_param_filename);
|
||||
model->SetEnergyScaleFilename(energy_scale_filename);
|
||||
model->SetAllChannelParticleDataFilename(particle_data_filename);
|
||||
model->SetIsMeasureComplete(is_measure_complete);
|
||||
ProjectList::Instance()->AddProjectModel(model);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user