Property Import: provide better file patterns.

This commit is contained in:
Kristian Bendiksen 2022-12-21 14:53:52 +01:00
parent fc4294a6ad
commit cc537fc241
3 changed files with 84 additions and 15 deletions

View File

@ -19,6 +19,11 @@
#include "RicAddEclipseInputPropertyFeature.h"
#include "RiaApplication.h"
#include "RiaDefines.h"
#include "RicImportGeneralDataFeature.h"
#include "RimEclipseCellColors.h"
#include "RimEclipseInputCase.h"
#include "RimEclipseInputPropertyCollection.h"
@ -26,7 +31,6 @@
#include "RimEclipseView.h"
#include "RimRoffCase.h"
#include "RiaApplication.h"
#include "Riu3DMainWindowTools.h"
#include "RiuFileDialogTools.h"
@ -69,10 +73,13 @@ void RicAddEclipseInputPropertyFeature::onActionTriggered( bool isChecked )
RiaApplication* app = RiaApplication::instance();
QString defaultDir = app->lastUsedDialogDirectoryWithFallback( "INPUT_FILES", casePath );
QStringList fileNames = RiuFileDialogTools::getOpenFileNames( Riu3DMainWindowTools::mainWindowWidget(),
QString filePattern = RicImportGeneralDataFeature::getFilePattern( { RiaDefines::ImportFileType::ECLIPSE_INPUT_FILE,
RiaDefines::ImportFileType::ROFF_FILE },
true );
QStringList fileNames = RiuFileDialogTools::getOpenFileNames( Riu3DMainWindowTools::mainWindowWidget(),
"Select Eclipse Input Property Files",
defaultDir,
"All Files (*.* *)" );
filePattern );
if ( fileNames.isEmpty() ) return;

View File

@ -177,7 +177,28 @@ void RicImportGeneralDataFeature::setupActionLook( QAction* actionToSetup )
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QStringList RicImportGeneralDataFeature::getEclipseFileNamesWithDialog( RiaDefines::ImportFileType fileType )
QString RicImportGeneralDataFeature::getFilePattern( const std::vector<RiaDefines::ImportFileType>& fileTypes,
bool allowWildcard )
{
QStringList filePatternTexts;
if ( allowWildcard )
{
filePatternTexts += "All Files (*.* *)";
}
for ( auto f : fileTypes )
{
filePatternTexts += getFilePattern( f );
}
return filePatternTexts.join( ";;" );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RicImportGeneralDataFeature::getFilePattern( RiaDefines::ImportFileType fileType )
{
QString eclipseGridFilePattern( "*.GRID" );
QString eclipseEGridFilePattern( "*.EGRID" );
@ -185,37 +206,74 @@ QStringList RicImportGeneralDataFeature::getEclipseFileNamesWithDialog( RiaDefin
QString eclipseSummaryFilePattern( "*.SMSPEC" );
QString roffFilePattern( "*.ROFF *.ROFFASC" );
if ( fileType == ImportFileType::ANY_ECLIPSE_FILE )
{
return QString( "Eclipse Files (%1 %2 %3 %4)" )
.arg( eclipseGridFilePattern )
.arg( eclipseEGridFilePattern )
.arg( eclipseInputFilePattern )
.arg( eclipseSummaryFilePattern );
}
if ( fileType == ImportFileType::ECLIPSE_EGRID_FILE )
{
return QString( "Eclipse EGrid Files (%1)" ).arg( eclipseEGridFilePattern );
}
if ( fileType == ImportFileType::ECLIPSE_GRID_FILE )
{
return QString( "Eclipse Grid Files (%1)" ).arg( eclipseGridFilePattern );
}
if ( fileType == ImportFileType::ECLIPSE_INPUT_FILE )
{
return QString( "Eclipse Input Files and Input Properties (%1)" ).arg( eclipseInputFilePattern );
}
if ( fileType == ImportFileType::ECLIPSE_SUMMARY_FILE )
{
return QString( "Eclipse Summary File (%1)" ).arg( eclipseSummaryFilePattern );
}
if ( fileType == ImportFileType::ROFF_FILE )
{
return QString( "Roff File (%1)" ).arg( roffFilePattern );
}
return "";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QStringList RicImportGeneralDataFeature::getEclipseFileNamesWithDialog( RiaDefines::ImportFileType fileType )
{
QStringList filePatternTexts;
if ( fileType == ImportFileType::ANY_ECLIPSE_FILE )
{
filePatternTexts += QString( "Eclipse Files (%1 %2 %3 %4)" )
.arg( eclipseGridFilePattern )
.arg( eclipseEGridFilePattern )
.arg( eclipseInputFilePattern )
.arg( eclipseSummaryFilePattern );
filePatternTexts += getFilePattern( ImportFileType::ANY_ECLIPSE_FILE );
}
int fileTypeAsInt = int( fileType );
if ( fileTypeAsInt & int( ImportFileType::ECLIPSE_EGRID_FILE ) )
{
filePatternTexts += QString( "Eclipse EGrid Files (%1)" ).arg( eclipseEGridFilePattern );
filePatternTexts += getFilePattern( ImportFileType::ECLIPSE_EGRID_FILE );
}
if ( fileTypeAsInt & int( ImportFileType::ECLIPSE_GRID_FILE ) )
{
filePatternTexts += QString( "Eclipse Grid Files (%1)" ).arg( eclipseGridFilePattern );
filePatternTexts += getFilePattern( ImportFileType::ECLIPSE_GRID_FILE );
}
if ( fileTypeAsInt & int( ImportFileType::ECLIPSE_INPUT_FILE ) )
{
filePatternTexts += QString( "Eclipse Input Files and Input Properties (%1)" ).arg( eclipseInputFilePattern );
filePatternTexts += getFilePattern( ImportFileType::ECLIPSE_INPUT_FILE );
}
if ( fileTypeAsInt & int( ImportFileType::ECLIPSE_SUMMARY_FILE ) )
{
filePatternTexts += QString( "Eclipse Summary File (%1)" ).arg( eclipseSummaryFilePattern );
filePatternTexts += getFilePattern( ImportFileType::ECLIPSE_SUMMARY_FILE );
}
if ( fileTypeAsInt & int( ImportFileType::ROFF_FILE ) )
{
filePatternTexts += QString( "Roff File (%1)" ).arg( roffFilePattern );
filePatternTexts += getFilePattern( ImportFileType::ROFF_FILE );
}
QString fullPattern = filePatternTexts.join( ";;" );

View File

@ -60,11 +60,15 @@ public:
static QStringList fileNamesFromCaseNames( const QStringList& caseNames );
static QStringList getEclipseFileNamesWithDialog( RiaDefines::ImportFileType fileTypes );
static QString getFilePattern( const std::vector<RiaDefines::ImportFileType>& fileTypes, bool allowWildcard );
protected:
bool isCommandEnabled() override;
void onActionTriggered( bool isChecked ) override;
void setupActionLook( QAction* actionToSetup ) override;
static QString getFilePattern( RiaDefines::ImportFileType fileType );
static void openFileDialog( RiaDefines::ImportFileType fileTypes );
static bool openEclipseCaseFromFileNames( const QStringList& fileNames,