#ifndef MEASUREANALYSISVIEW_H #define MEASUREANALYSISVIEW_H #include #include #include #include #include #include "AnalysisTypeDefine.h" class MeasureAnalysisView : public QWidget { Q_OBJECT public: static MeasureAnalysisView* NewAnalyzeView(AnalysisType view_type); public: enum ViewType { None, ConfigFrame, DataTable, PlotFrame }; explicit MeasureAnalysisView(QWidget* parent = nullptr); void SetProjectName(const QString& project_name); const QString& GetProjectName() const; AnalysisType GetAnalyzeType(); bool IsDeleteOnClose(); ViewType GetViewType(); void SetViewName(const QString& name); void SetViewDescription(const QString& description); const QString& GetViewName() const; const QString& GetViewDescription() const; virtual void InitViewWorkspace(const QString& project_name) = 0; virtual void SetAnalyzeDataFilename(const QMap& data_files_set) = 0; protected: void setAnalyzeType(AnalysisType type); void setDeleteOnClose(bool del); void setViewType(ViewType view_type); private: QString _project_name; bool _delete_on_close = true; AnalysisType _analysis_type = AnalysisType::None; ViewType _view_type = ViewType::None; QString _name; QString _description; public: friend QDataStream& operator<<(QDataStream& out, const MeasureAnalysisView& view); friend QDataStream& operator>>(QDataStream& in, MeasureAnalysisView& view); }; #endif // MEASUREANALYSISVIEW_H