#pragma once #include "iSubWnd.h" class iJobInfoModel; class ZxSegmentInfo; class iWxBase; class ZxPlot; class iDockBaseWx; class iJobRun; class iWxWizard; class iModelOption; class ZxRstJobWnd; class M_SUB_WND_EXPORT iSubWndBaseAF : public iSubWnd { Q_OBJECT public: explicit iSubWndBaseAF(QWidget *parent = 0, QString sExt = ""); ~iSubWndBaseAF(); // 配置窗体 virtual void configWnd(); virtual void setDataWell(ZxDataWell* p); // 序列化 virtual void onSerialize(ZxSerializer* ser); virtual void onDeserialize(ZxSerializer* ser); virtual bool saveRunAndSegInfo(ZxRstJobWnd* pRstWnd); virtual bool loadRunAndSegInfo(ZxRstJobWnd* pRstWnd); virtual void layoutSubWnds(WndLayoutMode oWlm); // 把所有JobRun指针传递过来 void setAllJobRuns(QVector* p); virtual void setJobRun(iJobRun* pJobRun, bool bFuzzyPit = false); iJobRun* getJobRun(); // 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: // 重新调整工具栏 virtual void reAdjustToolbar(QToolBar*); // 20210825去除无效,比如变井储HegeMan开始处总是有空值TheoryDeriv / TheorySource // 后续可以考虑是不是需要处理其它 TODO virtual bool adjustResultDataOf(QString sCurveTag, \ VecDouble& vecX, \ VecDouble& vecY, \ bool bCutoffNeeded = false); public slots: // 增加JobRun选项 void slotToolbarBuilt(QToolBar*); protected: // 当前所有JobRun,输入主窗口,从主窗口传入 QVector* m_pVecJobRuns; iJobRun* m_pJobRun; //这是传入,本类不负责维护 ZxSegmentInfo* m_pSegInfo; // 临时,当前子窗体布局Mode WndLayoutMode m_oWlm; };