mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
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:
@@ -22,13 +22,16 @@
|
||||
#include "RiaImportEclipseCaseTools.h"
|
||||
|
||||
#include "RicCreateGridCaseGroupFromFilesFeature.h"
|
||||
#include "RicNewViewFeature.h"
|
||||
#include "RicRecursiveFileSearchDialog.h"
|
||||
|
||||
#include "Rim3dView.h"
|
||||
#include "RimEclipseCaseCollection.h"
|
||||
#include "RimEclipseCaseEnsemble.h"
|
||||
#include "RimEclipseResultCase.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimViewNameConfig.h"
|
||||
|
||||
#include "cafProgressInfo.h"
|
||||
#include "cafSelectionManager.h"
|
||||
@@ -46,18 +49,35 @@ void RicCreateGridCaseEnsemblesFromFilesFeature::onActionTriggered( bool isCheck
|
||||
QString pathCacheName = "INPUT_FILES";
|
||||
auto [fileNames, groupByEnsemble] = runRecursiveFileSearchDialog( "Import Grid Ensembles", pathCacheName );
|
||||
|
||||
std::vector<RimEclipseCaseEnsemble*> gridEnsembles;
|
||||
|
||||
if ( groupByEnsemble == RiaEnsembleNameTools::EnsembleGroupingMode::NONE )
|
||||
{
|
||||
importSingleGridCaseEnsemble( fileNames );
|
||||
gridEnsembles.push_back( importSingleGridCaseEnsemble( fileNames ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
std::vector<QStringList> groupedByEnsemble = RiaEnsembleNameTools::groupFilesByEnsemble( fileNames, groupByEnsemble );
|
||||
for ( const QStringList& groupedFileNames : groupedByEnsemble )
|
||||
{
|
||||
importSingleGridCaseEnsemble( groupedFileNames );
|
||||
gridEnsembles.push_back( importSingleGridCaseEnsemble( groupedFileNames ) );
|
||||
}
|
||||
}
|
||||
|
||||
if ( gridEnsembles.empty() ) return;
|
||||
|
||||
auto firstEnsemble = gridEnsembles.front();
|
||||
if ( firstEnsemble->cases().empty() ) return;
|
||||
|
||||
auto firstCase = firstEnsemble->cases().front();
|
||||
if ( !firstCase ) return;
|
||||
|
||||
auto view = RicNewViewFeature::addReservoirView( firstCase, nullptr, firstEnsemble->viewCollection() );
|
||||
if ( view )
|
||||
{
|
||||
// Show the case name in the view title, as this is useful information for a grid case ensemble
|
||||
view->nameConfig()->setAddCaseName( true );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -66,14 +86,20 @@ void RicCreateGridCaseEnsemblesFromFilesFeature::onActionTriggered( bool isCheck
|
||||
void RicCreateGridCaseEnsemblesFromFilesFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
actionToSetup->setIcon( QIcon( ":/CreateGridCaseGroup16x16.png" ) );
|
||||
actionToSetup->setText( "&Create Grid Case Ensembles" );
|
||||
actionToSetup->setText( "&Create Grid Case Ensemble" );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicCreateGridCaseEnsemblesFromFilesFeature::importSingleGridCaseEnsemble( const QStringList& fileNames )
|
||||
RimEclipseCaseEnsemble* RicCreateGridCaseEnsemblesFromFilesFeature::importSingleGridCaseEnsemble( const QStringList& fileNames )
|
||||
{
|
||||
RimProject* project = RimProject::current();
|
||||
CVF_ASSERT( project );
|
||||
|
||||
RimOilField* oilfield = project->activeOilField();
|
||||
if ( !oilfield ) return nullptr;
|
||||
|
||||
auto eclipseCaseEnsemble = new RimEclipseCaseEnsemble;
|
||||
QString ensembleNameSuggestion =
|
||||
RiaEnsembleNameTools::findSuitableEnsembleName( fileNames, RiaEnsembleNameTools::EnsembleGroupingMode::FMU_FOLDER_STRUCTURE );
|
||||
@@ -81,12 +107,6 @@ void RicCreateGridCaseEnsemblesFromFilesFeature::importSingleGridCaseEnsemble( c
|
||||
|
||||
caf::ProgressInfo progInfo( fileNames.size() + 1, "Creating Grid Ensembles" );
|
||||
|
||||
RimProject* project = RimProject::current();
|
||||
CVF_ASSERT( project );
|
||||
|
||||
RimOilField* oilfield = project->activeOilField();
|
||||
if ( !oilfield ) return;
|
||||
|
||||
for ( auto caseFileName : fileNames )
|
||||
{
|
||||
auto task = progInfo.task( "Loading files", 1 );
|
||||
@@ -102,6 +122,8 @@ void RicCreateGridCaseEnsemblesFromFilesFeature::importSingleGridCaseEnsemble( c
|
||||
|
||||
oilfield->analysisModels()->caseEnsembles.push_back( eclipseCaseEnsemble );
|
||||
oilfield->analysisModels()->updateConnectedEditors();
|
||||
|
||||
return eclipseCaseEnsemble;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user