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/mGuiJob/iWxModelOption.h.bak

207 lines
6.1 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 "iWxBase.h"
#include "mGuiJob_global.h"
//class iModelDesc;
class ZxPlot;
class iWxModelSketch;
class iModelOption;
class iModelInfoBase;
class iGridLineUtils;
namespace Ui {
class iWxModelOption;
}
class M_GUI_JOB_EXPORT iWxModelOption : public iWxBase
{
Q_OBJECT
public:
explicit iWxModelOption(QWidget *parent = 0);
~iWxModelOption();
// 初始化
virtual void initUI();
// 切换模型时刷新
virtual void refreshBrothers(bool bfresh = true);
// 组织结果数据,注vec不进行clear由调用方自行clear
virtual bool organizeResults(QVector<iResultInfo>& vec, QString sType);
// 返回当前选中的
iModelOption* getOption();
// 示意图绘图(多幅,弹出对话框)
virtual void showSketchCharts();
// FitModel之后改变一些状态
void dealwithFitOption(iModelOption* p);
void changeListItem(QListWidget* pListWx, \
QString sItem, QString sKey, \
bool bSelectOnly = true);
void changeRowLineItem(iGridLineUtils* pLineUtils, \
QString sItem, QString sKey, \
bool bSelectOnly = true);
// 得到聚合物中启动低渗的按钮状态
bool getCbxStatePF();
protected:
// 新的listwidget展示模式
void initNovelListWxs();
QWidget* initNovelListWxOf(QString sType, QListWidget*& pListWx);
void fillNovelListWxOf(QListWidget* pListWx, QString sType);
void initFromLasts();
#ifdef _SCAN_OLD_CODES_
void initUI_TopSpecial(QVBoxLayout*& pLayout); //该函数暂时不启用,后续可能需要重启
void initUI_ModelListWxs();
void initUI_ModelGridLines(QVector<iModelInfoBase*>& vec, \
QVBoxLayout* pLayout, \
QString sType = "");
QVector<iModelInfoBase*> classifyModelInfos(QVector<iModelInfoBase*>& vec, \
QString sType);
#endif
// 填充List
void fillListWx(QListWidget* pListWx,
QString sType,
bool bConsiderSpecial = false,
bool bIsSpecial = false);
//考虑到Well也要做筛选这里单独写一个函数
void fillWelListWx(QListWidget* pListWx,
QString sType,
bool bConsiderSpecial = false,
bool bIsSpecial = false);
//由于WEl决定Res选项
void fillResListWx(QListWidget* pListWx,
QString sType,
bool bConsiderSpecial = false,
bool bIsSpecial = false);
// 如果是井切换
bool dealwithWellListWx();
// 界面数据到Option载体
virtual void freshUi2Option();
void _freshUiListWx2Option(QListWidget* pListWx, QString sKey);
void _freshUiCheckBox2Option(QCheckBox* pCbx, QString sKey);
// 最近选用
void freshUiByOpenRecents();
void fillRecentModels();
void refreshRecentModels(QString sModel);
void freshRecentItem2ListWxs(QString s);
public:
// 序列化
virtual void onSerialize(ZxSerializer* ser);
virtual void onDeserialize(ZxSerializer* ser);
protected:
// 对于序列化父类的QListWidget处理已经不能满足要求故重载该函数
virtual bool _writeCtrl(ZxSerializer* ser, QWidget* p, QString& sTag);
virtual bool _readCtrl(ZxSerializer* ser, QWidget*& p, QString& sTag);
protected:
virtual void paintEvent(QPaintEvent *);
protected:
// 查找组下面的项(如果有)(井型+储层类型)
virtual bool findChildItemsOf(QListWidget* pListWx, \
QListWidgetItem* pItem, \
QVector<QListWidgetItem*>& vecChildItems, \
bool* ptrIsHidden = NULL);
void initContextMenu(QListWidget* pListWx, \
QListWidgetItem* pItem, \
bool bHidden);
// 切换状态
void changeItemState(QListWidgetItem* pItem, iModelInfoBase* pModelInfo);
// 折叠/展开
void expandOrCollapse(bool bExpand);
void expandOrCollapseAll(bool bExpand);
protected slots:
// 模型选择
virtual void slotModelOptionChanged(QString);
// 双击(井型+储层类型)
virtual void slotListWxItemDoubleClicked(QListWidgetItem* pItem);
virtual void slotListWxItemClicked(QListWidgetItem* pItem);
// 右键(井型+储层类型)
virtual void slotListWxCustomMenu(const QPoint& pos);
// 右键菜单
virtual void slotExpandGroup();
virtual void slotCollapseGroup();
virtual void slotExpandGroupAll();
virtual void slotCollapseGroupAll();
// 各自的状态设定,复选框选项
void slotCbxStateChangedLP();
void slotCbxStateChangedPF();
void slotCbxStateChangedSR();
// 筛选部分
void on_btnFilter_clicked();
void on_tbxFilter_textChanged(const QString &arg1);
// 最近选用
void on_listWxRecents_doubleClicked(const QModelIndex &index);
void on_cbxOpenRecents_clicked();
void on_sbRecentCounts_valueChanged(int arg1);
signals:
// 模型切换信号
void sigParasChangedEx(iModelOption* );
// 增加这个信号主要增加小信号的选择模式(目前小信号只比普通模式多一条线,增加信号,保证绘制时候出现)
void sigCbxStateChanged(bool bSmall);
// 聚合物PF
void sigCbxStatePfChanged(bool bCheck);
protected:
Ui::iWxModelOption *ui;
QListWidget* m_pListWxWel;
QListWidget* m_pListWxRes;
QListWidget* m_pListWxWbs;
QListWidget* m_pListWxBdy;
// 选择内容的载体
iModelOption* m_pOption;
// ListWidget Ctrls / CheckBox
QMap<QString, QWidget*> m_mapSubWxs;
// 示意图
iWxModelSketch* m_pWxSketch;
// iWxModelSketch* m_pWxTheory; //二者用的同一个窗体,暂未启用,后续考虑
// 临时变量,不涉及序列化
bool m_bRecentDbClick;
// 右键菜单
QMenu* m_pContextMenu;
// 临时,针对右键操作而设定的对象体
QListWidget* m_pTempListWx;
QListWidgetItem* m_pTempListWxItem;
};