Added menu item for multiple case import

Find EGRID files recursively in subfolders
p4#: 20603
This commit is contained in:
Magne Sjaastad
2013-02-21 16:46:34 +01:00
parent 0dc492da75
commit 49236839a3
4 changed files with 98 additions and 0 deletions

View File

@@ -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;
}

View File

@@ -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();

View File

@@ -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);
}
}

View File

@@ -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();