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 "RicAddEclipseInputPropertyFeature.h"
#include "RiaApplication.h"
#include "RiaDefines.h"
#include "RicImportGeneralDataFeature.h"
#include "RimEclipseCellColors.h" #include "RimEclipseCellColors.h"
#include "RimEclipseInputCase.h" #include "RimEclipseInputCase.h"
#include "RimEclipseInputPropertyCollection.h" #include "RimEclipseInputPropertyCollection.h"
@ -26,7 +31,6 @@
#include "RimEclipseView.h" #include "RimEclipseView.h"
#include "RimRoffCase.h" #include "RimRoffCase.h"
#include "RiaApplication.h"
#include "Riu3DMainWindowTools.h" #include "Riu3DMainWindowTools.h"
#include "RiuFileDialogTools.h" #include "RiuFileDialogTools.h"
@ -69,10 +73,13 @@ void RicAddEclipseInputPropertyFeature::onActionTriggered( bool isChecked )
RiaApplication* app = RiaApplication::instance(); RiaApplication* app = RiaApplication::instance();
QString defaultDir = app->lastUsedDialogDirectoryWithFallback( "INPUT_FILES", casePath ); 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", "Select Eclipse Input Property Files",
defaultDir, defaultDir,
"All Files (*.* *)" ); filePattern );
if ( fileNames.isEmpty() ) return; 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 eclipseGridFilePattern( "*.GRID" );
QString eclipseEGridFilePattern( "*.EGRID" ); QString eclipseEGridFilePattern( "*.EGRID" );
@ -185,37 +206,74 @@ QStringList RicImportGeneralDataFeature::getEclipseFileNamesWithDialog( RiaDefin
QString eclipseSummaryFilePattern( "*.SMSPEC" ); QString eclipseSummaryFilePattern( "*.SMSPEC" );
QString roffFilePattern( "*.ROFF *.ROFFASC" ); 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; QStringList filePatternTexts;
if ( fileType == ImportFileType::ANY_ECLIPSE_FILE ) if ( fileType == ImportFileType::ANY_ECLIPSE_FILE )
{ {
filePatternTexts += QString( "Eclipse Files (%1 %2 %3 %4)" ) filePatternTexts += getFilePattern( ImportFileType::ANY_ECLIPSE_FILE );
.arg( eclipseGridFilePattern )
.arg( eclipseEGridFilePattern )
.arg( eclipseInputFilePattern )
.arg( eclipseSummaryFilePattern );
} }
int fileTypeAsInt = int( fileType ); int fileTypeAsInt = int( fileType );
if ( fileTypeAsInt & int( ImportFileType::ECLIPSE_EGRID_FILE ) ) 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 ) ) 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 ) ) 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 ) ) 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 ) ) if ( fileTypeAsInt & int( ImportFileType::ROFF_FILE ) )
{ {
filePatternTexts += QString( "Roff File (%1)" ).arg( roffFilePattern ); filePatternTexts += getFilePattern( ImportFileType::ROFF_FILE );
} }
QString fullPattern = filePatternTexts.join( ";;" ); QString fullPattern = filePatternTexts.join( ";;" );

View File

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