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++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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;
};