#ifndef CENTRALWIDGET_H #define CENTRALWIDGET_H #include #include #include "qcustomplot.h" #include "protocol.h" #include "global.h" #include "eventhandler.h" #include "filemanager.h" #include "pointcalculate.h" class CentralWidget:public QWidget { Q_OBJECT public: enum AnalysisMode{ Null, NumericalLabel, StartPoint, StopPoint, PeakSynthesisAnalysis, GlassTransition }; CentralWidget(QWidget *parent = nullptr); ~CentralWidget(); void setAnalysisMode(const AnalysisMode); void clearAllData(); EventHandler* getEvnetHandler(){return _eventHandler;} signals: void sigContextMenuShow(const QPoint); void sigSendLineXCoord(const int,const double); void sigRightDockWidgetHide(); public slots: // experiment void slotAxisModify(const float temp); void slotModeModify(const Global::Mode); void slotRecvCommonData(const CommonData&); void slotRecvAnalysisFileName(const QString&); void slotSelectionChanged(); //analysis setting void slotAnalysisSettingApply(); void slotAnalysisSettingConfirm(); void slotAnalysisSettingUndo(); void slotAnalysisSettingCancel(); void slotAnalysisSettingLineXPoint(const int index,const double); protected: void timerEvent(QTimerEvent* event); void contextMenuEvent(QContextMenuEvent *event); private: void glassTransitionHandle(); void glassTransitionHandle2(); void quadraticFit(const QVector& points, double& a, double& b, double& c); double derivativeAt(const double a, const double b, const double x); PointCalculate::Line calculateLinearRegression(const QVector& x, const QVector& y); void setEventHandlerEnable(const bool); QPointF getTheCoordinatesOfTheTextBox(const QPointF point); void drawText(const QPointF,const QString); void fillGraph(const double x1,const double x2); enum ClearDataMode{ All, Undo }; void clearData(const ClearDataMode); private: AnalysisMode _analysisMode; QCustomPlot *_customPlot; QCPCurve *_currentCurve; // QVector _curveVtr; // QCPGraph* _currentGraph; // QVector _graphVtr; EventHandler* _eventHandler; QCPItemStraightLine *_line1,*_line2; // QVector _dataVtr; QVector _lineVtr; }; #endif // CENTRALWIDGET_H