You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/mGui/mSubWnd/iSubWndBaseAF.h

113 lines
3.5 KiB
C

#pragma once
#include "iSubWnd.h"
class ZxSegmentInfo;
class iWxBase;
class ZxPlot;
class iDockBaseWx;
class iAnalRun;
class iModelOption;
class ZxRstWnd;
// 父类:拟合/分析
class M_SUB_WND_EXPORT iSubWndBaseAF : public iSubWnd
{
Q_OBJECT
public:
explicit iSubWndBaseAF(QWidget *parent = 0, QString sExt = "");
~iSubWndBaseAF();
// 配置窗体
virtual void configWnd(QString sPrevInfo);
virtual void setDataWell(ZxDataWell* p);
// 序列化
virtual void onSerialize(ZxSerializer* ser);
virtual void onDeserialize(ZxSerializer* ser);
virtual void layoutSubWnds(WndLayoutMode oWlm);
// 把所有AnalRun指针传递过来
void setAllAnalRuns(QVector<iAnalRun*>* p);
virtual void setAnalRun(iAnalRun* pAnalRun, bool bFuzzyPit = false);
iAnalRun* getAnalRun();
// virtual void setSegmentInfo(ZxSegmentInfo* p);
ZxSegmentInfo* getSegmentInfo();
/// @brief 命令是否Enabled的状态判断通常来自Ribbon
/// @param b (out)trueEnabled falsedisabled
/// @param sName (in),Cmd Name
/// @param nID (in),Cmd ID
/// @param bLicensed (in),当前是否有授权
/// @return 本窗体是否已经进行状态判断(即属于本窗体可执行的命令)
virtual bool checkCmdEnable(bool &b, \
QString sName, int nID, \
bool bLicensed);
protected:
////////////////////////////////////////////////////////////////
// loadRsts/saveRsts具体实现相关
// 这是窗体自身一些简单的内容即onSerialize/onDeserialize函数中写的内容
// 对于SubWnd来讲通常这些内容比较少
// 注存入字段DataInfo pRstWnd->getDataInfo()
virtual bool saveRstBase(ZxRstWnd* pRstWnd);//该函数名称有待商榷,本身有 cache+save 功能
virtual bool loadRstBase(ZxRstWnd* pRstWnd);
// 这是总的包括Anal分析、Seg流动段、Plot图件等三部分
virtual bool saveRstInfos(ZxRstWnd* pRstWnd);//该函数名称有待商榷,本身有 cache+save 功能
virtual bool loadRstInfos(ZxRstWnd* pRstWnd);
// 分析相关目前只有Fitting实现其它如需要需要重载该函数
virtual bool saveRstAnalInfos(ZxRstWnd* pRstWnd);
virtual bool loadRstAnalInfos(ZxRstWnd* pRstWnd);
// 流动段相关目前只有Fitting实现其它如需要需要重载该函数
virtual bool saveRstSegInfos(ZxRstWnd* pRstWnd);
virtual bool loadRstSegInfos(ZxRstWnd* pRstWnd);
// 图件相关
virtual bool saveRstPlotInfos(ZxRstWnd* pRstWnd);
virtual bool loadRstPlotInfos(ZxRstWnd* pRstWnd);
// End Of loadRsts/saveRsts具体实现相关
////////////////////////////////////////////////////////////////
protected:
// 重新调整工具栏
virtual void reAdjustToolbar(QToolBar*);
// 20210825去除无效比如变井储HegeMan开始处总是有空值TheoryDeriv / TheorySource
// 后续可以考虑是不是需要处理其它 TODO
virtual bool adjustResultDataOf(QString sCurveTag, \
VecDouble& vecX, \
VecDouble& vecY, \
bool bCutoffNeeded = false);
public slots:
// 增加AnalRun选项
void slotToolbarBuilt(QToolBar*);
protected:
// 当前所有AnalRun输入主窗口从主窗口传入
QVector<iAnalRun*>* m_pVecAnalRuns;
iAnalRun* m_pAnalRun;
ZxSegmentInfo* m_pSegInfo;
// 临时当前子窗体布局Mode
WndLayoutMode m_oWlm;
};