#4540 Command line : Fix option --case without file extension

This commit is contained in:
Magne Sjaastad
2019-08-09 10:48:58 +02:00
parent 0bb84b22a5
commit 31f4453135
5 changed files with 42 additions and 15 deletions

View File

@@ -257,9 +257,9 @@ RiaApplication::ApplicationStatus RiaConsoleApplication::handleArguments(cvf::Pr
if (cvf::Option o = progOpt->option("case")) if (cvf::Option o = progOpt->option("case"))
{ {
QStringList caseNames = cvfqt::Utils::toQStringList(o.values()); QStringList fileNames = RicImportGeneralDataFeature::fileNamesFromCaseNames(cvfqt::Utils::toQStringList(o.values()));
RicImportGeneralDataFeature::OpenCaseResults results = RicImportGeneralDataFeature::OpenCaseResults results =
RicImportGeneralDataFeature::openEclipseFilesFromFileNames(caseNames); RicImportGeneralDataFeature::openEclipseFilesFromFileNames(fileNames);
} }
if (cvf::Option o = progOpt->option("commandFile")) if (cvf::Option o = progOpt->option("commandFile"))

View File

@@ -774,9 +774,10 @@ RiaApplication::ApplicationStatus RiaGuiApplication::handleArguments(cvf::Progra
if (cvf::Option o = progOpt->option("case")) if (cvf::Option o = progOpt->option("case"))
{ {
QStringList caseNames = cvfqt::Utils::toQStringList(o.values()); QStringList fileNames = RicImportGeneralDataFeature::fileNamesFromCaseNames(cvfqt::Utils::toQStringList(o.values()));
RicImportGeneralDataFeature::OpenCaseResults results = RicImportGeneralDataFeature::OpenCaseResults results =
RicImportGeneralDataFeature::openEclipseFilesFromFileNames(caseNames); RicImportGeneralDataFeature::openEclipseFilesFromFileNames(fileNames);
if (results && !results.eclipseSummaryFiles.empty()) if (results && !results.eclipseSummaryFiles.empty())
{ {
getOrCreateAndShowMainPlotWindow(); getOrCreateAndShowMainPlotWindow();

View File

@@ -19,7 +19,6 @@
#include "RiaArgumentParser.h" #include "RiaArgumentParser.h"
#include "RiaApplication.h" #include "RiaApplication.h"
#include "RiaBaseDefs.h" #include "RiaBaseDefs.h"
#include "RiaEclipseFileNameTools.h"
#include "RiaImportEclipseCaseTools.h" #include "RiaImportEclipseCaseTools.h"
#include "RiaLogging.h" #include "RiaLogging.h"
#include "RiaPreferences.h" #include "RiaPreferences.h"

View File

@@ -19,6 +19,7 @@
#include "RiaApplication.h" #include "RiaApplication.h"
#include "RiaDefines.h" #include "RiaDefines.h"
#include "RiaEclipseFileNameTools.h"
#include "RiaImportEclipseCaseTools.h" #include "RiaImportEclipseCaseTools.h"
#include "RiaLogging.h" #include "RiaLogging.h"
@@ -40,7 +41,8 @@ CAF_CMD_SOURCE_INIT(RicImportGeneralDataFeature, "RicImportGeneralDataFeature");
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RicImportGeneralDataFeature::OpenCaseResults RicImportGeneralDataFeature::openEclipseFilesFromFileNames(const QStringList& fileNames) RicImportGeneralDataFeature::OpenCaseResults
RicImportGeneralDataFeature::openEclipseFilesFromFileNames(const QStringList& fileNames)
{ {
CVF_ASSERT(!fileNames.empty()); CVF_ASSERT(!fileNames.empty());
@@ -74,7 +76,7 @@ RicImportGeneralDataFeature::OpenCaseResults RicImportGeneralDataFeature::openEc
return OpenCaseResults(); return OpenCaseResults();
} }
results.eclipseCaseFiles = eclipseCaseFiles; results.eclipseCaseFiles = eclipseCaseFiles;
RiaApplication::instance()->setLastUsedDialogDirectory(defaultDirectoryLabel(ECLIPSE_EGRID_FILE), defaultDir); RiaApplication::instance()->setLastUsedDialogDirectory(defaultDirectoryLabel(ECLIPSE_EGRID_FILE), defaultDir);
} }
if (!eclipseInputFiles.empty()) if (!eclipseInputFiles.empty())
{ {
@@ -83,7 +85,7 @@ RicImportGeneralDataFeature::OpenCaseResults RicImportGeneralDataFeature::openEc
return OpenCaseResults(); return OpenCaseResults();
} }
results.eclipseInputFiles = eclipseInputFiles; results.eclipseInputFiles = eclipseInputFiles;
RiaApplication::instance()->setLastUsedDialogDirectory(defaultDirectoryLabel(ECLIPSE_INPUT_FILE), defaultDir); RiaApplication::instance()->setLastUsedDialogDirectory(defaultDirectoryLabel(ECLIPSE_INPUT_FILE), defaultDir);
} }
if (!eclipseSummaryFiles.empty()) if (!eclipseSummaryFiles.empty())
{ {
@@ -97,6 +99,30 @@ RicImportGeneralDataFeature::OpenCaseResults RicImportGeneralDataFeature::openEc
return results; return results;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QStringList RicImportGeneralDataFeature::fileNamesFromCaseNames(const QStringList& caseNames)
{
QStringList fileNames;
{
for (const auto& caseName : caseNames)
{
if (caseName.lastIndexOf(".") != -1)
{
fileNames.push_back(caseName);
}
else
{
RiaEclipseFileNameTools nameTool(caseName);
QString filenameWithExtension = nameTool.findRelatedGridFile();
fileNames.push_back(filenameWithExtension);
}
}
}
return fileNames;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
@@ -127,7 +153,7 @@ void RicImportGeneralDataFeature::setupActionLook(QAction* actionToSetup)
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RicImportGeneralDataFeature::openFileDialog(ImportFileType fileTypes) void RicImportGeneralDataFeature::openFileDialog(ImportFileType fileTypes)
{ {
QString eclipseGridFilePattern("*.GRID"); QString eclipseGridFilePattern("*.GRID");
QString eclipseEGridFilePattern("*.EGRID"); QString eclipseEGridFilePattern("*.EGRID");
QString eclipseInputFilePattern("*.GRDECL"); QString eclipseInputFilePattern("*.GRDECL");
@@ -137,10 +163,10 @@ void RicImportGeneralDataFeature::openFileDialog(ImportFileType fileTypes)
if (fileTypes == ANY_ECLIPSE_FILE) if (fileTypes == ANY_ECLIPSE_FILE)
{ {
filePatternTexts += QString("Eclipse Files (%1 %2 %3 %4)") filePatternTexts += QString("Eclipse Files (%1 %2 %3 %4)")
.arg(eclipseGridFilePattern) .arg(eclipseGridFilePattern)
.arg(eclipseEGridFilePattern) .arg(eclipseEGridFilePattern)
.arg(eclipseInputFilePattern) .arg(eclipseInputFilePattern)
.arg(eclipseSummaryFilePattern); .arg(eclipseSummaryFilePattern);
} }
if (fileTypes & ECLIPSE_GRID_FILE) if (fileTypes & ECLIPSE_GRID_FILE)
{ {
@@ -160,7 +186,7 @@ void RicImportGeneralDataFeature::openFileDialog(ImportFileType fileTypes)
} }
QString fullPattern = filePatternTexts.join(";;"); QString fullPattern = filePatternTexts.join(";;");
QString defaultDir = RiaApplication::instance()->lastUsedDialogDirectory(defaultDirectoryLabel(fileTypes)); QString defaultDir = RiaApplication::instance()->lastUsedDialogDirectory(defaultDirectoryLabel(fileTypes));
QStringList fileNames = QStringList fileNames =
@@ -172,7 +198,7 @@ void RicImportGeneralDataFeature::openFileDialog(ImportFileType fileTypes)
{ {
RiaApplication::instance()->setLastUsedDialogDirectory(defaultDirectoryLabel(ANY_ECLIPSE_FILE), fileNames.front()); RiaApplication::instance()->setLastUsedDialogDirectory(defaultDirectoryLabel(ANY_ECLIPSE_FILE), fileNames.front());
} }
if (!openEclipseFilesFromFileNames(fileNames)) if (!openEclipseFilesFromFileNames(fileNames))
{ {
RiaLogging::error(QString("Failed to open file names: %1").arg(fileNames.join(", "))); RiaLogging::error(QString("Failed to open file names: %1").arg(fileNames.join(", ")));

View File

@@ -47,6 +47,7 @@ public:
}; };
static OpenCaseResults openEclipseFilesFromFileNames(const QStringList& fileNames); static OpenCaseResults openEclipseFilesFromFileNames(const QStringList& fileNames);
static QStringList fileNamesFromCaseNames(const QStringList& caseNames);
protected: protected: