Release adjustments

* Use appendMenuItems instead of ContextCommandBuilder
* Specify RimEclipseCaseCollection menu features once
* Add function to enable up/down arrows for combo box
* Guard crash when closing project
* Improve UI for grid case ensemble
- Create a view for the first case in the ensemble
- Show case name in view title
- Enable up/down buttons to Eclipse case
* Make sure 3D views in grid ensemble are created on project load
This commit is contained in:
Magne Sjaastad
2024-09-16 09:49:22 +02:00
committed by GitHub
parent 1f80503f01
commit 9d66e6195e
22 changed files with 189 additions and 70 deletions

View File

@@ -44,6 +44,7 @@
#include "RimWellPlotTools.h"
#include "RiuMatrixPlotWidget.h"
#include "RiuTools.h"
#include "cafPdmUiComboBoxEditor.h"
#include "cafPdmUiPushButtonEditor.h"
@@ -530,13 +531,7 @@ void RimWellConnectivityTable::defineEditorAttribute( const caf::PdmFieldHandle*
}
if ( field == &m_selectedTimeStep || field == &m_selectedFromTimeStep || field == &m_selectedToTimeStep )
{
auto* attrib = dynamic_cast<caf::PdmUiComboBoxEditorAttribute*>( attribute );
if ( attrib )
{
attrib->nextIcon = QIcon( ":/ComboBoxDown.svg" );
attrib->previousIcon = QIcon( ":/ComboBoxUp.svg" );
attrib->showPreviousAndNextButtons = true;
}
RiuTools::enableUpDownArrowsForComboBox( attribute );
}
}

View File

@@ -114,9 +114,10 @@ public:
virtual RimCase* ownerCase() const = 0;
RiuViewer* viewer() const;
void setName( const QString& name );
QString name() const;
QString autoName() const;
void setName( const QString& name );
QString name() const;
QString autoName() const;
RimViewNameConfig* nameConfig() const;
virtual RiaDefines::View3dContent viewContent() const = 0;
@@ -200,10 +201,9 @@ public:
protected:
static void removeModelByName( cvf::Scene* scene, const cvf::String& modelName );
virtual void setDefaultView();
cvf::Mat4d cameraPosition() const;
cvf::Vec3d cameraPointOfInterest() const;
RimViewNameConfig* nameConfig() const;
virtual void setDefaultView();
cvf::Mat4d cameraPosition() const;
cvf::Vec3d cameraPointOfInterest() const;
void disableGridBoxField();
void disablePerspectiveProjectionField();

View File

@@ -46,8 +46,6 @@
#include "RimCustomObjectiveFunction.h"
#include "RimCustomObjectiveFunctionCollection.h"
#include "RimEclipseCase.h"
#include "RimEclipseCaseCollection.h"
#include "RimEclipseCaseEnsemble.h"
#include "RimEclipseCellColors.h"
#include "RimEclipseContourMapViewCollection.h"
#include "RimEclipseFaultColors.h"
@@ -211,18 +209,7 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
if ( uiItems.size() == 1 )
{
if ( dynamic_cast<RimEclipseCaseCollection*>( firstUiItem ) )
{
menuBuilder.subMenuStart( "Import" );
menuBuilder << "RicImportEclipseCaseFeature";
menuBuilder << "RicImportEclipseCasesFeature";
menuBuilder << "RicImportInputEclipseCaseFeature";
menuBuilder << "RicCreateGridCaseGroupFromFilesFeature";
menuBuilder << "RicCreateGridCaseEnsemblesFromFilesFeature";
menuBuilder.subMenuEnd();
menuBuilder << "RicEclipseCaseNewGroupFeature";
}
else if ( dynamic_cast<RimGeoMechView*>( firstUiItem ) )
if ( dynamic_cast<RimGeoMechView*>( firstUiItem ) )
{
menuBuilder << "RicPasteGeoMechViewsFeature";
menuBuilder << "Separator";
@@ -264,10 +251,6 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
menuBuilder << "Separator";
menuBuilder << "RicNewStatisticsCaseFeature";
}
else if ( dynamic_cast<RimEclipseCaseEnsemble*>( firstUiItem ) )
{
menuBuilder << "RicNewViewForGridEnsembleFeature";
}
else if ( dynamic_cast<RimGeoMechModels*>( firstUiItem ) )
{
menuBuilder << "RicImportGeoMechCaseFeature";

View File

@@ -33,6 +33,8 @@
#include "RimIdenticalGridCaseGroup.h"
#include "RimProject.h"
#include "cafCmdFeatureMenuBuilder.h"
CAF_PDM_SOURCE_INIT( RimEclipseCaseCollection, "ResInsightAnalysisModels" );
//--------------------------------------------------------------------------------------------------
///
@@ -110,6 +112,17 @@ void RimEclipseCaseCollection::removeCaseFromAllGroups( RimEclipseCase* reservoi
cases().removeChild( reservoir );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseCaseCollection::appendMenuItems( caf::CmdFeatureMenuBuilder& menuBuilder ) const
{
menuBuilder.subMenuStart( "Import" );
menuBuilder << importMenuFeatureNames();
menuBuilder.subMenuEnd();
menuBuilder << "RicEclipseCaseNewGroupFeature";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -174,3 +187,17 @@ void RimEclipseCaseCollection::recomputeStatisticsForAllCaseGroups()
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QStringList RimEclipseCaseCollection::importMenuFeatureNames()
{
return { "RicImportEclipseCaseFeature",
"RicImportEclipseCasesFeature",
"RicImportEclipseCaseTimeStepFilterFeature",
"RicImportInputEclipseCaseFeature",
"Separator",
"RicCreateGridCaseGroupFromFilesFeature",
"RicCreateGridCaseEnsemblesFromFilesFeature" };
}

View File

@@ -59,6 +59,11 @@ public:
void recomputeStatisticsForAllCaseGroups();
static QStringList importMenuFeatureNames();
private:
void appendMenuItems( caf::CmdFeatureMenuBuilder& menuBuilder ) const override;
private:
RigMainGrid* registerCaseInGridCollection( RimEclipseCase* rimEclipseCase );
cvf::ref<RigGridManager> m_gridCollection;

View File

@@ -23,6 +23,7 @@
#include "RimEclipseView.h"
#include "RimEclipseViewCollection.h"
#include "cafCmdFeatureMenuBuilder.h"
#include "cafPdmFieldScriptingCapability.h"
#include "cafPdmObjectScriptingCapability.h"
@@ -104,6 +105,8 @@ bool RimEclipseCaseEnsemble::contains( RimEclipseCase* reservoir ) const
//--------------------------------------------------------------------------------------------------
std::vector<RimEclipseCase*> RimEclipseCaseEnsemble::cases() const
{
if ( !m_caseCollection ) return {};
return m_caseCollection->reservoirs.childrenByType();
}
@@ -160,6 +163,14 @@ void RimEclipseCaseEnsemble::fieldChangedByUi( const caf::PdmFieldHandle* change
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseCaseEnsemble::appendMenuItems( caf::CmdFeatureMenuBuilder& menuBuilder ) const
{
menuBuilder << "RicNewViewForGridEnsembleFeature";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -57,6 +57,7 @@ public:
protected:
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override;
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
void appendMenuItems( caf::CmdFeatureMenuBuilder& menuBuilder ) const override;
private:
caf::PdmField<int> m_groupId;

View File

@@ -101,6 +101,7 @@
#include "Riu3dSelectionManager.h"
#include "RiuMainWindow.h"
#include "RiuTools.h"
#include "RiuViewer.h"
#include "RivReservoirSimWellsPartMgr.h"
@@ -118,6 +119,7 @@
#include "cafOverlayScalarMapperLegend.h"
#include "cafPdmFieldScriptingCapability.h"
#include "cafPdmObjectScriptingCapability.h"
#include "cafPdmUiComboBoxEditor.h"
#include "cafPdmUiTreeOrdering.h"
#include "cvfDrawable.h"
@@ -2084,6 +2086,17 @@ QList<caf::PdmOptionItemInfo> RimEclipseView::calculateValueOptions( const caf::
return RimGridView::calculateValueOptions( fieldNeedingOptions );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseView::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute )
{
if ( field == &m_eclipseCase )
{
RiuTools::enableUpDownArrowsForComboBox( attribute );
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -187,6 +187,7 @@ protected:
virtual std::set<RivCellSetEnum> allVisibleFaultGeometryTypes() const;
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override;
void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override;
private:
QString createAutoName() const override;

View File

@@ -40,6 +40,7 @@
#include "RimSummaryPlotControls.h"
#include "RiuPlotMainWindow.h"
#include "RiuTools.h"
#include "cafPdmUiComboBoxEditor.h"
#include "cafPdmUiItem.h"
@@ -955,15 +956,12 @@ void RimSummaryPlotSourceStepping::defineEditorAttribute( const caf::PdmFieldHan
}
else
{
RiuTools::enableUpDownArrowsForComboBox( attribute );
QString nextText = RimSummaryPlotControls::nextStepKeyText();
QString prevText = RimSummaryPlotControls::prevStepKeyText();
myAttr->nextButtonText = "Next (" + nextText + ")";
myAttr->prevButtonText = "Previous (" + prevText + ")";
myAttr->nextIcon = QIcon( ":/ComboBoxDown.svg" );
myAttr->previousIcon = QIcon( ":/ComboBoxUp.svg" );
myAttr->showPreviousAndNextButtons = true;
}
}

View File

@@ -49,6 +49,7 @@
#include "RiuQwtPlotWheelZoomer.h"
#include "RiuQwtPlotWidget.h"
#include "RiuQwtPlotZoomer.h"
#include "RiuTools.h"
#include "cafColorTable.h"
#include "cafPdmUiComboBoxEditor.h"
@@ -1366,12 +1367,7 @@ void RimCustomVfpPlot::defineEditorAttribute( const caf::PdmFieldHandle* field,
if ( field == &m_mainDataSource )
{
if ( auto* myAttr = dynamic_cast<caf::PdmUiComboBoxEditorAttribute*>( attribute ) )
{
myAttr->showPreviousAndNextButtons = true;
myAttr->nextIcon = QIcon( ":/ComboBoxDown.svg" );
myAttr->previousIcon = QIcon( ":/ComboBoxUp.svg" );
}
RiuTools::enableUpDownArrowsForComboBox( attribute );
}
}

View File

@@ -45,6 +45,8 @@
#include "RimWellPath.h"
#include "RimWellPathCollection.h"
#include "RiuTools.h"
#include "cafPdmUiCheckBoxEditor.h"
#include "cafPdmUiCheckBoxTristateEditor.h"
#include "cafPdmUiComboBoxEditor.h"
@@ -1083,9 +1085,7 @@ void RimWellLogCurveCommonDataSource::defineEditorAttribute( const caf::PdmField
if ( field == &m_case || field == &m_summaryCase || field == &m_simWellName || field == &m_wellPath || field == &m_timeStep ||
field == &m_rftTimeStep || field == &m_rftSegmentBranchIndex || field == &m_rftWellName )
{
myAttr->showPreviousAndNextButtons = true;
myAttr->nextIcon = QIcon( ":/ComboBoxDown.svg" );
myAttr->previousIcon = QIcon( ":/ComboBoxUp.svg" );
RiuTools::enableUpDownArrowsForComboBox( attribute );
}
QString modifierText;