#ifndef BATCHENERGYSCALEDIALOG_H #define BATCHENERGYSCALEDIALOG_H #include 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(const QString& project_name); private: void insertSetEnergyValueToFilter(double energy); void updateSetEnergyFilter(); void applyEnergyScaleFitResultData(); void energyScaleDataChanged(const QStringList& channel_name_list); signals: 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 _energy_scale_data_model; }; #endif // BATCHENERGYSCALEDIALOG_H