mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1642 Batch : Replace folder for input files
This commit is contained in:
@@ -42,6 +42,7 @@
|
||||
#include "cafProgressInfo.h"
|
||||
|
||||
#include <QFileInfo>
|
||||
#include <QDir>
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RimEclipseInputCase, "RimInputReservoir");
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -53,12 +54,20 @@ RimEclipseInputCase::RimEclipseInputCase()
|
||||
CAF_PDM_InitObject("RimInputCase", ":/EclipseInput48x48.png", "", "");
|
||||
CAF_PDM_InitField(&m_gridFileName, "GridFileName", QString(), "Case File Name", "", "" ,"");
|
||||
m_gridFileName.uiCapability()->setUiReadOnly(true);
|
||||
CAF_PDM_InitFieldNoDefault(&m_additionalFileNames, "AdditionalFileNames", "Additional files", "", "" ,"");
|
||||
m_additionalFileNames.uiCapability()->setUiReadOnly(true);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_inputPropertyCollection, "InputPropertyCollection", "", "", "", "");
|
||||
m_inputPropertyCollection = new RimEclipseInputPropertyCollection;
|
||||
m_inputPropertyCollection->parentField()->uiCapability()->setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_additionalFiles, "AdditionalFileNamesProxy", "Additional files", "", "", "");
|
||||
m_additionalFiles.registerGetMethod(this, &RimEclipseInputCase::additionalFiles);
|
||||
m_additionalFiles.uiCapability()->setUiReadOnly(true);
|
||||
m_additionalFiles.xmlCapability()->setIOWritable(false);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_additionalFilenames_OBSOLETE, "AdditionalFileNames", "Additional files", "", "" ,"");
|
||||
m_additionalFilenames_OBSOLETE.uiCapability()->setUiReadOnly(true);
|
||||
m_additionalFilenames_OBSOLETE.uiCapability()->setUiHidden(true);
|
||||
m_additionalFilenames_OBSOLETE.xmlCapability()->setIOWritable(false);
|
||||
}
|
||||
|
||||
|
||||
@@ -104,24 +113,24 @@ void RimEclipseInputCase::openDataFileSet(const QStringList& fileNames)
|
||||
{
|
||||
RiaPreferences* prefs = RiaApplication::instance()->preferences();
|
||||
|
||||
for (int i = 0; i < fileNames.size(); i++)
|
||||
{
|
||||
if (RifEclipseInputFileTools::openGridFile(fileNames[i], this->eclipseCaseData(), prefs->readerSettings->importFaults()))
|
||||
{
|
||||
m_gridFileName = fileNames[i];
|
||||
for (int i = 0; i < fileNames.size(); i++)
|
||||
{
|
||||
if (RifEclipseInputFileTools::openGridFile(fileNames[i], this->eclipseCaseData(), prefs->readerSettings->importFaults()))
|
||||
{
|
||||
m_gridFileName = fileNames[i];
|
||||
|
||||
QFileInfo gridFileName(fileNames[i]);
|
||||
QString caseName = gridFileName.completeBaseName();
|
||||
QFileInfo gridFileName(fileNames[i]);
|
||||
QString caseName = gridFileName.completeBaseName();
|
||||
|
||||
this->caseUserDescription = caseName;
|
||||
this->caseUserDescription = caseName;
|
||||
|
||||
this->eclipseCaseData()->mainGrid()->setFlipAxis(flipXAxis, flipYAxis);
|
||||
this->eclipseCaseData()->mainGrid()->setFlipAxis(flipXAxis, flipYAxis);
|
||||
|
||||
computeCachedData();
|
||||
computeCachedData();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this->eclipseCaseData()->mainGrid()->gridPointDimensions() == cvf::Vec3st(0,0,0))
|
||||
@@ -129,29 +138,26 @@ void RimEclipseInputCase::openDataFileSet(const QStringList& fileNames)
|
||||
return ; // No grid present
|
||||
}
|
||||
|
||||
// Then read the properties possibly in the grid file
|
||||
QStringList filesToRead;
|
||||
for (int i = 0; i < fileNames.size(); i++)
|
||||
std::vector<QString> filesToRead;
|
||||
for (const QString& filename : fileNames)
|
||||
{
|
||||
size_t j;
|
||||
bool exist = false;
|
||||
for (j = 0; j < m_additionalFileNames().size(); j++)
|
||||
bool exists = false;
|
||||
for (const QString& currentFileName : additionalFiles())
|
||||
{
|
||||
if (m_additionalFileNames()[j] == fileNames[i])
|
||||
if (filename == currentFileName)
|
||||
{
|
||||
exist = true;
|
||||
exists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!exist)
|
||||
if (!exists)
|
||||
{
|
||||
filesToRead.push_back(fileNames[i]);
|
||||
filesToRead.push_back(filename);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < filesToRead.size(); i++)
|
||||
for (const QString& propertyFileName : filesToRead)
|
||||
{
|
||||
QString propertyFileName = filesToRead[i];
|
||||
std::map<QString, QString> readProperties = RifEclipseInputFileTools::readProperties(propertyFileName, this->eclipseCaseData());
|
||||
|
||||
std::map<QString, QString>::iterator it;
|
||||
@@ -164,11 +170,6 @@ void RimEclipseInputCase::openDataFileSet(const QStringList& fileNames)
|
||||
inputProperty->resolvedState = RimEclipseInputProperty::RESOLVED;
|
||||
m_inputPropertyCollection->inputProperties.push_back(inputProperty);
|
||||
}
|
||||
|
||||
if (propertyFileName != m_gridFileName)
|
||||
{
|
||||
m_additionalFileNames.v().push_back(propertyFileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -251,7 +252,11 @@ void RimEclipseInputCase::loadAndSyncronizeInputProperties()
|
||||
|
||||
// Then read the properties from all the files referenced by the InputReservoir
|
||||
|
||||
std::vector<QString> filenames = m_additionalFileNames;
|
||||
std::vector<QString> filenames;
|
||||
for (const RimEclipseInputProperty* inputProperty : m_inputPropertyCollection()->inputProperties())
|
||||
{
|
||||
filenames.push_back(inputProperty->fileName);
|
||||
}
|
||||
filenames.push_back(m_gridFileName);
|
||||
|
||||
size_t inputPropCount = this->m_inputPropertyCollection()->inputProperties.size();
|
||||
@@ -392,7 +397,7 @@ void RimEclipseInputCase::defineUiOrdering(QString uiConfigName, caf::PdmUiOrder
|
||||
uiOrdering.add(&caseUserDescription);
|
||||
uiOrdering.add(&caseId);
|
||||
uiOrdering.add(&m_gridFileName);
|
||||
uiOrdering.add(&m_additionalFileNames);
|
||||
uiOrdering.add(&m_additionalFiles);
|
||||
|
||||
auto group = uiOrdering.addNewGroup("Case Options");
|
||||
group->add(&activeFormationNames);
|
||||
@@ -422,8 +427,37 @@ void RimEclipseInputCase::updateFilePathsFromProjectPath(const QString& newProje
|
||||
|
||||
m_gridFileName = RimTools::relocateFile(m_gridFileName(), newProjectPath, oldProjectPath, &foundFile, &searchedPaths);
|
||||
|
||||
for (size_t i = 0; i < m_additionalFileNames().size(); i++)
|
||||
for (RimEclipseInputProperty* inputProperty : m_inputPropertyCollection()->inputProperties())
|
||||
{
|
||||
m_additionalFileNames.v()[i] = RimTools::relocateFile(m_additionalFileNames()[i], newProjectPath, oldProjectPath, &foundFile, &searchedPaths);
|
||||
inputProperty->fileName = RimTools::relocateFile(inputProperty->fileName, newProjectPath, oldProjectPath, &foundFile, &searchedPaths);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseInputCase::updateAdditionalFileFolder(const QString& newFolder)
|
||||
{
|
||||
QDir newDir(newFolder);
|
||||
for (RimEclipseInputProperty* inputProperty : m_inputPropertyCollection()->inputProperties())
|
||||
{
|
||||
if (inputProperty->fileName == m_gridFileName) continue;
|
||||
QFileInfo oldFilePath(inputProperty->fileName);
|
||||
QFileInfo newFilePath(newDir, oldFilePath.fileName());
|
||||
inputProperty->fileName = newFilePath.absoluteFilePath();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<QString> RimEclipseInputCase::additionalFiles() const
|
||||
{
|
||||
std::vector<QString> additionalFiles;
|
||||
for (const RimEclipseInputProperty* inputProperty : m_inputPropertyCollection()->inputProperties())
|
||||
{
|
||||
if (inputProperty->fileName == m_gridFileName) continue;
|
||||
additionalFiles.push_back(inputProperty->fileName);
|
||||
}
|
||||
return additionalFiles;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user