mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2555 Open summary restart dialog if necessary when opening egrid files
This commit is contained in:
parent
95a9744241
commit
148d058d88
@ -127,7 +127,8 @@ bool RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl(const QStr
|
|||||||
|
|
||||||
if (!sumCaseColl->findSummaryCaseFromEclipseResultCase(rimResultReservoir))
|
if (!sumCaseColl->findSummaryCaseFromEclipseResultCase(rimResultReservoir))
|
||||||
{
|
{
|
||||||
RimSummaryCase* newSumCase = sumCaseColl->createAndAddSummaryCaseFromEclipseResultCase(rimResultReservoir);
|
std::vector<RimSummaryCase*> newSumCases = sumCaseColl->createAndAddSummaryCasesFromEclipseResultCase(rimResultReservoir);
|
||||||
|
RimSummaryCase* newSumCase = !newSumCases.empty() ? newSumCases.front() : nullptr;
|
||||||
|
|
||||||
if (newSumCase)
|
if (newSumCase)
|
||||||
{
|
{
|
||||||
|
@ -32,6 +32,19 @@
|
|||||||
#include <QDir>
|
#include <QDir>
|
||||||
|
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
/// Internal function
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
template<typename T>
|
||||||
|
bool vectorContains(const std::vector<T>& vector, T item)
|
||||||
|
{
|
||||||
|
for (const auto& i : vector)
|
||||||
|
{
|
||||||
|
if (i == item) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -76,7 +89,7 @@ std::vector<RifSummaryCaseFileInfo> RifSummaryCaseRestartSelector::getFilesToImp
|
|||||||
std::vector<RifSummaryCaseFileInfo> RifSummaryCaseRestartSelector::getFilesToImportByAskingUser(const QStringList& initialFiles,
|
std::vector<RifSummaryCaseFileInfo> RifSummaryCaseRestartSelector::getFilesToImportByAskingUser(const QStringList& initialFiles,
|
||||||
bool enableApplyToAllField)
|
bool enableApplyToAllField)
|
||||||
{
|
{
|
||||||
std::set<RifSummaryCaseFileInfo> filesToImport;
|
std::vector<RifSummaryCaseFileInfo> filesToImport;
|
||||||
RicSummaryCaseRestartDialogResult lastResult;
|
RicSummaryCaseRestartDialogResult lastResult;
|
||||||
|
|
||||||
for (const QString& file : initialFiles)
|
for (const QString& file : initialFiles)
|
||||||
@ -87,9 +100,9 @@ std::vector<RifSummaryCaseFileInfo> RifSummaryCaseRestartSelector::getFilesToImp
|
|||||||
for (const QString& file : result.files)
|
for (const QString& file : result.files)
|
||||||
{
|
{
|
||||||
RifSummaryCaseFileInfo fi(file, result.option == RicSummaryCaseRestartDialog::READ_ALL);
|
RifSummaryCaseFileInfo fi(file, result.option == RicSummaryCaseRestartDialog::READ_ALL);
|
||||||
if (filesToImport.count(fi) == 0)
|
if (!vectorContains(filesToImport, fi))
|
||||||
{
|
{
|
||||||
filesToImport.insert(fi);
|
filesToImport.push_back(fi);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,6 +51,8 @@ RimGridSummaryCase::RimGridSummaryCase()
|
|||||||
m_eclipseGridFileName.uiCapability()->setUiReadOnly(true);
|
m_eclipseGridFileName.uiCapability()->setUiReadOnly(true);
|
||||||
m_eclipseGridFileName.xmlCapability()->setIOWritable(false);
|
m_eclipseGridFileName.xmlCapability()->setIOWritable(false);
|
||||||
|
|
||||||
|
CAF_PDM_InitField(&m_includeRestartFiles, "IncludeRestartFiles", false, "Include Restart Files", "", "", "");
|
||||||
|
m_includeRestartFiles.uiCapability()->setUiHidden(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -175,7 +177,7 @@ void RimGridSummaryCase::updateFilePathsFromProjectPath(const QString & newProje
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimGridSummaryCase::createSummaryReaderInterface()
|
void RimGridSummaryCase::createSummaryReaderInterface()
|
||||||
{
|
{
|
||||||
m_summaryFileReader = RimFileSummaryCase::findRelatedFilesAndCreateReader(this->summaryHeaderFilename(), true /* read restart files */);
|
m_summaryFileReader = RimFileSummaryCase::findRelatedFilesAndCreateReader(this->summaryHeaderFilename(), m_includeRestartFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -186,3 +188,11 @@ RifSummaryReaderInterface* RimGridSummaryCase::summaryReader()
|
|||||||
return m_summaryFileReader.p();
|
return m_summaryFileReader.p();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimGridSummaryCase::setIncludeRestartFiles(bool includeRestartFiles)
|
||||||
|
{
|
||||||
|
m_includeRestartFiles = includeRestartFiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -50,6 +50,8 @@ public:
|
|||||||
virtual void createSummaryReaderInterface() override;
|
virtual void createSummaryReaderInterface() override;
|
||||||
virtual RifSummaryReaderInterface* summaryReader() override;
|
virtual RifSummaryReaderInterface* summaryReader() override;
|
||||||
|
|
||||||
|
void setIncludeRestartFiles(bool includeRestartFiles);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString eclipseGridFileName() const;
|
QString eclipseGridFileName() const;
|
||||||
|
|
||||||
@ -59,4 +61,5 @@ private:
|
|||||||
caf::PdmProxyValueField<QString> m_eclipseGridFileName;
|
caf::PdmProxyValueField<QString> m_eclipseGridFileName;
|
||||||
|
|
||||||
cvf::ref<RifReaderEclipseSummary> m_summaryFileReader;
|
cvf::ref<RifReaderEclipseSummary> m_summaryFileReader;
|
||||||
|
caf::PdmField<bool> m_includeRestartFiles;
|
||||||
};
|
};
|
||||||
|
@ -91,7 +91,7 @@ void RimSummaryCaseMainCollection::createSummaryCasesFromRelevantEclipseResultCa
|
|||||||
if (!isFound)
|
if (!isFound)
|
||||||
{
|
{
|
||||||
// Create new GridSummaryCase
|
// Create new GridSummaryCase
|
||||||
createAndAddSummaryCaseFromEclipseResultCase(eclResCase);
|
createAndAddSummaryCasesFromEclipseResultCase(eclResCase);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -265,8 +265,9 @@ void RimSummaryCaseMainCollection::loadAllSummaryCaseData()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RimSummaryCase* RimSummaryCaseMainCollection::createAndAddSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclResCase)
|
std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::createAndAddSummaryCasesFromEclipseResultCase(RimEclipseResultCase* eclResCase)
|
||||||
{
|
{
|
||||||
|
std::vector<RimSummaryCase*> sumCases;
|
||||||
QString gridFileName = eclResCase->gridFileName();
|
QString gridFileName = eclResCase->gridFileName();
|
||||||
QString summaryHeaderFile;
|
QString summaryHeaderFile;
|
||||||
bool formatted;
|
bool formatted;
|
||||||
@ -275,19 +276,39 @@ RimSummaryCase* RimSummaryCaseMainCollection::createAndAddSummaryCaseFromEclipse
|
|||||||
|
|
||||||
if(!summaryHeaderFile.isEmpty())
|
if(!summaryHeaderFile.isEmpty())
|
||||||
{
|
{
|
||||||
// Activate when after discussing how grid case and summary case(s) are going to be related
|
RifSummaryCaseRestartSelector fileSelector;
|
||||||
//
|
std::vector<RifSummaryCaseFileInfo> importFileInfos = fileSelector.getFilesToImport(QStringList({ summaryHeaderFile }));
|
||||||
//RifSummaryCaseRestartSelector fileSelector;
|
|
||||||
//std::vector<RifSummaryCaseFileInfo> importFileInfos = fileSelector.getFilesToImport(QStringList({ summaryHeaderFile }));
|
|
||||||
|
|
||||||
|
if (!importFileInfos.empty())
|
||||||
|
{
|
||||||
RimGridSummaryCase* newSumCase = new RimGridSummaryCase();
|
RimGridSummaryCase* newSumCase = new RimGridSummaryCase();
|
||||||
|
|
||||||
this->m_cases.push_back(newSumCase);
|
this->m_cases.push_back(newSumCase);
|
||||||
|
newSumCase->setIncludeRestartFiles(importFileInfos.front().includeRestartFiles);
|
||||||
newSumCase->setAssociatedEclipseCase(eclResCase);
|
newSumCase->setAssociatedEclipseCase(eclResCase);
|
||||||
newSumCase->createSummaryReaderInterface();
|
newSumCase->createSummaryReaderInterface();
|
||||||
newSumCase->updateOptionSensitivity();
|
newSumCase->updateOptionSensitivity();
|
||||||
return newSumCase;
|
sumCases.push_back(newSumCase);
|
||||||
|
|
||||||
|
// Remove the processed element and add 'orphan' summary cases
|
||||||
|
importFileInfos.erase(importFileInfos.begin());
|
||||||
|
|
||||||
|
for (const RifSummaryCaseFileInfo& fileInfo : importFileInfos)
|
||||||
|
{
|
||||||
|
RimFileSummaryCase* newSumCase = new RimFileSummaryCase();
|
||||||
|
|
||||||
|
this->m_cases.push_back(newSumCase);
|
||||||
|
newSumCase->setIncludeRestartFiles(fileInfo.includeRestartFiles);
|
||||||
|
newSumCase->setSummaryHeaderFileName(fileInfo.fileName);
|
||||||
|
newSumCase->createSummaryReaderInterface();
|
||||||
|
newSumCase->updateOptionSensitivity();
|
||||||
|
|
||||||
|
sumCases.push_back(newSumCase);
|
||||||
}
|
}
|
||||||
return nullptr;
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return sumCases;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -44,7 +44,7 @@ public:
|
|||||||
std::vector<RimSummaryCaseCollection*> summaryCaseCollections() const;
|
std::vector<RimSummaryCaseCollection*> summaryCaseCollections() const;
|
||||||
|
|
||||||
void createSummaryCasesFromRelevantEclipseResultCases();
|
void createSummaryCasesFromRelevantEclipseResultCases();
|
||||||
RimSummaryCase* createAndAddSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclResCase);
|
std::vector<RimSummaryCase*> createAndAddSummaryCasesFromEclipseResultCase(RimEclipseResultCase* eclResCase);
|
||||||
std::vector<RimSummaryCase*> createAndAddSummaryCasesFromFiles(const QStringList& inputFileNames);
|
std::vector<RimSummaryCase*> createAndAddSummaryCasesFromFiles(const QStringList& inputFileNames);
|
||||||
|
|
||||||
RimSummaryCase* findSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclResCase) const;
|
RimSummaryCase* findSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclResCase) const;
|
||||||
|
Loading…
Reference in New Issue
Block a user