From 06f91a67625561fdc45998b90aeddeb62389e128 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Wed, 10 Oct 2018 09:50:46 +0200 Subject: [PATCH] #3479 Input Case : Use default folder fallback to case folder --- ApplicationCode/Application/RiaApplication.h | 3 +- .../RicAddEclipseInputPropertyFeature.cpp | 29 +++++++++++-------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/ApplicationCode/Application/RiaApplication.h b/ApplicationCode/Application/RiaApplication.h index 5422745f80..c2db39d4e9 100644 --- a/ApplicationCode/Application/RiaApplication.h +++ b/ApplicationCode/Application/RiaApplication.h @@ -116,6 +116,7 @@ public: QString lastUsedDialogDirectory(const QString& dialogName); QString lastUsedDialogDirectoryWithFallbackToProjectFolder(const QString& dialogName); + QString lastUsedDialogDirectoryWithFallback(const QString& dialogName, const QString& fallbackDirectory); void setLastUsedDialogDirectory(const QString& dialogName, const QString& directory); bool openFile(const QString& fileName); @@ -214,8 +215,6 @@ private: void loadAndUpdatePlotData(); - QString lastUsedDialogDirectoryWithFallback(const QString& dialogName, const QString& fallbackDirectory); - void storeTreeViewState(); friend RiaArgumentParser; diff --git a/ApplicationCode/Commands/EclipseCommands/RicAddEclipseInputPropertyFeature.cpp b/ApplicationCode/Commands/EclipseCommands/RicAddEclipseInputPropertyFeature.cpp index 06e9b95963..f292a5726f 100644 --- a/ApplicationCode/Commands/EclipseCommands/RicAddEclipseInputPropertyFeature.cpp +++ b/ApplicationCode/Commands/EclipseCommands/RicAddEclipseInputPropertyFeature.cpp @@ -47,8 +47,20 @@ bool RicAddEclipseInputPropertyFeature::isCommandEnabled() //-------------------------------------------------------------------------------------------------- void RicAddEclipseInputPropertyFeature::onActionTriggered(bool isChecked) { + RimEclipseInputPropertyCollection* inputPropertyCollection = selectedInputPropertyCollection(); + if (!inputPropertyCollection) return; + + QString casePath; + { + RimEclipseInputCase* inputReservoir = nullptr; + inputPropertyCollection->firstAncestorOrThisOfTypeAsserted(inputReservoir); + + QFileInfo fi(inputReservoir->gridFileName()); + casePath = fi.absolutePath(); + } + RiaApplication* app = RiaApplication::instance(); - QString defaultDir = app->lastUsedDialogDirectory("INPUT_FILES"); + QString defaultDir = app->lastUsedDialogDirectoryWithFallback("INPUT_FILES", casePath); QStringList fileNames = QFileDialog::getOpenFileNames(Riu3DMainWindowTools::mainWindowWidget(), "Select Eclipse Input Property Files", defaultDir, "All Files (*.* *)"); if (fileNames.isEmpty()) return; @@ -57,7 +69,6 @@ void RicAddEclipseInputPropertyFeature::onActionTriggered(bool isChecked) defaultDir = QFileInfo(fileNames.last()).absolutePath(); app->setLastUsedDialogDirectory("INPUT_FILES", defaultDir); - RimEclipseInputPropertyCollection* inputPropertyCollection = selectedInputPropertyCollection(); if (inputPropertyCollection) { addEclipseInputProperty(fileNames, inputPropertyCollection); @@ -77,10 +88,7 @@ void RicAddEclipseInputPropertyFeature::setupActionLook(QAction* actionToSetup) //-------------------------------------------------------------------------------------------------- RimEclipseInputPropertyCollection* RicAddEclipseInputPropertyFeature::selectedInputPropertyCollection() const { - std::vector selection; - caf::SelectionManager::instance()->objectsByType(&selection); - - return selection.size() > 0 ? selection[0] : NULL; + return caf::SelectionManager::instance()->selectedItemOfType(); } //-------------------------------------------------------------------------------------------------- @@ -90,12 +98,9 @@ void RicAddEclipseInputPropertyFeature::addEclipseInputProperty(const QStringLis { CVF_ASSERT(inputPropertyCollection); - RimEclipseInputCase* inputReservoir = dynamic_cast(inputPropertyCollection->parentField()->ownerObject()); - CVF_ASSERT(inputReservoir); - if (inputReservoir) - { - inputReservoir->openDataFileSet(fileNames); - } + RimEclipseInputCase* inputReservoir = nullptr; + inputPropertyCollection->firstAncestorOrThisOfTypeAsserted(inputReservoir); + inputReservoir->openDataFileSet(fileNames); inputPropertyCollection->updateConnectedEditors(); }