#2774 Import Ensemble: Ask for name before importing cases

This commit is contained in:
Jacob Støren 2018-04-25 12:01:26 +02:00
parent 54b21a8a49
commit e86c39b189
3 changed files with 19 additions and 17 deletions

View File

@ -60,16 +60,19 @@ bool RicImportEnsembleFeature::isCommandEnabled()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RicImportEnsembleFeature::onActionTriggered(bool isChecked) void RicImportEnsembleFeature::onActionTriggered(bool isChecked)
{ {
RiaApplication* app = RiaApplication::instance(); RiaApplication* app = RiaApplication::instance();
QStringList fileNames = RicImportSummaryCasesFeature::runRecursiveSummaryCaseFileSearchDialog("Import Ensemble");
std::vector<RimSummaryCase*> cases = RicImportSummaryCasesFeature::importSummaryCases("Import Ensemble");
if (cases.empty()) return; if (fileNames.isEmpty()) return;
validateEnsembleCases(cases);
QString ensembleName = askForEnsembleName(); QString ensembleName = askForEnsembleName();
if (ensembleName.isEmpty()) return; if (ensembleName.isEmpty()) return;
std::vector<RimSummaryCase*> cases;
RicImportSummaryCasesFeature::createSummaryCasesFromFiles(fileNames, &cases);
validateEnsembleCases(cases);
RicImportSummaryCasesFeature::addSummaryCases(cases); RicImportSummaryCasesFeature::addSummaryCases(cases);
RicCreateSummaryCaseCollectionFeature::groupSummaryCases(cases, ensembleName); RicCreateSummaryCaseCollectionFeature::groupSummaryCases(cases, ensembleName);

View File

@ -65,9 +65,12 @@ bool RicImportSummaryCasesFeature::isCommandEnabled()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RicImportSummaryCasesFeature::onActionTriggered(bool isChecked) void RicImportSummaryCasesFeature::onActionTriggered(bool isChecked)
{ {
RiaApplication* app = RiaApplication::instance(); RiaApplication* app = RiaApplication::instance();
std::vector<RimSummaryCase*> cases = importSummaryCases("Import Summary Cases"); QStringList fileNames = runRecursiveSummaryCaseFileSearchDialog("Import Summary Cases");
std::vector<RimSummaryCase*> cases;
if (!fileNames.isEmpty()) createSummaryCasesFromFiles(fileNames, &cases);
addSummaryCases(cases); addSummaryCases(cases);
for (const auto& rimCase : cases) RiaApplication::instance()->addToRecentFiles(rimCase->summaryHeaderFilename()); for (const auto& rimCase : cases) RiaApplication::instance()->addToRecentFiles(rimCase->summaryHeaderFilename());
@ -108,7 +111,8 @@ bool RicImportSummaryCasesFeature::createAndAddSummaryCasesFromFiles(const QStri
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
bool RicImportSummaryCasesFeature::createSummaryCasesFromFiles(const QStringList& fileNames, std::vector<RimSummaryCase*>* newCases) bool RicImportSummaryCasesFeature::createSummaryCasesFromFiles(const QStringList& fileNames,
std::vector<RimSummaryCase*>* newCases)
{ {
RiaApplication* app = RiaApplication::instance(); RiaApplication* app = RiaApplication::instance();
RimProject* proj = app->project(); RimProject* proj = app->project();
@ -161,7 +165,7 @@ void RicImportSummaryCasesFeature::addSummaryCases(const std::vector<RimSummaryC
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
std::vector<RimSummaryCase*> RicImportSummaryCasesFeature::importSummaryCases(const QString& dialogTitle) QStringList RicImportSummaryCasesFeature::runRecursiveSummaryCaseFileSearchDialog(const QString& dialogTitle)
{ {
RiaApplication* app = RiaApplication::instance(); RiaApplication* app = RiaApplication::instance();
QString defaultDir = app->lastUsedDialogDirectory("INPUT_FILES"); QString defaultDir = app->lastUsedDialogDirectory("INPUT_FILES");
@ -177,15 +181,10 @@ std::vector<RimSummaryCase*> RicImportSummaryCasesFeature::importSummaryCases(co
m_pathFilter = result.pathFilter; m_pathFilter = result.pathFilter;
m_fileNameFilter = result.fileNameFilter; m_fileNameFilter = result.fileNameFilter;
if (!result.ok) return std::vector<RimSummaryCase*>(); if (!result.ok) return QStringList();
// Remember the path to next time // Remember the path to next time
app->setLastUsedDialogDirectory("INPUT_FILES", QFileInfo(result.rootDir).absoluteFilePath()); app->setLastUsedDialogDirectory("INPUT_FILES", QFileInfo(result.rootDir).absoluteFilePath());
QStringList fileNames = result.files; return result.files;
if (fileNames.isEmpty()) return std::vector<RimSummaryCase*>();
std::vector<RimSummaryCase*> newCases;
createSummaryCasesFromFiles(fileNames, &newCases);
return newCases;
} }

View File

@ -42,7 +42,7 @@ public:
static bool createSummaryCasesFromFiles(const QStringList& fileName, std::vector<RimSummaryCase*>* newCases); static bool createSummaryCasesFromFiles(const QStringList& fileName, std::vector<RimSummaryCase*>* newCases);
static void addSummaryCases(const std::vector<RimSummaryCase*> cases); static void addSummaryCases(const std::vector<RimSummaryCase*> cases);
static std::vector<RimSummaryCase*> importSummaryCases(const QString& dialogTitle); static QStringList runRecursiveSummaryCaseFileSearchDialog(const QString& dialogTitle);
protected: protected:
// Overrides // Overrides