|
|
#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),true:Enabled false:disabled
|
|
|
/// @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;
|
|
|
};
|