#3479 Input Case : Use default folder fallback to case folder

This commit is contained in:
Magne Sjaastad 2018-10-10 09:50:46 +02:00
parent e1b1e3e898
commit 06f91a6762
2 changed files with 18 additions and 14 deletions

View File

@ -116,6 +116,7 @@ public:
QString lastUsedDialogDirectory(const QString& dialogName); QString lastUsedDialogDirectory(const QString& dialogName);
QString lastUsedDialogDirectoryWithFallbackToProjectFolder(const QString& dialogName); QString lastUsedDialogDirectoryWithFallbackToProjectFolder(const QString& dialogName);
QString lastUsedDialogDirectoryWithFallback(const QString& dialogName, const QString& fallbackDirectory);
void setLastUsedDialogDirectory(const QString& dialogName, const QString& directory); void setLastUsedDialogDirectory(const QString& dialogName, const QString& directory);
bool openFile(const QString& fileName); bool openFile(const QString& fileName);
@ -214,8 +215,6 @@ private:
void loadAndUpdatePlotData(); void loadAndUpdatePlotData();
QString lastUsedDialogDirectoryWithFallback(const QString& dialogName, const QString& fallbackDirectory);
void storeTreeViewState(); void storeTreeViewState();
friend RiaArgumentParser; friend RiaArgumentParser;

View File

@ -47,8 +47,20 @@ bool RicAddEclipseInputPropertyFeature::isCommandEnabled()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RicAddEclipseInputPropertyFeature::onActionTriggered(bool isChecked) 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(); 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 (*.* *)"); QStringList fileNames = QFileDialog::getOpenFileNames(Riu3DMainWindowTools::mainWindowWidget(), "Select Eclipse Input Property Files", defaultDir, "All Files (*.* *)");
if (fileNames.isEmpty()) return; if (fileNames.isEmpty()) return;
@ -57,7 +69,6 @@ void RicAddEclipseInputPropertyFeature::onActionTriggered(bool isChecked)
defaultDir = QFileInfo(fileNames.last()).absolutePath(); defaultDir = QFileInfo(fileNames.last()).absolutePath();
app->setLastUsedDialogDirectory("INPUT_FILES", defaultDir); app->setLastUsedDialogDirectory("INPUT_FILES", defaultDir);
RimEclipseInputPropertyCollection* inputPropertyCollection = selectedInputPropertyCollection();
if (inputPropertyCollection) if (inputPropertyCollection)
{ {
addEclipseInputProperty(fileNames, inputPropertyCollection); addEclipseInputProperty(fileNames, inputPropertyCollection);
@ -77,10 +88,7 @@ void RicAddEclipseInputPropertyFeature::setupActionLook(QAction* actionToSetup)
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RimEclipseInputPropertyCollection* RicAddEclipseInputPropertyFeature::selectedInputPropertyCollection() const RimEclipseInputPropertyCollection* RicAddEclipseInputPropertyFeature::selectedInputPropertyCollection() const
{ {
std::vector<RimEclipseInputPropertyCollection*> selection; return caf::SelectionManager::instance()->selectedItemOfType<RimEclipseInputPropertyCollection>();
caf::SelectionManager::instance()->objectsByType(&selection);
return selection.size() > 0 ? selection[0] : NULL;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -90,12 +98,9 @@ void RicAddEclipseInputPropertyFeature::addEclipseInputProperty(const QStringLis
{ {
CVF_ASSERT(inputPropertyCollection); CVF_ASSERT(inputPropertyCollection);
RimEclipseInputCase* inputReservoir = dynamic_cast<RimEclipseInputCase*>(inputPropertyCollection->parentField()->ownerObject()); RimEclipseInputCase* inputReservoir = nullptr;
CVF_ASSERT(inputReservoir); inputPropertyCollection->firstAncestorOrThisOfTypeAsserted(inputReservoir);
if (inputReservoir) inputReservoir->openDataFileSet(fileNames);
{
inputReservoir->openDataFileSet(fileNames);
}
inputPropertyCollection->updateConnectedEditors(); inputPropertyCollection->updateConnectedEditors();
} }