diff --git a/ApplicationLibCode/ProjectDataModel/RimCustomObjectiveFunctionWeight.cpp b/ApplicationLibCode/ProjectDataModel/RimCustomObjectiveFunctionWeight.cpp index 81ecc654b6..9cd735ccf1 100644 --- a/ApplicationLibCode/ProjectDataModel/RimCustomObjectiveFunctionWeight.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimCustomObjectiveFunctionWeight.cpp @@ -30,7 +30,6 @@ #include "RiuSummaryVectorSelectionDialog.h" #include "cafPdmUiLineEditor.h" -#include "cafPdmUiPushButtonEditor.h" #include "cafPdmUiTreeSelectionEditor.h" CAF_PDM_SOURCE_INIT( RimCustomObjectiveFunctionWeight, "RimCustomObjectiveFunctionWeight" ); @@ -52,10 +51,6 @@ RimCustomObjectiveFunctionWeight::RimCustomObjectiveFunctionWeight() CAF_PDM_InitFieldNoDefault( &m_objectiveValuesSummaryAddresses, "ObjectiveSummaryAddress", "Summary Address" ); m_objectiveValuesSummaryAddresses.uiCapability()->setUiTreeChildrenHidden( true ); - CAF_PDM_InitFieldNoDefault( &m_objectiveValuesSelectSummaryAddressPushButton, "SelectObjectiveSummaryAddress", "" ); - caf::PdmUiPushButtonEditor::configureEditorLabelHidden( &m_objectiveValuesSelectSummaryAddressPushButton ); - m_objectiveValuesSelectSummaryAddressPushButton = false; - CAF_PDM_InitField( &m_weightValue, "WeightValue", 1.0, "Weight" ); m_weightValue.uiCapability()->setUiEditorTypeName( caf::PdmUiLineEditor::uiEditorTypeName() ); @@ -143,38 +138,6 @@ void RimCustomObjectiveFunctionWeight::fieldChangedByUi( const caf::PdmFieldHand { updateAddressesUiField(); } - else if ( changedField == &m_objectiveValuesSelectSummaryAddressPushButton ) - { - RiuSummaryVectorSelectionDialog dlg( RiaGuiApplication::widgetToUseAsParent() ); - RimObjectiveFunctionTools::configureDialogForObjectiveFunctions( &dlg ); - RimSummaryEnsemble* candidateEnsemble = parentCurveSet()->summaryEnsemble(); - - std::vector candidateAddresses; - for ( auto address : m_objectiveValuesSummaryAddresses().childrenByType() ) - { - candidateAddresses.push_back( address->address() ); - } - - dlg.setEnsembleAndAddresses( candidateEnsemble, candidateAddresses ); - - if ( dlg.exec() == QDialog::Accepted ) - { - auto curveSelection = dlg.curveSelection(); - if ( !curveSelection.empty() ) - { - m_objectiveValuesSummaryAddresses.deleteChildren(); - for ( auto address : curveSelection ) - { - RimSummaryAddress* summaryAddress = new RimSummaryAddress(); - summaryAddress->setAddress( address.summaryAddressY() ); - m_objectiveValuesSummaryAddresses.push_back( summaryAddress ); - } - } - } - updateAddressesUiField(); - m_objectiveValuesSelectSummaryAddressPushButton = false; - parentObjectiveFunction()->onWeightChanged(); - } else if ( changedField == &m_weightValue ) { parentObjectiveFunction()->onWeightChanged(); @@ -191,7 +154,7 @@ void RimCustomObjectiveFunctionWeight::fieldChangedByUi( const caf::PdmFieldHand void RimCustomObjectiveFunctionWeight::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) { uiOrdering.add( &m_objectiveValuesSummaryAddressesUiField ); - uiOrdering.add( &m_objectiveValuesSelectSummaryAddressPushButton, { .newRow = false, .totalColumnSpan = 1, .leftLabelColumnSpan = 0 } ); + uiOrdering.addNewButton( "...", [this]() { selectSummaryAddress(); }, { .newRow = false, .totalColumnSpan = 1, .leftLabelColumnSpan = 0 } ); uiOrdering.add( &m_weightValue ); uiOrdering.add( &m_objectiveFunction ); @@ -215,14 +178,6 @@ void RimCustomObjectiveFunctionWeight::defineEditorAttribute( const caf::PdmFiel myAttr->validator = new QDoubleValidator( 0.0, 9999.0, 2 ); } - else if ( field == &m_objectiveValuesSelectSummaryAddressPushButton ) - { - caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast( attribute ); - if ( attrib ) - { - attrib->m_buttonText = "..."; - } - } } //-------------------------------------------------------------------------------------------------- @@ -261,3 +216,38 @@ void RimCustomObjectiveFunctionWeight::updateAddressesUiField() } m_objectiveValuesSummaryAddressesUiField = QString::fromStdString( RifEclipseSummaryAddress::generateStringFromAddresses( addressVector ) ); } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimCustomObjectiveFunctionWeight::selectSummaryAddress() +{ + RiuSummaryVectorSelectionDialog dlg( nullptr ); + RimObjectiveFunctionTools::configureDialogForObjectiveFunctions( &dlg ); + RimSummaryEnsemble* candidateEnsemble = parentCurveSet()->summaryEnsemble(); + + std::vector candidateAddresses; + for ( auto address : m_objectiveValuesSummaryAddresses().childrenByType() ) + { + candidateAddresses.push_back( address->address() ); + } + + dlg.setEnsembleAndAddresses( candidateEnsemble, candidateAddresses ); + + if ( dlg.exec() == QDialog::Accepted ) + { + auto curveSelection = dlg.curveSelection(); + if ( !curveSelection.empty() ) + { + m_objectiveValuesSummaryAddresses.deleteChildren(); + for ( auto address : curveSelection ) + { + RimSummaryAddress* summaryAddress = new RimSummaryAddress(); + summaryAddress->setAddress( address.summaryAddressY() ); + m_objectiveValuesSummaryAddresses.push_back( summaryAddress ); + } + } + } + updateAddressesUiField(); + parentObjectiveFunction()->onWeightChanged(); +} diff --git a/ApplicationLibCode/ProjectDataModel/RimCustomObjectiveFunctionWeight.h b/ApplicationLibCode/ProjectDataModel/RimCustomObjectiveFunctionWeight.h index f33acfc844..72ede85473 100644 --- a/ApplicationLibCode/ProjectDataModel/RimCustomObjectiveFunctionWeight.h +++ b/ApplicationLibCode/ProjectDataModel/RimCustomObjectiveFunctionWeight.h @@ -66,12 +66,12 @@ class RimCustomObjectiveFunctionWeight : public caf::PdmObject RimCustomObjectiveFunction* parentObjectiveFunction() const; void updateAddressesUiField(); + void selectSummaryAddress(); private: caf::PdmProxyValueField m_title; caf::PdmChildArrayField m_objectiveValuesSummaryAddresses; caf::PdmField m_objectiveValuesSummaryAddressesUiField; - caf::PdmField m_objectiveValuesSelectSummaryAddressPushButton; caf::PdmField> m_objectiveFunction; caf::PdmField m_weightValue; }; diff --git a/ApplicationLibCode/ProjectDataModel/RimEclipseStatisticsCase.cpp b/ApplicationLibCode/ProjectDataModel/RimEclipseStatisticsCase.cpp index d8121daa8c..615500bf69 100644 --- a/ApplicationLibCode/ProjectDataModel/RimEclipseStatisticsCase.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimEclipseStatisticsCase.cpp @@ -45,7 +45,6 @@ #include "RiuMainWindow.h" #include "cafPdmFieldScriptingCapability.h" -#include "cafPdmUiPushButtonEditor.h" #include "cafPdmUiTextEditor.h" #include "cafPdmUiTreeSelectionEditor.h" #include "cafProgressInfo.h" @@ -81,10 +80,6 @@ RimEclipseStatisticsCase::RimEclipseStatisticsCase() { CAF_PDM_InitScriptableObject( "Case Group Statistics", ":/Histogram16x16.png" ); - CAF_PDM_InitFieldNoDefault( &m_calculateEditCommand, "m_editingAllowed", "" ); - caf::PdmUiPushButtonEditor::configureEditorLabelLeft( &m_calculateEditCommand ); - m_calculateEditCommand = false; - CAF_PDM_InitField( &m_selectionSummary, "SelectionSummary", QString( "" ), "Summary of Calculation Setup" ); m_selectionSummary.xmlCapability()->disableIO(); m_selectionSummary.uiCapability()->setUiReadOnly( true ); @@ -491,7 +486,19 @@ void RimEclipseStatisticsCase::defineUiOrdering( QString uiConfigName, caf::PdmU uiOrdering.add( &m_caseUserDescription ); uiOrdering.add( &m_caseId ); - uiOrdering.add( &m_calculateEditCommand ); + QString buttonText = hasComputedStatistics() ? "Edit (Will DELETE current results)" : "Compute"; + uiOrdering.addNewButton( buttonText, + [this]() + { + if ( hasComputedStatistics() ) + { + clearComputedStatistics(); + } + else + { + computeStatisticsAndUpdateViews(); + } + } ); { caf::PdmUiGroup* group = uiOrdering.addNewGroup( "Summary of Calculation Setup" ); @@ -718,19 +725,6 @@ void RimEclipseStatisticsCase::fieldChangedByUi( const caf::PdmFieldHandle* chan { } - if ( &m_calculateEditCommand == changedField ) - { - if ( hasComputedStatistics() ) - { - clearComputedStatistics(); - } - else - { - computeStatisticsAndUpdateViews(); - } - m_calculateEditCommand = false; - } - if ( &m_dataSourceForStatistics == changedField && m_gridCalculation() == nullptr ) { auto calculations = RimProject::current()->gridCalculationCollection()->calculations(); @@ -869,15 +863,6 @@ void RimEclipseStatisticsCase::defineEditorAttribute( const caf::PdmFieldHandle* textEditAttrib->textMode = caf::PdmUiTextEditorAttribute::HTML; } } - - if ( &m_calculateEditCommand == field ) - { - caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast( attribute ); - if ( attrib ) - { - attrib->m_buttonText = hasComputedStatistics() ? "Edit (Will DELETE current results)" : "Compute"; - } - } } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/ProjectDataModel/RimEclipseStatisticsCase.h b/ApplicationLibCode/ProjectDataModel/RimEclipseStatisticsCase.h index 8adea0a7be..a12325a485 100644 --- a/ApplicationLibCode/ProjectDataModel/RimEclipseStatisticsCase.h +++ b/ApplicationLibCode/ProjectDataModel/RimEclipseStatisticsCase.h @@ -75,8 +75,6 @@ class RimEclipseStatisticsCase : public RimEclipseCase RimCaseCollection* parentStatisticsCaseCollection() const; - caf::PdmField m_calculateEditCommand; - void populateResultSelectionAfterLoadingGrid(); void setSourceProperties( RiaDefines::ResultCatType propertyType, const std::vector& propertyNames ); diff --git a/ApplicationLibCode/ProjectDataModel/RimGridCalculation.cpp b/ApplicationLibCode/ProjectDataModel/RimGridCalculation.cpp index 6cc6ff5333..b128afa79c 100644 --- a/ApplicationLibCode/ProjectDataModel/RimGridCalculation.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimGridCalculation.cpp @@ -55,7 +55,6 @@ #include "expressionparser/ExpressionParser.h" #include "cafPdmUiPropertyViewDialog.h" -#include "cafPdmUiPushButtonEditor.h" #include "cafPdmUiTreeSelectionEditor.h" #include @@ -105,9 +104,6 @@ RimGridCalculation::RimGridCalculation() CAF_PDM_InitFieldNoDefault( &m_nonVisibleResultAddress, "NonVisibleResultAddress", "" ); m_nonVisibleResultAddress = new RimEclipseResultAddress; - CAF_PDM_InitField( &m_editNonVisibleResultAddress, "EditNonVisibleResultAddress", false, "Edit" ); - caf::PdmUiPushButtonEditor::configureEditorLabelHidden( &m_editNonVisibleResultAddress ); - CAF_PDM_InitFieldNoDefault( &m_nonVisibleResultText, "NonVisibleResultText", "" ); m_nonVisibleResultText.registerGetMethod( this, &RimGridCalculation::nonVisibleResultAddressText ); m_nonVisibleResultText.uiCapability()->setUiReadOnly( true ); @@ -362,7 +358,7 @@ void RimGridCalculation::defineUiOrdering( QString uiConfigName, caf::PdmUiOrder if ( m_defaultValueType() == RimGridCalculation::DefaultValueType::FROM_PROPERTY ) { filterGroup->add( &m_nonVisibleResultText ); - filterGroup->add( &m_editNonVisibleResultAddress, { .newRow = false } ); + filterGroup->addNewButton( "Edit", [this]() { onEditNonVisibleResultAddressButtonPressed(); }, { .newRow = false } ); } else if ( m_defaultValueType() == RimGridCalculation::DefaultValueType::USER_DEFINED ) filterGroup->add( &m_defaultValue ); @@ -500,43 +496,20 @@ void RimGridCalculation::initAfterRead() //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimGridCalculation::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) +void RimGridCalculation::onEditNonVisibleResultAddressButtonPressed() { - RimUserDefinedCalculation::fieldChangedByUi( changedField, oldValue, newValue ); - - if ( changedField == &m_editNonVisibleResultAddress ) - { - auto eclipseCase = m_nonVisibleResultAddress->eclipseCase(); - if ( !eclipseCase ) eclipseCase = m_destinationCase; - - RimResultSelectionUi selectionUi; - selectionUi.setEclipseResultAddress( eclipseCase, m_nonVisibleResultAddress->resultType(), m_nonVisibleResultAddress->resultName() ); - - caf::PdmUiPropertyViewDialog propertyDialog( nullptr, &selectionUi, "Select Result", "" ); - if ( propertyDialog.exec() == QDialog::Accepted ) - { - m_nonVisibleResultAddress->setEclipseCase( selectionUi.eclipseCase() ); - m_nonVisibleResultAddress->setResultType( selectionUi.resultType() ); - m_nonVisibleResultAddress->setResultName( selectionUi.resultVariable() ); - } - - m_editNonVisibleResultAddress = false; - } -} + auto eclipseCase = m_nonVisibleResultAddress->eclipseCase(); + if ( !eclipseCase ) eclipseCase = m_destinationCase; -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RimGridCalculation::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) -{ - RimUserDefinedCalculation::defineEditorAttribute( field, uiConfigName, attribute ); + RimResultSelectionUi selectionUi; + selectionUi.setEclipseResultAddress( eclipseCase, m_nonVisibleResultAddress->resultType(), m_nonVisibleResultAddress->resultName() ); - if ( field == &m_editNonVisibleResultAddress ) + caf::PdmUiPropertyViewDialog propertyDialog( nullptr, &selectionUi, "Select Result", "" ); + if ( propertyDialog.exec() == QDialog::Accepted ) { - if ( auto attrib = dynamic_cast( attribute ) ) - { - attrib->m_buttonText = "Edit"; - } + m_nonVisibleResultAddress->setEclipseCase( selectionUi.eclipseCase() ); + m_nonVisibleResultAddress->setResultType( selectionUi.resultType() ); + m_nonVisibleResultAddress->setResultName( selectionUi.resultVariable() ); } } diff --git a/ApplicationLibCode/ProjectDataModel/RimGridCalculation.h b/ApplicationLibCode/ProjectDataModel/RimGridCalculation.h index eb50781b28..fc162ceeb6 100644 --- a/ApplicationLibCode/ProjectDataModel/RimGridCalculation.h +++ b/ApplicationLibCode/ProjectDataModel/RimGridCalculation.h @@ -131,12 +131,11 @@ class RimGridCalculation : public RimUserDefinedCalculation void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; void initAfterRead() override; - void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; - void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; private: void onVariableUpdated( const SignalEmitter* emitter ); bool allSourceCasesAreEqualToDestinationCase() const; + void onEditNonVisibleResultAddressButtonPressed(); static std::pair createStatisticsText( const std::vector>& values ); @@ -154,7 +153,6 @@ class RimGridCalculation : public RimUserDefinedCalculation caf::PdmProxyValueField m_nonVisibleResultText; caf::PdmChildField m_nonVisibleResultAddress; - caf::PdmField m_editNonVisibleResultAddress; caf::PdmField m_applyToAllCases_OBSOLETE; diff --git a/ApplicationLibCode/ProjectDataModel/RimRegularLegendConfig.cpp b/ApplicationLibCode/ProjectDataModel/RimRegularLegendConfig.cpp index d628fbc423..302b77492c 100644 --- a/ApplicationLibCode/ProjectDataModel/RimRegularLegendConfig.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimRegularLegendConfig.cpp @@ -61,7 +61,6 @@ #include "cafPdmFieldCvfMat4d.h" #include "cafPdmUiComboBoxEditor.h" #include "cafPdmUiLineEditor.h" -#include "cafPdmUiPushButtonEditor.h" #include "cafPdmUiToolButtonEditor.h" #include "cvfMath.h" @@ -203,9 +202,6 @@ RimRegularLegendConfig::RimRegularLegendConfig() m_scalarMapperLegend = new caf::OverlayScalarMapperLegend( standardFont ); m_categoryLegend = new caf::CategoryLegend( standardFont, m_categoryMapper.p() ); - CAF_PDM_InitField( &m_resetUserDefinedValuesButton, "ResetDefaultValues", false, "Reset Default Values" ); - caf::PdmUiPushButtonEditor::configureEditorLabelHidden( &m_resetUserDefinedValuesButton ); - CAF_PDM_InitField( &m_centerLegendAroundZero, "CenterLegendAroundZero", false, "Center Legend Around Zero" ); updateFieldVisibility(); @@ -282,13 +278,6 @@ void RimRegularLegendConfig::fieldChangedByUi( const caf::PdmFieldHandle* change updateCategoryItems(); } - if ( changedField == &m_resetUserDefinedValuesButton ) - { - resetUserDefinedValues(); - - m_resetUserDefinedValuesButton = false; - } - updateLegend(); auto view = firstAncestorOrThisOfType(); @@ -375,10 +364,6 @@ void RimRegularLegendConfig::sendChangedSignal( const caf::PdmFieldHandle* chang { changed.send( ChangeType::COLORS ); } - else if ( changedField == &m_resetUserDefinedValuesButton ) - { - changed.send( ChangeType::ALL ); - } } auto computeAdjustedMinMax = []( double minimum, double maximum, double precision ) -> std::pair @@ -686,14 +671,6 @@ caf::PdmFieldHandle* RimRegularLegendConfig::objectToggleField() //-------------------------------------------------------------------------------------------------- void RimRegularLegendConfig::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) { - if ( &m_resetUserDefinedValuesButton == field ) - { - caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast( attribute ); - if ( attrib ) - { - attrib->m_buttonText = "Reset User Defined Values"; - } - } } //-------------------------------------------------------------------------------------------------- @@ -1309,7 +1286,12 @@ void RimRegularLegendConfig::defineUiOrdering( QString uiConfigName, caf::PdmUiO mappingGr->add( &m_categoryColorMode ); mappingGr->add( &m_centerLegendAroundZero ); - uiOrdering.add( &m_resetUserDefinedValuesButton ); + uiOrdering.addNewButton( "Reset User Defined Values", + [this]() + { + resetUserDefinedValues(); + changed.send( RimLegendConfigChangeType::ALL ); + } ); } updateFieldVisibility(); diff --git a/ApplicationLibCode/ProjectDataModel/RimRegularLegendConfig.h b/ApplicationLibCode/ProjectDataModel/RimRegularLegendConfig.h index 37a07eae3e..14dd4ae5de 100644 --- a/ApplicationLibCode/ProjectDataModel/RimRegularLegendConfig.h +++ b/ApplicationLibCode/ProjectDataModel/RimRegularLegendConfig.h @@ -239,7 +239,6 @@ class RimRegularLegendConfig : public RimLegendConfig caf::PdmField> m_colorRangeMode_OBSOLETE; caf::PdmField> m_mappingMode; caf::PdmField> m_categoryColorMode; - caf::PdmField m_resetUserDefinedValuesButton; caf::PdmField m_centerLegendAroundZero; caf::PdmPtrField m_colorLegend; diff --git a/ApplicationLibCode/ProjectDataModel/RimResultSelectionUi.cpp b/ApplicationLibCode/ProjectDataModel/RimResultSelectionUi.cpp index 71e9f5c5a2..3a38424b5e 100644 --- a/ApplicationLibCode/ProjectDataModel/RimResultSelectionUi.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimResultSelectionUi.cpp @@ -22,7 +22,6 @@ #include "RimEclipseCaseTools.h" #include "RimEclipseResultDefinition.h" -#include "cafPdmUiPushButtonEditor.h" #include "cafPdmUiTableViewEditor.h" CAF_PDM_SOURCE_INIT( RimResultSelectionUi, "RimResultSelectionUi" ); diff --git a/ApplicationLibCode/ProjectDataModel/RimSimWellInViewCollection.cpp b/ApplicationLibCode/ProjectDataModel/RimSimWellInViewCollection.cpp index e5743343b7..8122958bbc 100644 --- a/ApplicationLibCode/ProjectDataModel/RimSimWellInViewCollection.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimSimWellInViewCollection.cpp @@ -47,7 +47,6 @@ #include "RivReservoirViewPartMgr.h" #include "cafPdmUiCheckBoxTristateEditor.h" -#include "cafPdmUiPushButtonEditor.h" #include "cafPdmUiTreeOrdering.h" #include "cafPdmUiTreeSelectionEditor.h" diff --git a/ApplicationLibCode/ProjectDataModel/RimTernaryLegendConfig.cpp b/ApplicationLibCode/ProjectDataModel/RimTernaryLegendConfig.cpp index 02fca9bb7d..accca9330b 100644 --- a/ApplicationLibCode/ProjectDataModel/RimTernaryLegendConfig.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimTernaryLegendConfig.cpp @@ -32,7 +32,6 @@ #include "RivTernarySaturationOverlayItem.h" #include "RivTernaryScalarMapper.h" -#include "cafPdmUiPushButtonEditor.h" #include "cafPdmUiTextEditor.h" #include "cvfqtUtils.h" @@ -58,18 +57,6 @@ RimTernaryLegendConfig::RimTernaryLegendConfig() "Switches between automatic and user defined range on the legend", "" ); - CAF_PDM_InitFieldNoDefault( &applyLocalMinMax, "m_applyLocalMinMax", "" ); - caf::PdmUiPushButtonEditor::configureEditorLabelLeft( &applyLocalMinMax ); - applyLocalMinMax = false; - - CAF_PDM_InitFieldNoDefault( &applyGlobalMinMax, "m_applyGlobalMinMax", "" ); - caf::PdmUiPushButtonEditor::configureEditorLabelLeft( &applyGlobalMinMax ); - applyGlobalMinMax = false; - - CAF_PDM_InitFieldNoDefault( &applyFullRangeMinMax, "m_applyFullRangeMinMax", "" ); - caf::PdmUiPushButtonEditor::configureEditorLabelLeft( &applyFullRangeMinMax ); - applyFullRangeMinMax = false; - CAF_PDM_InitFieldNoDefault( &ternaryRangeSummary, "ternaryRangeSummary", "Range summary" ); ternaryRangeSummary.uiCapability()->setUiEditorTypeName( caf::PdmUiTextEditor::uiEditorTypeName() ); ternaryRangeSummary.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::LabelPosition::TOP ); @@ -106,40 +93,6 @@ RimTernaryLegendConfig::~RimTernaryLegendConfig() //-------------------------------------------------------------------------------------------------- void RimTernaryLegendConfig::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) { - if ( changedField == &applyLocalMinMax ) - { - userDefinedMaxValueSoil = m_localAutoMax[TERNARY_SOIL_IDX]; - userDefinedMinValueSoil = m_localAutoMin[TERNARY_SOIL_IDX]; - userDefinedMaxValueSgas = m_localAutoMax[TERNARY_SGAS_IDX]; - userDefinedMinValueSgas = m_localAutoMin[TERNARY_SGAS_IDX]; - userDefinedMaxValueSwat = m_localAutoMax[TERNARY_SWAT_IDX]; - userDefinedMinValueSwat = m_localAutoMin[TERNARY_SWAT_IDX]; - - applyLocalMinMax = false; - } - else if ( changedField == &applyGlobalMinMax ) - { - userDefinedMaxValueSoil = m_globalAutoMax[TERNARY_SOIL_IDX]; - userDefinedMinValueSoil = m_globalAutoMin[TERNARY_SOIL_IDX]; - userDefinedMaxValueSgas = m_globalAutoMax[TERNARY_SGAS_IDX]; - userDefinedMinValueSgas = m_globalAutoMin[TERNARY_SGAS_IDX]; - userDefinedMaxValueSwat = m_globalAutoMax[TERNARY_SWAT_IDX]; - userDefinedMinValueSwat = m_globalAutoMin[TERNARY_SWAT_IDX]; - - applyGlobalMinMax = false; - } - else if ( changedField == &applyFullRangeMinMax ) - { - userDefinedMaxValueSoil = 1.0; - userDefinedMinValueSoil = 0.0; - userDefinedMaxValueSgas = 1.0; - userDefinedMinValueSgas = 0.0; - userDefinedMaxValueSwat = 1.0; - userDefinedMinValueSwat = 0.0; - - applyFullRangeMinMax = false; - } - updateLabelText(); updateLegend(); @@ -276,9 +229,36 @@ void RimTernaryLegendConfig::defineUiOrdering( QString uiConfigName, caf::PdmUiO ternaryGroup->add( &userDefinedMaxValueSoil ); } - ternaryGroupContainer->add( &applyLocalMinMax ); - ternaryGroupContainer->add( &applyGlobalMinMax ); - ternaryGroupContainer->add( &applyFullRangeMinMax ); + ternaryGroupContainer->addNewButton( "Apply local min/max values", + [this]() + { + userDefinedMaxValueSoil = m_localAutoMax[TERNARY_SOIL_IDX]; + userDefinedMinValueSoil = m_localAutoMin[TERNARY_SOIL_IDX]; + userDefinedMaxValueSgas = m_localAutoMax[TERNARY_SGAS_IDX]; + userDefinedMinValueSgas = m_localAutoMin[TERNARY_SGAS_IDX]; + userDefinedMaxValueSwat = m_localAutoMax[TERNARY_SWAT_IDX]; + userDefinedMinValueSwat = m_localAutoMin[TERNARY_SWAT_IDX]; + } ); + ternaryGroupContainer->addNewButton( "Apply global min/max values", + [this]() + { + userDefinedMaxValueSoil = m_globalAutoMax[TERNARY_SOIL_IDX]; + userDefinedMinValueSoil = m_globalAutoMin[TERNARY_SOIL_IDX]; + userDefinedMaxValueSgas = m_globalAutoMax[TERNARY_SGAS_IDX]; + userDefinedMinValueSgas = m_globalAutoMin[TERNARY_SGAS_IDX]; + userDefinedMaxValueSwat = m_globalAutoMax[TERNARY_SWAT_IDX]; + userDefinedMinValueSwat = m_globalAutoMin[TERNARY_SWAT_IDX]; + } ); + ternaryGroupContainer->addNewButton( "Apply full range", + [this]() + { + userDefinedMaxValueSoil = 1.0; + userDefinedMinValueSoil = 0.0; + userDefinedMaxValueSgas = 1.0; + userDefinedMinValueSgas = 0.0; + userDefinedMaxValueSwat = 1.0; + userDefinedMinValueSwat = 0.0; + } ); } else { @@ -310,30 +290,6 @@ void RimTernaryLegendConfig::setTitle( const QString& title ) //-------------------------------------------------------------------------------------------------- void RimTernaryLegendConfig::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) { - if ( &applyLocalMinMax == field ) - { - caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast( attribute ); - if ( attrib ) - { - attrib->m_buttonText = "Apply local min/max values"; - } - } - else if ( &applyGlobalMinMax == field ) - { - caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast( attribute ); - if ( attrib ) - { - attrib->m_buttonText = "Apply global min/max values"; - } - } - else if ( &applyFullRangeMinMax == field ) - { - caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast( attribute ); - if ( attrib ) - { - attrib->m_buttonText = "Apply full range"; - } - } } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/ProjectDataModel/RimTernaryLegendConfig.h b/ApplicationLibCode/ProjectDataModel/RimTernaryLegendConfig.h index 1dc7392e33..aebf204ee6 100644 --- a/ApplicationLibCode/ProjectDataModel/RimTernaryLegendConfig.h +++ b/ApplicationLibCode/ProjectDataModel/RimTernaryLegendConfig.h @@ -85,9 +85,6 @@ class RimTernaryLegendConfig : public RimLegendConfig caf::PdmField userDefinedMaxValueSwat; caf::PdmField userDefinedMinValueSwat; - caf::PdmField applyLocalMinMax; - caf::PdmField applyGlobalMinMax; - caf::PdmField applyFullRangeMinMax; caf::PdmField ternaryRangeSummary; caf::PdmField m_showLegend; diff --git a/ApplicationLibCode/ProjectDataModel/RimUserDefinedCalculation.cpp b/ApplicationLibCode/ProjectDataModel/RimUserDefinedCalculation.cpp index 46ba4fad41..b1d4ff0e19 100644 --- a/ApplicationLibCode/ProjectDataModel/RimUserDefinedCalculation.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimUserDefinedCalculation.cpp @@ -30,7 +30,6 @@ #include "cafPdmUiLabelEditor.h" #include "cafPdmUiLineEditor.h" -#include "cafPdmUiPushButtonEditor.h" #include "cafPdmUiTableViewEditor.h" #include "cafPdmUiTextEditor.h" @@ -53,9 +52,6 @@ RimUserDefinedCalculation::RimUserDefinedCalculation() CAF_PDM_InitField( &m_expression, "Expression", QString( "" ), "" ); m_expression.uiCapability()->setUiEditorTypeName( caf::PdmUiTextEditor::uiEditorTypeName() ); - CAF_PDM_InitFieldNoDefault( &m_helpButton, "HelpButton", "" ); - caf::PdmUiPushButtonEditor::configureEditorLabelHidden( &m_helpButton ); - CAF_PDM_InitFieldNoDefault( &m_helpText, "Label", "Use the right-click menu inside the text area for quick access to operators and " @@ -305,16 +301,6 @@ void RimUserDefinedCalculation::attachToWidget() //-------------------------------------------------------------------------------------------------- void RimUserDefinedCalculation::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) { - if ( changedField == &m_helpButton ) - { - m_helpButton = false; - - QString urlString = "https://resinsight.org/calculated-data/calculatorexpressions/"; - RiaNetworkTools::openUrl( urlString ); - - return; - } - m_isDirty = true; PdmObject::fieldChangedByUi( changedField, oldValue, newValue ); @@ -325,7 +311,12 @@ void RimUserDefinedCalculation::fieldChangedByUi( const caf::PdmFieldHandle* cha //-------------------------------------------------------------------------------------------------- void RimUserDefinedCalculation::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) { - uiOrdering.add( &m_helpButton ); + uiOrdering.addNewButton( "Open Help Page", + []() + { + QString urlString = "https://resinsight.org/calculated-data/calculatorexpressions/"; + RiaNetworkTools::openUrl( urlString ); + } ); uiOrdering.add( &m_description ); uiOrdering.add( &m_expression ); uiOrdering.add( &m_helpText ); @@ -399,14 +390,6 @@ void RimUserDefinedCalculation::defineEditorAttribute( const caf::PdmFieldHandle myAttr->enableDropTarget = true; } } - else if ( field == &m_helpButton ) - { - auto* attrib = dynamic_cast( attribute ); - if ( attrib ) - { - attrib->m_buttonText = "Open Help Page"; - } - } else if ( field == &m_helpText ) { auto* attrib = dynamic_cast( attribute ); diff --git a/ApplicationLibCode/ProjectDataModel/RimUserDefinedCalculation.h b/ApplicationLibCode/ProjectDataModel/RimUserDefinedCalculation.h index f0085f5a48..35f7698172 100644 --- a/ApplicationLibCode/ProjectDataModel/RimUserDefinedCalculation.h +++ b/ApplicationLibCode/ProjectDataModel/RimUserDefinedCalculation.h @@ -88,7 +88,6 @@ class RimUserDefinedCalculation : public caf::PdmObject protected: caf::PdmField m_description; caf::PdmField m_expression; - caf::PdmField m_helpButton; caf::PdmField m_helpText; caf::PdmField m_unit; diff --git a/ApplicationLibCode/ProjectDataModel/RimWellTargetMapping.cpp b/ApplicationLibCode/ProjectDataModel/RimWellTargetMapping.cpp index ed4a088cae..b510536a9b 100644 --- a/ApplicationLibCode/ProjectDataModel/RimWellTargetMapping.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimWellTargetMapping.cpp @@ -129,10 +129,6 @@ RimWellTargetMapping::RimWellTargetMapping() CAF_PDM_InitField( &m_transmissibility, "Transmissibility", 0.0, "Transmissibility" ); m_transmissibility.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() ); - CAF_PDM_InitField( &m_resetDefaultButton, "ResetDefaultButton", true, "Reset to Default" ); - caf::PdmUiPushButtonEditor::configureEditorLabelHidden( &m_resetDefaultButton ); - m_resetDefaultButton.xmlCapability()->disableIO(); - CAF_PDM_InitField( &m_maxIterations, "Iterations", 100000, "Max Iterations" ); CAF_PDM_InitField( &m_maxNumTargets, "MaxNumTargets", 5, "Maximum Number of Well Targets" ); @@ -147,10 +143,6 @@ RimWellTargetMapping::RimWellTargetMapping() CAF_PDM_InitField( &m_cellCountJ, "CellCountJ", 100, "Cell Count J" ); CAF_PDM_InitField( &m_cellCountK, "CellCountK", 10, "Cell Count K" ); - CAF_PDM_InitField( &m_generateButton, "GenerateButton", true, "Generate" ); - caf::PdmUiPushButtonEditor::configureEditorLabelHidden( &m_generateButton ); - m_generateButton.xmlCapability()->disableIO(); - CAF_PDM_InitFieldNoDefault( &m_filterView, "FilterView", "Filter By View" ); CAF_PDM_InitFieldNoDefault( &m_ensembleStatisticsCase, "EnsembleStatisticsCase", "Ensemble Statistics Case" ); @@ -191,41 +183,6 @@ RimWellTargetMapping::~RimWellTargetMapping() void RimWellTargetMapping::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) { updateAllBoundaries(); - - if ( changedField == &m_generateButton ) - { - auto hasEnsembleParent = firstAncestorOrThisOfType() != nullptr; - if ( hasEnsembleParent ) - { - generateEnsembleStatistics(); - } - else if ( auto eclipseCase = firstCase() ) - { - generateCandidates( eclipseCase ); - if ( auto views = eclipseCase->reservoirViews(); !views.empty() ) - { - auto eclipseView = views.front(); - eclipseView->cellResult()->setResultType( RiaDefines::ResultCatType::GENERATED ); - eclipseView->cellResult()->setResultVariable( RigWellTargetMapping::wellTargetResultName() ); - eclipseView->cellResult()->updateConnectedEditors(); - - if ( eclipseView->eclipsePropertyFilterCollection()->propertyFilters().empty() ) - { - eclipseView->eclipsePropertyFilterCollection()->addFilterLinkedToCellResult(); - eclipseView->eclipsePropertyFilterCollection()->updateConnectedEditors(); - } - - if ( RiaGuiApplication::isRunning() || RiuMainWindow::instance() ) - { - RiuMainWindow::instance()->selectAsCurrentItem( eclipseView->cellResult() ); - } - } - } - } - else if ( changedField == &m_resetDefaultButton ) - { - resetMinimumCellValuesToDefault(); - } } //-------------------------------------------------------------------------------------------------- @@ -385,22 +342,6 @@ void RimWellTargetMapping::defineEditorAttribute( const caf::PdmFieldHandle* fie } } - if ( field == &m_generateButton ) - { - if ( auto attrib = dynamic_cast( attribute ) ) - { - attrib->m_buttonText = "Generate"; - } - } - - if ( field == &m_resetDefaultButton ) - { - if ( auto attrib = dynamic_cast( attribute ) ) - { - attrib->m_buttonText = "Reset to Default"; - } - } - if ( ( &m_userDefinedFloodingOil == field ) || ( &m_userDefinedFloodingGas == field ) ) { if ( auto myAttr = dynamic_cast( attribute ) ) @@ -526,7 +467,7 @@ void RimWellTargetMapping::defineUiOrdering( QString uiConfigName, caf::PdmUiOrd minimumCellValuesGroup->add( &m_pressure ); minimumCellValuesGroup->add( &m_permeability ); minimumCellValuesGroup->add( &m_transmissibility ); - minimumCellValuesGroup->add( &m_resetDefaultButton ); + minimumCellValuesGroup->addNewButton( "Reset to Default", [this]() { resetMinimumCellValuesToDefault(); } ); if ( hasEnsembleParent ) { @@ -540,7 +481,7 @@ void RimWellTargetMapping::defineUiOrdering( QString uiConfigName, caf::PdmUiOrd advancedGroup->add( &m_maxNumTargets ); advancedGroup->setCollapsedByDefault(); - uiOrdering.add( &m_generateButton ); + uiOrdering.addNewButton( "Generate", [this]() { onGenerateButtonClicked(); } ); uiOrdering.skipRemainingFields(); @@ -691,6 +632,40 @@ void RimWellTargetMapping::resetMinimumCellValuesToDefault() m_transmissibility = std::clamp( m_defaultTransmissibility, std::max( m_minimumTransmissibility, 0.1 ), m_maximumTransmissibility ); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimWellTargetMapping::onGenerateButtonClicked() +{ + auto hasEnsembleParent = firstAncestorOrThisOfType() != nullptr; + if ( hasEnsembleParent ) + { + generateEnsembleStatistics(); + } + else if ( auto eclipseCase = firstCase() ) + { + generateCandidates( eclipseCase ); + if ( auto views = eclipseCase->reservoirViews(); !views.empty() ) + { + auto eclipseView = views.front(); + eclipseView->cellResult()->setResultType( RiaDefines::ResultCatType::GENERATED ); + eclipseView->cellResult()->setResultVariable( RigWellTargetMapping::wellTargetResultName() ); + eclipseView->cellResult()->updateConnectedEditors(); + + if ( eclipseView->eclipsePropertyFilterCollection()->propertyFilters().empty() ) + { + eclipseView->eclipsePropertyFilterCollection()->addFilterLinkedToCellResult(); + eclipseView->eclipsePropertyFilterCollection()->updateConnectedEditors(); + } + + if ( RiaGuiApplication::isRunning() || RiuMainWindow::instance() ) + { + RiuMainWindow::instance()->selectAsCurrentItem( eclipseView->cellResult() ); + } + } + } +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/ProjectDataModel/RimWellTargetMapping.h b/ApplicationLibCode/ProjectDataModel/RimWellTargetMapping.h index 8e1e4d81f1..12175c727c 100644 --- a/ApplicationLibCode/ProjectDataModel/RimWellTargetMapping.h +++ b/ApplicationLibCode/ProjectDataModel/RimWellTargetMapping.h @@ -71,6 +71,7 @@ class RimWellTargetMapping : public caf::PdmObject std::vector getVisibilityFilter() const; void resetMinimumCellValuesToDefault(); + void onGenerateButtonClicked(); caf::PdmField m_timeStep; @@ -88,7 +89,6 @@ class RimWellTargetMapping : public caf::PdmObject caf::PdmField m_pressure; caf::PdmField m_permeability; caf::PdmField m_transmissibility; - caf::PdmField m_resetDefaultButton; caf::PdmField m_maxIterations; caf::PdmField m_maxNumTargets; @@ -99,8 +99,6 @@ class RimWellTargetMapping : public caf::PdmObject caf::PdmField m_cellCountJ; caf::PdmField m_cellCountK; - caf::PdmField m_generateButton; - caf::PdmPtrField m_filterView; caf::PdmChildField m_ensembleStatisticsCase;