mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3967 Summary command line parameters : Open summary case
This commit is contained in:
parent
fd133b0d36
commit
8e307399c0
@ -27,7 +27,7 @@ void caf::AppEnum<RiaEclipseFileNameTools::EclipseFileType>::setUp()
|
||||
{
|
||||
addItem(RiaEclipseFileNameTools::ECLIPSE_DATA, "DATA", "Data Deck");
|
||||
addItem(RiaEclipseFileNameTools::ECLIPSE_GRID, "GRID", "Grid");
|
||||
addItem(RiaEclipseFileNameTools::ECLIPSE_EGRID, "EGRIRD", "Grid");
|
||||
addItem(RiaEclipseFileNameTools::ECLIPSE_EGRID, "EGRID", "Grid");
|
||||
addItem(RiaEclipseFileNameTools::ECLIPSE_UNRST, "UNRST", "Unified Restart");
|
||||
addItem(RiaEclipseFileNameTools::ECLIPSE_SMSPEC, "SMSPEC", "Summary Specification");
|
||||
addItem(RiaEclipseFileNameTools::ECLIPSE_UNSMRY, "UNSMR", "Summary Vectors");
|
||||
@ -140,7 +140,7 @@ bool RiaEclipseFileNameTools::hasMatchingSuffix(const QString& fileName, Eclipse
|
||||
|
||||
QString suffix = fi.completeSuffix();
|
||||
|
||||
if (suffix.compare(caf::AppEnum<EclipseFileType>::text(fileType), Qt::CaseInsensitive))
|
||||
if (suffix.compare(caf::AppEnum<EclipseFileType>::text(fileType), Qt::CaseInsensitive) == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaBaseDefs.h"
|
||||
#include "RiaEclipseFileNameTools.h"
|
||||
#include "RiaImportEclipseCaseTools.h"
|
||||
#include "RiaPreferences.h"
|
||||
#include "RiaProjectModifier.h"
|
||||
@ -36,6 +37,7 @@
|
||||
#include "ExportCommands/RicSnapshotAllPlotsToFileFeature.h"
|
||||
#include "ExportCommands/RicSnapshotAllViewsToFileFeature.h"
|
||||
#include "ExportCommands/RicSnapshotViewToFileFeature.h"
|
||||
#include "RicImportSummaryCasesFeature.h"
|
||||
|
||||
#include "cvfProgramOptions.h"
|
||||
#include "cvfqtUtils.h"
|
||||
@ -292,29 +294,9 @@ bool RiaArgumentParser::parseArguments()
|
||||
if (cvf::Option o = progOpt.option("case"))
|
||||
{
|
||||
QStringList caseNames = cvfqt::Utils::toQStringList(o.values());
|
||||
foreach (QString caseName, caseNames)
|
||||
for (const QString& caseName : caseNames)
|
||||
{
|
||||
QString fileExtension = caf::Utils::fileExtension(caseName);
|
||||
if (caf::Utils::fileExists(caseName) && (fileExtension == "EGRID" || fileExtension == "GRID"))
|
||||
{
|
||||
RiaImportEclipseCaseTools::openEclipseCasesFromFile(QStringList({caseName}), nullptr, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
QString caseFileNameWithExt = caseName + ".EGRID";
|
||||
if (caf::Utils::fileExists(caseFileNameWithExt))
|
||||
{
|
||||
RiaImportEclipseCaseTools::openEclipseCasesFromFile(QStringList({caseFileNameWithExt}), nullptr, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
caseFileNameWithExt = caseName + ".GRID";
|
||||
if (caf::Utils::fileExists(caseFileNameWithExt))
|
||||
{
|
||||
RiaImportEclipseCaseTools::openEclipseCasesFromFile(QStringList({caseFileNameWithExt}), nullptr, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
openCaseFromCommandLineParameter(caseName);
|
||||
}
|
||||
}
|
||||
|
||||
@ -483,3 +465,64 @@ void RiaArgumentParser::executeCommandFile(const QString& commandFile)
|
||||
QTextStream in(&file);
|
||||
RicfCommandFileExecutor::instance()->executeCommands(in);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RiaArgumentParser::openCaseFromCommandLineParameter(const QString& parameter)
|
||||
{
|
||||
if (RiaEclipseFileNameTools::isProjectFile(parameter))
|
||||
{
|
||||
return RiaApplication::instance()->loadProject(parameter);
|
||||
}
|
||||
|
||||
QStringList gridFileNames;
|
||||
QStringList summarySpecFileNames;
|
||||
|
||||
if (RiaEclipseFileNameTools::isGridFile(parameter))
|
||||
{
|
||||
QFileInfo fi(parameter);
|
||||
|
||||
gridFileNames.push_back(fi.absoluteFilePath());
|
||||
}
|
||||
else if (RiaEclipseFileNameTools::isSummarySpecFile(parameter))
|
||||
{
|
||||
QFileInfo fi(parameter);
|
||||
|
||||
summarySpecFileNames.push_back(fi.absoluteFilePath());
|
||||
}
|
||||
else
|
||||
{
|
||||
RiaEclipseFileNameTools fileNameTools(parameter);
|
||||
|
||||
{
|
||||
QString gridFileName = fileNameTools.findRelatedGridFile();
|
||||
if (!gridFileName.isEmpty())
|
||||
{
|
||||
gridFileNames.push_back(gridFileName);
|
||||
}
|
||||
}
|
||||
|
||||
QString summarySpecFileName = fileNameTools.findRelatedSummarySpecFile();
|
||||
if (!summarySpecFileName.isEmpty())
|
||||
{
|
||||
summarySpecFileNames.push_back(summarySpecFileName);
|
||||
}
|
||||
}
|
||||
|
||||
bool openCaseResult = true;
|
||||
|
||||
// Open summary cases first. Then, the open of grid file will not open an already open summary case file
|
||||
if (!summarySpecFileNames.empty())
|
||||
{
|
||||
openCaseResult &= RicImportSummaryCasesFeature::createAndAddSummaryCasesFromFiles(summarySpecFileNames);
|
||||
RiaApplication::instance()->getOrCreateAndShowMainPlotWindow();
|
||||
}
|
||||
|
||||
for (const auto& f : gridFileNames)
|
||||
{
|
||||
openCaseResult &= RiaImportEclipseCaseTools::openEclipseCasesFromFile(QStringList({f}), nullptr, true);
|
||||
}
|
||||
|
||||
return openCaseResult;
|
||||
}
|
||||
|
@ -32,5 +32,6 @@ public:
|
||||
|
||||
private:
|
||||
static void executeCommandFile(const QString& commandFile);
|
||||
static bool openCaseFromCommandLineParameter(const QString& parameter);
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user