mirror of
https://github.com/OPM/ResInsight.git
synced 2026-08-26 21:27:15 -05:00
Replaces push buttons with addNewButton
Removes the explicit usage of PdmUiPushButtonEditor and associated fields. Replaces these with the more flexible addNewButton function in PdmUiOrdering. This provides a more streamlined way to add buttons to the UI.
This commit is contained in:
@@ -55,7 +55,6 @@
|
||||
#include "expressionparser/ExpressionParser.h"
|
||||
|
||||
#include "cafPdmUiPropertyViewDialog.h"
|
||||
#include "cafPdmUiPushButtonEditor.h"
|
||||
#include "cafPdmUiTreeSelectionEditor.h"
|
||||
|
||||
#include <QCheckBox>
|
||||
@@ -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 );
|
||||
auto eclipseCase = m_nonVisibleResultAddress->eclipseCase();
|
||||
if ( !eclipseCase ) eclipseCase = m_destinationCase;
|
||||
|
||||
if ( changedField == &m_editNonVisibleResultAddress )
|
||||
RimResultSelectionUi selectionUi;
|
||||
selectionUi.setEclipseResultAddress( eclipseCase, m_nonVisibleResultAddress->resultType(), m_nonVisibleResultAddress->resultName() );
|
||||
|
||||
caf::PdmUiPropertyViewDialog propertyDialog( nullptr, &selectionUi, "Select Result", "" );
|
||||
if ( propertyDialog.exec() == QDialog::Accepted )
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGridCalculation::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute )
|
||||
{
|
||||
RimUserDefinedCalculation::defineEditorAttribute( field, uiConfigName, attribute );
|
||||
|
||||
if ( field == &m_editNonVisibleResultAddress )
|
||||
{
|
||||
if ( auto attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*>( attribute ) )
|
||||
{
|
||||
attrib->m_buttonText = "Edit";
|
||||
}
|
||||
m_nonVisibleResultAddress->setEclipseCase( selectionUi.eclipseCase() );
|
||||
m_nonVisibleResultAddress->setResultType( selectionUi.resultType() );
|
||||
m_nonVisibleResultAddress->setResultName( selectionUi.resultVariable() );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -131,12 +131,11 @@ protected:
|
||||
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
|
||||
QList<caf::PdmOptionItemInfo> 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<bool, QStringList> createStatisticsText( const std::vector<std::vector<double>>& values );
|
||||
|
||||
@@ -154,7 +153,6 @@ private:
|
||||
|
||||
caf::PdmProxyValueField<QString> m_nonVisibleResultText;
|
||||
caf::PdmChildField<RimEclipseResultAddress*> m_nonVisibleResultAddress;
|
||||
caf::PdmField<bool> m_editNonVisibleResultAddress;
|
||||
|
||||
caf::PdmField<bool> m_applyToAllCases_OBSOLETE;
|
||||
|
||||
|
||||
@@ -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<caf::PdmUiPushButtonEditorAttribute*>( attribute );
|
||||
if ( attrib )
|
||||
{
|
||||
attrib->m_buttonText = "Open Help Page";
|
||||
}
|
||||
}
|
||||
else if ( field == &m_helpText )
|
||||
{
|
||||
auto* attrib = dynamic_cast<caf::PdmUiLabelEditorAttribute*>( attribute );
|
||||
|
||||
@@ -88,7 +88,6 @@ protected:
|
||||
protected:
|
||||
caf::PdmField<QString> m_description;
|
||||
caf::PdmField<QString> m_expression;
|
||||
caf::PdmField<bool> m_helpButton;
|
||||
caf::PdmField<QString> m_helpText;
|
||||
caf::PdmField<QString> m_unit;
|
||||
|
||||
|
||||
@@ -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<RimEclipseCaseEnsemble>() != 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<caf::PdmUiPushButtonEditorAttribute*>( attribute ) )
|
||||
{
|
||||
attrib->m_buttonText = "Generate";
|
||||
}
|
||||
}
|
||||
|
||||
if ( field == &m_resetDefaultButton )
|
||||
{
|
||||
if ( auto attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*>( attribute ) )
|
||||
{
|
||||
attrib->m_buttonText = "Reset to Default";
|
||||
}
|
||||
}
|
||||
|
||||
if ( ( &m_userDefinedFloodingOil == field ) || ( &m_userDefinedFloodingGas == field ) )
|
||||
{
|
||||
if ( auto myAttr = dynamic_cast<caf::PdmUiDoubleSliderEditorAttribute*>( 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<RimEclipseCaseEnsemble>() != 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() );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -71,6 +71,7 @@ private:
|
||||
std::vector<double> getVisibilityFilter() const;
|
||||
|
||||
void resetMinimumCellValuesToDefault();
|
||||
void onGenerateButtonClicked();
|
||||
|
||||
caf::PdmField<int> m_timeStep;
|
||||
|
||||
@@ -88,7 +89,6 @@ private:
|
||||
caf::PdmField<double> m_pressure;
|
||||
caf::PdmField<double> m_permeability;
|
||||
caf::PdmField<double> m_transmissibility;
|
||||
caf::PdmField<bool> m_resetDefaultButton;
|
||||
|
||||
caf::PdmField<int> m_maxIterations;
|
||||
caf::PdmField<int> m_maxNumTargets;
|
||||
@@ -99,8 +99,6 @@ private:
|
||||
caf::PdmField<int> m_cellCountJ;
|
||||
caf::PdmField<int> m_cellCountK;
|
||||
|
||||
caf::PdmField<bool> m_generateButton;
|
||||
|
||||
caf::PdmPtrField<RimEclipseView*> m_filterView;
|
||||
|
||||
caf::PdmChildField<RimEclipseCase*> m_ensembleStatisticsCase;
|
||||
|
||||
Reference in New Issue
Block a user