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.
nmWATI/Include/iData/iSysUtils/zxSysUtils.h

134 lines
3.7 KiB
C

#pragma once
#include "Defines.h"
#include "iXmlTable.h"
#include "iXmlAlias.h"
#include "iModelInfoBase.h"
#include "iModelDescGroup.h"
#include "iParameterGroup.h"
#include "iParameterGroupSp.h"
#include "iPvtParaItemGroup.h"
#include "iIprAlgItemGroup.h"
#include "iUnitGroup.h"
#include "IxDynObj.h"
#include "iXmlBtn.h"
#include "iXmlCmds.h"
#include "iSpeciParam.h"
#include "iSysUtils_global.h"
#include "iXmlCurveDictConfig.h"
class I_SYSUTILS_EXPORT zxSysUtils
{
public:
// 获取对象,单例模式
static zxSysUtils* getInstance();
// 关闭消耗
static void release();
// 状态栏相关
static void setStatusLabel(QLabel* pStatusLabel);
void setStatusText(QString sText, int nLevel = 0);
// 当前井、项目、作业
static void setCurProject(IxDynObj* p);
static IxDynObj* getCurProject();
static void setCurWell(IxDynObj* p);
static IxDynObj* getCurWell();
static void setCurJobRun(QObject* p);
static QObject* getCurJobRun();
// 对Setting进行统一管理保存窗口状态用
QSettings* getWndSettings(QString& sWndKey, bool bResetIfExists = false);
// 加载TableStruct
bool loadTableStructs(QString sFile);
// 加载Models
bool loadModelInfos(QString sFile /*= ""*/);
// 加载Parameters
bool loadParaDefines(QString sFile /*= ""*/, QString sFileEx = "");
// 加载PvtMethod
bool loadPvtParaItems(QString sFile /*= ""*/);
bool loadIprAlgItems(QString sFile /*= ""*/);
// 特殊参数
bool loadSpeciParamInfos(QString sFile /*= ""*/);
// 加载BtnCmds
bool loadBtnCmdInfos(QString sFile /*= ""*/);
bool parseBtnCmd2ToolBar(QToolBar* p, QString sType, int nOption = -1, int wh = -1);
bool parseBtnCmdID2ToolBar(QToolBar* p, QStringList listIDs, int wh);
QString getCmdNameByID(QString sCmdID);
// 加载Unit
bool loadUnitInfos(QString sFile /*= ""*/);
// 曲线字典
bool loadCurveDictionaryInfos(QString sFile /*= ""*/);
// 字段别名
bool loadAliasTablesInfos(QString sFile /*= ""*/);
/// @brief 对于单位控件的修改
/// @param sPara可以英文、可以中文查找英文优先
/// @param pTbxValue默认值填写上不能为空
/// @param pCbxUnit单位下拉可以为空
void loadAndFillWithDefault(QString sPara,
QLineEdit* pTbxValue,
QComboBox* pCbxUnit,
double& fDefaultValue,
QString& sCurUnit);
// 获取参数单位,为了一点点性能,可以英文、可以中文,查找英文优先
QString getUnitOfPara(QString sPara);
private:
zxSysUtils();
~zxSysUtils();
private:
static zxSysUtils* m_pSysInstance;
static QLabel* m_pStatusLabel;
static IxDynObj* m_pCurWell;
static IxDynObj* m_pCurProject;
static QObject* m_pCurJobRun;
public:
// 各种参数缓存,一旦成功加载,即可作为全局变量进行使用
vecXmlTablesPtr m_vecXmlTables;
vecXmlAliasTablesPtr m_vecXmlAliasTables;
vecXmlCurveItemsPtr m_vecCurveDict;
vecModelInfoBasesPtr m_vecModelWbss;
vecModelInfoBasesPtr m_vecModelWels;
vecModelInfoBasesPtr m_vecModelRess;
vecModelInfoBasesPtr m_vecModelBdys;
vecModelDescGroupsPtr m_vecModelGroups;
vecXmlCmdGroupsPtr m_vecCmdInfos;
vecXmlBtnsPtr m_vecBtnInfos;
vecParameterGroupsPtr m_vecParaGroups;
vecParameterGroupSpsPtr m_vecParaGroupSps;
vecPvtParaItemGroupsPtr m_vecPvtParaItemGroups;
vecIprAlgItemGroupsPtr m_vecIprAlgItemGroups;
vecUnitGroupPtr m_vecUnitGroups;
vecParamPtr m_vecSpeciParam;
QMap<QString, QString> m_mapParaUnits;
};