mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Added menu item for multiple case import
Find EGRID files recursively in subfolders p4#: 20603
This commit is contained in:
@@ -1291,3 +1291,28 @@ void RIApplication::updateRegressionTest(const QString& testRootPath)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RIApplication::addEclipseCase(const QString& fileName)
|
||||
{
|
||||
QFileInfo gridFileName(fileName);
|
||||
|
||||
QString caseName = gridFileName.completeBaseName();
|
||||
QString casePath = gridFileName.absolutePath();
|
||||
|
||||
RimResultReservoir* rimResultReservoir = new RimResultReservoir();
|
||||
rimResultReservoir->caseName = caseName;
|
||||
rimResultReservoir->caseFileName = fileName;
|
||||
rimResultReservoir->caseDirectory = casePath;
|
||||
|
||||
m_project->reservoirs.push_back(rimResultReservoir);
|
||||
|
||||
rimResultReservoir->openEclipseGridFile();
|
||||
|
||||
onProjectOpenedOrClosed();
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
@@ -80,6 +80,7 @@ public:
|
||||
|
||||
bool openEclipseCaseFromFile(const QString& fileName);
|
||||
bool openEclipseCase(const QString& caseName, const QString& caseFileName);
|
||||
bool addEclipseCase(const QString& fileName);
|
||||
bool openInputEclipseCase(const QString& caseName, const QStringList& caseFileNames);
|
||||
|
||||
bool loadLastUsedProject();
|
||||
|
||||
@@ -177,6 +177,8 @@ void RIMainWindow::createActions()
|
||||
// File actions
|
||||
m_openAction = new QAction(QIcon(":/AppLogo48x48.png"), "&Open Eclipse Case", this);
|
||||
m_openInputEclipseFileAction= new QAction(QIcon(":/EclipseInput48x48.png"), "&Open Input Eclipse Case", this);
|
||||
m_openMultipleEclipseCasesAction = new QAction(QIcon(":/EclipseInput48x48.png"), "&Open Multiple Eclipse Folders", this);
|
||||
|
||||
m_openProjectAction = new QAction(style()->standardIcon(QStyle::SP_DirOpenIcon), "&Open Project", this);
|
||||
m_openLastUsedProjectAction = new QAction("Open &Last Used Project", this);
|
||||
|
||||
@@ -197,6 +199,7 @@ void RIMainWindow::createActions()
|
||||
|
||||
connect(m_openAction, SIGNAL(triggered()), SLOT(slotOpenBinaryGridFiles()));
|
||||
connect(m_openInputEclipseFileAction,SIGNAL(triggered()), SLOT(slotOpenInputFiles()));
|
||||
connect(m_openMultipleEclipseCasesAction,SIGNAL(triggered()), SLOT(slotOpenMultipleCases()));
|
||||
connect(m_openProjectAction, SIGNAL(triggered()), SLOT(slotOpenProject()));
|
||||
connect(m_openLastUsedProjectAction,SIGNAL(triggered()), SLOT(slotOpenLastUsedProject()));
|
||||
|
||||
@@ -264,6 +267,7 @@ void RIMainWindow::createMenus()
|
||||
QMenu* fileMenu = menuBar()->addMenu("&File");
|
||||
fileMenu->addAction(m_openAction);
|
||||
fileMenu->addAction(m_openInputEclipseFileAction);
|
||||
fileMenu->addAction(m_openMultipleEclipseCasesAction);
|
||||
fileMenu->addAction(m_openProjectAction);
|
||||
fileMenu->addAction(m_openLastUsedProjectAction);
|
||||
|
||||
@@ -1249,3 +1253,69 @@ void RIMainWindow::hideAllDockWindows()
|
||||
dockWidgets[i]->close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void appendEGRIDFilesRecursively(const QString& folderName, QStringList& gridFileNames)
|
||||
{
|
||||
{
|
||||
QDir baseDir(folderName);
|
||||
baseDir.setFilter(QDir::Files);
|
||||
|
||||
QStringList nameFilters;
|
||||
nameFilters << "*.egrid" << ".EGRID";
|
||||
baseDir.setNameFilters(nameFilters);
|
||||
|
||||
QStringList fileNames = baseDir.entryList();
|
||||
|
||||
for (int i = 0; i < fileNames.size(); ++i)
|
||||
{
|
||||
QString fileName = fileNames[i];
|
||||
|
||||
QString absoluteFolderName = baseDir.absoluteFilePath(fileName);
|
||||
|
||||
gridFileNames.append(absoluteFolderName);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
QDir baseDir(folderName);
|
||||
baseDir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
|
||||
|
||||
QStringList subFolders = baseDir.entryList();
|
||||
|
||||
for (int i = 0; i < subFolders.size(); ++i)
|
||||
{
|
||||
QString folderName = subFolders[i];
|
||||
|
||||
QString absoluteFolderName = baseDir.absoluteFilePath(folderName);
|
||||
appendEGRIDFilesRecursively(absoluteFolderName, gridFileNames);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RIMainWindow::slotOpenMultipleCases()
|
||||
{
|
||||
RIApplication* app = RIApplication::instance();
|
||||
|
||||
|
||||
QStringList folderNames;
|
||||
QStringList gridFileNames;
|
||||
|
||||
for (int i = 0; i < folderNames.size(); i++)
|
||||
{
|
||||
QString fileName = folderNames[i];
|
||||
|
||||
appendEGRIDFilesRecursively(fileName, gridFileNames);
|
||||
}
|
||||
|
||||
for (int i = 0; i < gridFileNames.size(); i++)
|
||||
{
|
||||
QString fileName = gridFileNames[i];
|
||||
|
||||
app->addEclipseCase(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,6 +106,7 @@ private:
|
||||
// File actions
|
||||
QAction* m_openAction;
|
||||
QAction* m_openInputEclipseFileAction;
|
||||
QAction* m_openMultipleEclipseCasesAction;
|
||||
QAction* m_openProjectAction;
|
||||
QAction* m_openLastUsedProjectAction;
|
||||
QAction* m_saveProjectAction;
|
||||
@@ -162,6 +163,7 @@ private slots:
|
||||
// File slots
|
||||
void slotOpenBinaryGridFiles();
|
||||
void slotOpenInputFiles();
|
||||
void slotOpenMultipleCases();
|
||||
void slotOpenProject();
|
||||
void slotOpenLastUsedProject();
|
||||
void slotSaveProject();
|
||||
|
||||
Reference in New Issue
Block a user