EnergySpectrumAnalyer/src/MeasureAnalysisParticleCountPlotView/BatchEnergyScaleDialog.h
2026-03-20 15:45:18 +08:00

56 lines
1.4 KiB
C++

#ifndef BATCHENERGYSCALEDIALOG_H
#define BATCHENERGYSCALEDIALOG_H
#include <QDialog>
class QAbstractTableModel;
class EnergyScaleDataModel;
namespace Ui {
class BatchEnergyScaleDialog;
}
class BatchEnergyScaleDialog : public QDialog
{
Q_OBJECT
public:
explicit BatchEnergyScaleDialog(QWidget *parent = nullptr);
~BatchEnergyScaleDialog();
void SetProjectName(const QString& project_name);
void SetChannelNameList(const QStringList& ch_name_list);
void SetPeakResultDataModel(QAbstractTableModel *peaks_result_model);
void SetViewWorkspace(const QString& workspace);
void LoadEnergyScaleData();
public slots:
void onSelectedScaleRange(double min, double max);
void onFitBtnClickedProcess();
private slots:
void onEnergyScaleFitFinished(bool ok, const QString& project_name, const QVariant &data);
private:
void insertSetEnergyValueToFilter(double energy);
void updateSetEnergyFilter();
void applyEnergyScaleFitResultData();
void energyScaleDataChanged(const QStringList& channel_name_list);
signals:
void applyEnergyScale(const QString& project_name);
void close();
protected:
void closeEvent(QCloseEvent *e);
private:
Ui::BatchEnergyScaleDialog *ui;
QString _project_name;
QStringList _channel_name_list;
QString _workspace;
QAbstractTableModel* _peaks_result_model;
std::unique_ptr<EnergyScaleDataModel> _energy_scale_data_model;
};
#endif // BATCHENERGYSCALEDIALOG_H