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

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