Add support for overriding egrid reader type on command line. Override disables GUI in preferences.

This commit is contained in:
Jon Jenssen 2024-05-27 14:41:24 +02:00 committed by jonjenssen
parent 1b93347aea
commit 9858d09a33
6 changed files with 60 additions and 2 deletions

View File

@ -161,6 +161,13 @@ RiaApplication::ApplicationStatus RiaConsoleApplication::handleArguments( gsl::n
setStartDir( cvfqt::Utils::toQString( o.value( 0 ) ) );
}
if ( cvf::Option o = progOpt->option( "egridReader" ) )
{
CVF_ASSERT( o.valueCount() == 1 );
std::string readerName = o.value( 0 ).toLower().toStdString();
m_preferences->setGridModelReaderOverride( readerName );
}
QString projectFileName;
if ( progOpt->hasOption( "last" ) )

View File

@ -173,7 +173,8 @@ enum class GridCaseAxis
enum class GridModelReader
{
RESDATA,
OPM_COMMON
OPM_COMMON,
NOT_SET
};
enum class ThemeEnum

View File

@ -521,6 +521,13 @@ RiaApplication::ApplicationStatus RiaGuiApplication::handleArguments( gsl::not_n
setStartDir( cvfqt::Utils::toQString( o.value( 0 ) ) );
}
if ( cvf::Option o = progOpt->option( "egridReader" ) )
{
CVF_ASSERT( o.valueCount() == 1 );
std::string readerName = o.value( 0 ).toLower().toStdString();
m_preferences->setGridModelReaderOverride( readerName );
}
if ( cvf::Option o = progOpt->option( "size" ) )
{
int width = o.safeValue( 0 ).toInt( -1 );

View File

@ -23,6 +23,7 @@
#include "RiaApplication.h"
#include "RiaColorTables.h"
#include "RiaLogging.h"
#include "RiaPreferencesGeoMech.h"
#include "RiaPreferencesSummary.h"
#include "RiaPreferencesSystem.h"
@ -81,6 +82,7 @@ CAF_PDM_SOURCE_INIT( RiaPreferences, "RiaPreferences" );
///
//--------------------------------------------------------------------------------------------------
RiaPreferences::RiaPreferences()
: m_gridModelReaderOverride( RiaDefines::GridModelReader::NOT_SET )
{
CAF_PDM_InitField( &m_navigationPolicy,
"navigationPolicy",
@ -388,7 +390,7 @@ void RiaPreferences::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering&
}
else if ( uiConfigName == RiaPreferences::tabNameGrid() )
{
uiOrdering.add( &m_gridModelReader );
if ( m_gridModelReaderOverride == RiaDefines::GridModelReader::NOT_SET ) uiOrdering.add( &m_gridModelReader );
caf::PdmUiGroup* newCaseBehaviourGroup = uiOrdering.addNewGroup( "Behavior When Loading Data" );
newCaseBehaviourGroup->add( &autocomputeDepthRelatedProperties );
@ -692,9 +694,42 @@ const RifReaderSettings* RiaPreferences::readerSettings() const
//--------------------------------------------------------------------------------------------------
RiaDefines::GridModelReader RiaPreferences::gridModelReader() const
{
if ( m_gridModelReaderOverride != RiaDefines::GridModelReader::NOT_SET )
{
return m_gridModelReaderOverride;
}
return m_gridModelReader();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaPreferences::setGridModelReaderOverride( const std::string& readerName )
{
RiaDefines::GridModelReader readerType = RiaDefines::GridModelReader::NOT_SET;
if ( readerName == "opm_common" )
{
readerType = RiaDefines::GridModelReader::OPM_COMMON;
}
else if ( readerName == "resdata" )
{
readerType = RiaDefines::GridModelReader::RESDATA;
}
else
{
RiaLogging::warning( QString::fromStdString( "Unknown EGRID reader type specified on command line: " + readerName ) );
return;
}
if ( readerType != RiaDefines::GridModelReader::NOT_SET )
{
RiaLogging::info( QString::fromStdString( "Using EGRID reader: " + readerName ) );
}
m_gridModelReaderOverride = readerType;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -39,6 +39,7 @@
#include <QStringList>
#include <map>
#include <string>
class RifReaderSettings;
class RiaPreferencesSummary;
@ -71,6 +72,7 @@ public:
const RifReaderSettings* readerSettings() const;
RiaDefines::GridModelReader gridModelReader() const;
void setGridModelReaderOverride( const std::string& readerName );
bool useUndoRedo() const;
@ -180,6 +182,7 @@ private:
private:
caf::PdmField<GridModelEnum> m_gridModelReader;
RiaDefines::GridModelReader m_gridModelReaderOverride;
caf::PdmChildField<RifReaderSettings*> m_readerSettings;
caf::PdmField<QString> m_dateFormat;

View File

@ -135,6 +135,11 @@ bool RiaArgumentParser::parseArguments( cvf::ProgramOptions* progOpt )
progOpt->registerOption( "version", "", "Display the application version string" );
progOpt->registerOption( "openplotwindow", "", "Open the 2D plot window. By default, the 3D window is displayed." );
progOpt->registerOption( "egridReader",
"<readerName>",
"Select the reader type used to access EGRID files, valid values are RESDATA or OPM_COMMON",
cvf::ProgramOptions::SINGLE_VALUE );
progOpt->setOptionPrefix( cvf::ProgramOptions::DOUBLE_DASH );
QStringList arguments = QCoreApplication::arguments();