diff --git a/ApplicationLibCode/ProjectDataModel/Completions/RimWellPathAicdParameters.cpp b/ApplicationLibCode/ProjectDataModel/Completions/RimWellPathAicdParameters.cpp index cf5e64f1c7..ed00daf63c 100644 --- a/ApplicationLibCode/ProjectDataModel/Completions/RimWellPathAicdParameters.cpp +++ b/ApplicationLibCode/ProjectDataModel/Completions/RimWellPathAicdParameters.cpp @@ -56,54 +56,42 @@ RimWellPathAicdParameters::RimWellPathAicdParameters() "ViscosityFunctionExponent", "Viscosity Function Exponent" ); - CAF_PDM_InitScriptableField( &m_aicdParameterFields[AICD_CRITICAL_WATER_IN_LIQUID_FRAC], - "CriticalWaterLiquidFractionEmul", - QString( "1*" ), - "Critical Water in Liquid Fraction for emulsions" ); - CAF_PDM_InitScriptableField( &m_aicdParameterFields[AICD_EMULSION_VISC_TRANS_REGION], - "ViscosityTransitionRegionEmul", - QString( "1*" ), - "Emulsion Viscosity Transition Region" ); - CAF_PDM_InitScriptableField( &m_aicdParameterFields[AICD_MAX_RATIO_EMULSION_VISC], - "MaxRatioOfEmulsionVisc", - QString( "1*" ), - "Max Ratio of Emulsion to Continuous Viscosity" ); - CAF_PDM_InitScriptableField( &m_aicdParameterFields[AICD_MAX_FLOW_RATE], - "MaxFlowRate", - QString( "1*" ), - "Max Flow Rate for AICD Device (m^3 / day)" ); - CAF_PDM_InitScriptableField( &m_aicdParameterFields[AICD_EXP_OIL_FRAC_DENSITY], - "ExponentOilDensity", - QString( "1*" ), - "Density Exponent of Oil Fraction" ); - CAF_PDM_InitScriptableField( &m_aicdParameterFields[AICD_EXP_WATER_FRAC_DENSITY], - "ExponentWaterDensity", - QString( "1*" ), - "Density Exponent of Water Fraction" ); - CAF_PDM_InitScriptableField( &m_aicdParameterFields[AICD_EXP_GAS_FRAC_DENSITY], - "ExponentGasDensity", - QString( "1*" ), - "Density Exponent of Gas Fraction" ); - CAF_PDM_InitScriptableField( &m_aicdParameterFields[AICD_EXP_OIL_FRAC_VISCOSITY], - "ExponentOilViscosity", - QString( "1*" ), - "Viscosity Exponent of Oil Fraction" ); - CAF_PDM_InitScriptableField( &m_aicdParameterFields[AICD_EXP_WATER_FRAC_VISCOSITY], - "ExponentWaterViscosity", - QString( "1*" ), - "Viscosity Exponent of Water Fraction" ); - CAF_PDM_InitScriptableField( &m_aicdParameterFields[AICD_EXP_GAS_FRAC_VISCOSITY], - "ExponentGasViscosity", - QString( "1*" ), - "Viscosity Exponent of Gas Fraction" ); + CAF_PDM_InitScriptableFieldNoDefault( &m_aicdParameterFields[AICD_CRITICAL_WATER_IN_LIQUID_FRAC], + "CriticalWaterLiquidFractionEmul", + "Critical Water in Liquid Fraction for emulsions" ); + CAF_PDM_InitScriptableFieldNoDefault( &m_aicdParameterFields[AICD_EMULSION_VISC_TRANS_REGION], + "ViscosityTransitionRegionEmul", + "Emulsion Viscosity Transition Region" ); + CAF_PDM_InitScriptableFieldNoDefault( &m_aicdParameterFields[AICD_MAX_RATIO_EMULSION_VISC], + "MaxRatioOfEmulsionVisc", + "Max Ratio of Emulsion to Continuous Viscosity" ); + CAF_PDM_InitScriptableFieldNoDefault( &m_aicdParameterFields[AICD_MAX_FLOW_RATE], "MaxFlowRate", "Max Flow Rate for AICD Device (m^3 / day)" ); + CAF_PDM_InitScriptableFieldNoDefault( &m_aicdParameterFields[AICD_EXP_OIL_FRAC_DENSITY], + "ExponentOilDensity", + "Density Exponent of Oil Fraction" ); + CAF_PDM_InitScriptableFieldNoDefault( &m_aicdParameterFields[AICD_EXP_WATER_FRAC_DENSITY], + "ExponentWaterDensity", + "Density Exponent of Water Fraction" ); + CAF_PDM_InitScriptableFieldNoDefault( &m_aicdParameterFields[AICD_EXP_GAS_FRAC_DENSITY], + "ExponentGasDensity", + "Density Exponent of Gas Fraction" ); + CAF_PDM_InitScriptableFieldNoDefault( &m_aicdParameterFields[AICD_EXP_OIL_FRAC_VISCOSITY], + "ExponentOilViscosity", + "Viscosity Exponent of Oil Fraction" ); + CAF_PDM_InitScriptableFieldNoDefault( &m_aicdParameterFields[AICD_EXP_WATER_FRAC_VISCOSITY], + "ExponentWaterViscosity", + "Viscosity Exponent of Water Fraction" ); + CAF_PDM_InitScriptableFieldNoDefault( &m_aicdParameterFields[AICD_EXP_GAS_FRAC_VISCOSITY], + "ExponentGasViscosity", + "Viscosity Exponent of Gas Fraction" ); std::vector allFields = fields(); for ( caf::PdmFieldHandle* field : allFields ) { - caf::PdmField* stringField = dynamic_cast*>( field ); - if ( stringField ) + caf::PdmField>* doubleField = dynamic_cast>*>( field ); + if ( doubleField ) { - stringField->uiCapability()->setUiEditorTypeName( caf::PdmUiLineEditor::uiEditorTypeName() ); + doubleField->uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleValueEditor::uiEditorTypeName() ); } } } @@ -120,12 +108,9 @@ RimWellPathAicdParameters::~RimWellPathAicdParameters() //-------------------------------------------------------------------------------------------------- bool RimWellPathAicdParameters::isValid() const { - for ( const caf::PdmField* stringField : stringFieldsWithNoValidDefault() ) + for ( const caf::PdmField>* stringField : optionalFieldsWithNoValidDefault() ) { - if ( stringField->value().isEmpty() ) return false; - bool ok = true; - stringField->value().toDouble( &ok ); - if ( !ok ) return false; + if ( !stringField->value().has_value() ) return false; } return true; } @@ -135,7 +120,7 @@ bool RimWellPathAicdParameters::isValid() const //-------------------------------------------------------------------------------------------------- void RimWellPathAicdParameters::setValue( AICDParameters parameter, double value ) { - m_aicdParameterFields[parameter].setValue( QString::number( value ) ); + m_aicdParameterFields[parameter].setValue( value ); } //-------------------------------------------------------------------------------------------------- @@ -154,13 +139,10 @@ std::array RimWellPathAicdParameters::doubleValues() co std::array doubleValues; for ( int i = 0; i < (int)AICD_NUM_PARAMS; ++i ) { - caf::PdmDoubleStringValidator validator( nullptr ); - QString stringValue = m_aicdParameterFields[(AICDParameters)i].value(); - bool ok = true; - double doubleValue = stringValue.toDouble( &ok ); - if ( ok ) + std::optional stringValue = m_aicdParameterFields[(AICDParameters)i].value(); + if ( stringValue.has_value() ) { - doubleValues[i] = doubleValue; + doubleValues[i] = stringValue.value(); } else { @@ -199,11 +181,11 @@ void RimWellPathAicdParameters::defineUiOrdering( QString uiConfigName, caf::Pdm //-------------------------------------------------------------------------------------------------- void RimWellPathAicdParameters::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) { - const caf::PdmField* stringField = dynamic_cast*>( field ); - caf::PdmUiLineEditorAttribute* lineEditorAttr = dynamic_cast( attribute ); - if ( stringField && lineEditorAttr ) + const caf::PdmField>* optionalField = dynamic_cast>*>( field ); + caf::PdmUiLineEditorAttribute* lineEditorAttr = dynamic_cast( attribute ); + if ( optionalField && lineEditorAttr ) { - if ( stringFieldsWithNoValidDefault().count( stringField ) ) + if ( optionalFieldsWithNoValidDefault().count( optionalField ) ) { lineEditorAttr->validator = new caf::PdmDoubleStringValidator( "" ); } @@ -217,9 +199,9 @@ void RimWellPathAicdParameters::defineEditorAttribute( const caf::PdmFieldHandle //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -std::set*> RimWellPathAicdParameters::stringFieldsWithNoValidDefault() const +std::set>*> RimWellPathAicdParameters::optionalFieldsWithNoValidDefault() const { - std::set*> fields; + std::set>*> fields; for ( int i = 0; i < (int)AICD_NUM_REQ_PARAMS; ++i ) { fields.insert( &m_aicdParameterFields[(AICDParameters)i] ); diff --git a/ApplicationLibCode/ProjectDataModel/Completions/RimWellPathAicdParameters.h b/ApplicationLibCode/ProjectDataModel/Completions/RimWellPathAicdParameters.h index e1ee11f419..2dec91b8da 100644 --- a/ApplicationLibCode/ProjectDataModel/Completions/RimWellPathAicdParameters.h +++ b/ApplicationLibCode/ProjectDataModel/Completions/RimWellPathAicdParameters.h @@ -63,12 +63,12 @@ protected: void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; private: - std::set*> stringFieldsWithNoValidDefault() const; - void setUnitLabels(); - bool isMetric() const; + std::set>*> optionalFieldsWithNoValidDefault() const; + void setUnitLabels(); + bool isMetric() const; private: caf::PdmField m_deviceOpen; - std::array, AICD_NUM_PARAMS> m_aicdParameterFields; + std::array>, AICD_NUM_PARAMS> m_aicdParameterFields; };