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/SubWxs/iWxRunOption.h

146 lines
3.5 KiB
C

#pragma once
#include "iDlgBase.h"
#include "mModuleDefines.h"
#include "mSubWnd_global.h"
class ZxDataWell;
class iSubWnd;
class iAnalRun;
class iGuiPlot;
class ZxTableViewEx;
class M_SUB_WND_EXPORT iWxRunOption : public iDlgBase
{
Q_OBJECT
public:
explicit iWxRunOption(QWidget *parent = 0);
~iWxRunOption();
// 初始化
virtual void initUI();
virtual void initTableViews();
virtual void initChartView();
// 刷新
virtual void freshUI(bool bAutoRun = false);
public:
// 外界调用参数
void setDataWell(ZxDataWell* p);
void setAllAnalRuns(QVector<iAnalRun*>* p);
void setOneAnalRun(iAnalRun* pAnalRun);
// 返回对话框选择的结果
virtual iAnalRun* getCurSelAnalRun();
virtual iSubWnd* getSubWndApplied();
virtual bool isNewIfNull();
virtual bool isSetAnalAsCurrent();
virtual QString getSubWndTitle();
private slots:
// TODO 这两个函数是为了子类应用,目前放此处有些不妥
void on_cbxWnds_currentIndexChanged(const QString &arg1);
void on_cbxNewIfNull_clicked();
virtual void slotAnalRunselectionChanged();
void on_cbxAnalType_currentIndexChanged(const QString &arg1);
protected:
// 下拉流体类型
virtual void withAnalTypeChanged();
virtual bool isProperAnalType(PvtTestType ptt, \
bool bMiniFracMode = false); //筛选过滤合适的部分
signals:
// 从主窗体获取
void sigGetFitWnds(QMap<QString, iSubWnd*>& map);
void sigRunOptionChanged(iAnalRun*, iSubWnd*, bool, bool, QString);
protected:
// 窗体名称的切换
void changeNewWndName();
// 填充下拉
void fillCbxWnds(QComboBox* p);
virtual bool fuzzyCbxAnalRuns();
// 涉及的内部处理函数
QVector<iAnalRun*> getAllAnalRuns(QString sFilterType = "");
QStringList getAllAnalTypes(QVector<iAnalRun*>& vec, bool bMiniFracMode = false);
QString getCurAnalId();
iAnalRun* getAnalRunByID(QVector<iAnalRun*>& vec, QString sID);
bool checkAnalIdByPF(iAnalRun* p);
QString getFluidOfCurWell();
void filterAnalRunsByPhase(QVector<iAnalRun*>& vec, iAnalRun* p);
// 刷新组件
virtual void refreshChartInfo();
// void refreshSmoothState();
// void refreshThinningState();
// 刷新图形时调用
// 获取当前选中的Anal的流体类型油气水
virtual QString getCurFluidType();
// 结果处理
virtual bool runApply();
virtual bool dealwithAnalRun();
virtual bool dealwithWndSel();
//zxf设置当前的job
virtual bool setCurrentAnalRun();
protected:
// 井
ZxDataWell* m_pDataWell;
// 当前所有AnalRun输入主窗口从主窗口传入
QVector<iAnalRun*>* m_pVecAnalRuns;
// 当前
iAnalRun* m_pAnalRun;
// SubWnd
iSubWnd* m_pSubWnd;
// 绘图组件
iGuiPlot* m_pPlotWx;
// 表格组件
ZxTableViewEx* m_pTableViewJ;
// 下拉Anal类型
QComboBox* m_cbxAnalTypes;//ui->cbxAnalType
QCheckBox* m_pCbxSetAsCurrent;
QCheckBox* m_pCbxNewIfNull;
QLineEdit* m_pTbxNewWndName;
QSpinBox* m_pSbThinningLoop;
// 下拉窗体
QComboBox* m_pCbxWnds;
//table中填充的信息
VVecVariant m_vvecInfos;
//当前job的code
QString m_sCurCode;
// 对于加入多相之后只能固定AnalRun不能选择。
// 即在流动段右键弹出时如果发现当前Anal为多相则固定
bool m_bFixAnalMode;
bool m_bAutoFix;
// 类型标识:是否小型压裂
bool m_bMiniFracMode;
};