#include "CFDStructDataSolverReferenceQuantityManager.h" #include "CFDStructDataSolverTimeModeManager.h" #include "CFDStructMain/CFDStructDefine.h" #include "CFDStructSigsCenter.h" #include "CUIProperty/CUIConfig.h" #include "CUIProperty/CUISigsCenter.h" #include CFDStructDataSolverReferenceQuantityManager::CFDStructDataSolverReferenceQuantityManager(QObject *parent) : CFDStructDataManagerBase(parent) { m_uiConfig = nullptr; connect(m_cuiSigsCenter, &CUISigsCenter::sig_cuiPropertyChanged, this, [=](int semaphore) { emit CFDStructSigsCenter::getInstance() -> sig_solverTimeModeDataChanged(); }); } CFDStructDataSolverReferenceQuantityManager::~CFDStructDataSolverReferenceQuantityManager() { // CFDStructDataManagerBase::~CFDStructDataManagerBase(); } CUIConfig *CFDStructDataSolverReferenceQuantityManager::getParamUIConfig() { if (m_uiConfig != nullptr) { delete m_uiConfig; m_uiConfig = nullptr; } // m_uiConfig->printConfig(); m_uiConfig = this->genUIConfig(); return m_uiConfig; } void CFDStructDataSolverReferenceQuantityManager::saveDataToDom(rapidjson::Document &dom) { jsonAdd(dom, m_Pressure, {"region", 0, "refValue", "pressure"}); jsonAdd(dom, m_Temperature, {"region", 0, "refValue", "temperature"}); jsonAdd(dom, m_Length, {"region", 0, "refValue", "refLength"}); jsonAdd(dom, m_Area, {"region", 0, "refValue", "refArea"}); jsonAdd(dom, m_TorqueCenterOfMoment, {"region", 0, "refValue", "jx"}); } void CFDStructDataSolverReferenceQuantityManager::readDataFromDom(rapidjson::Document &dom) { QVariant temp; jsonRead(dom, temp, {"region", 0, "refValue", "pressure"}); if (temp != QVariant()) { m_Pressure = temp.toDouble(); } jsonRead(dom, temp, {"region", 0, "refValue", "temperature"}); if (temp != QVariant()) { m_Temperature = temp.toDouble(); } jsonRead(dom, temp, {"region", 0, "refValue", "refLength"}); if (temp != QVariant()) { m_Length = temp.toDouble(); } jsonRead(dom, temp, {"region", 0, "refValue", "refArea"}); if (temp != QVariant()) { m_Area = temp.toDouble(); } jsonRead(dom, temp, {"region", 0, "refValue", "jx"}); if (temp != QVariant()) { m_TorqueCenterOfMoment = temp.toString(); } } CUIConfig *CFDStructDataSolverReferenceQuantityManager::genUIConfig() { return new CUIConfig({ {"type", "Widget"}, }, { new CUIConfig({ {"type", "ComboBox"}, // 参考值取自 {"name", tr("The reference value is taken from")}, {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_INT}, {"value_origin", QVA_GLOBAL(&m_ReferenceValuesFrom)}, }, { new CUIConfig({ {"type", "Item"}, // 无 {"name", tr("none")}, }), }), new CUIConfig({{"type", "GroupBox"}, // 热力学 {"name", tr("thermodynamics")}}, { new CUIConfig({ {"type", "LineEdit"}, // 压强 {"name", tr("pressure")}, {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, {"value_origin", QVA_GLOBAL(&m_Pressure)}, }), new CUIConfig({ {"type", "LineEdit"}, // 温度 {"name", tr("temperature")}, {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, {"value_origin", QVA_GLOBAL(&m_Temperature)}, }), }), new CUIConfig({{"type", "GroupBox"}, // Re数相关 {"name", tr("Re number related")}}, { new CUIConfig({ {"type", "LineEdit"}, // 长度 {"name", tr("length")}, {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, {"value_origin", QVA_GLOBAL(&m_Length)}, }), }), new CUIConfig({{"type", "GroupBox"}, // 力和力矩 {"name", tr("Force and torque")}}, { new CUIConfig({ {"type", "LineEdit"}, // 面积 {"name", tr("the measure of area")}, {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_DOUBLE}, {"value_origin", QVA_GLOBAL(&m_Area)}, }), new CUIConfig({ {"type", "LineEdit"}, // 力矩矩心 {"name", tr("Torque Center of Moment")}, {"value_type", CUI_DATA_TYPE::CUI_DATA_TYPE_STRING}, {"value_origin", QVA_GLOBAL(&m_TorqueCenterOfMoment)}, }), }), }); return nullptr; }