diff --git a/ApplicationLibCode/Application/RiaPreferences.cpp b/ApplicationLibCode/Application/RiaPreferences.cpp index c7ee9fa0c0..c5f99c3071 100644 --- a/ApplicationLibCode/Application/RiaPreferences.cpp +++ b/ApplicationLibCode/Application/RiaPreferences.cpp @@ -233,6 +233,16 @@ RiaPreferences::RiaPreferences() CAF_PDM_InitField( &m_writeEchoInGrdeclFiles, "writeEchoInGrdeclFiles", false, "Write NOECHO and ECHO in GRDECL files" ); caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_writeEchoInGrdeclFiles ); + CAF_PDM_InitField( &m_useRecentlyUsedFolderAsDefault, + "useRecentlyUsedFolderAsDefault", + false, + "Use Recently Used Folder/File as Default", + "", + "When enabled, file dialogs will open at the most recently used folder/file path. " + "When disabled, the last used directory combined with the default filter pattern is used.", + "" ); + caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_useRecentlyUsedFolderAsDefault ); + CAF_PDM_InitFieldNoDefault( &m_gridCalculationExpressionFolder, "gridCalculationExpressionFolder", "Grid Calculation Expression Folder" ); CAF_PDM_InitFieldNoDefault( &m_summaryCalculationExpressionFolder, "summaryCalculationExpressionFolder", @@ -504,6 +514,9 @@ void RiaPreferences::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& #endif else if ( uiConfigName == RiaPreferences::tabNameImportExport() ) { + caf::PdmUiGroup* diskOpsGroup = uiOrdering.addNewGroup( "Disk Operations" ); + diskOpsGroup->add( &m_useRecentlyUsedFolderAsDefault ); + caf::PdmUiGroup* importGroup = uiOrdering.addNewGroup( "Import" ); importGroup->add( &m_surfaceImportResamplingDistance ); importGroup->add( &m_multiLateralWellPattern ); @@ -857,6 +870,14 @@ bool RiaPreferences::writeEchoInGrdeclFiles() const return m_writeEchoInGrdeclFiles; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RiaPreferences::useRecentlyUsedFolderAsDefault() const +{ + return m_useRecentlyUsedFolderAsDefault; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Application/RiaPreferences.h b/ApplicationLibCode/Application/RiaPreferences.h index f19608ea6f..8408f41900 100644 --- a/ApplicationLibCode/Application/RiaPreferences.h +++ b/ApplicationLibCode/Application/RiaPreferences.h @@ -88,6 +88,7 @@ public: void setLastUsedPlotTemplatePath( const QString& templatePath ); bool openExportedPdfInViewer() const; bool writeEchoInGrdeclFiles() const; + bool useRecentlyUsedFolderAsDefault() const; RiaDefines::ThemeEnum guiTheme() const; @@ -196,6 +197,7 @@ private: caf::PdmField m_pageBottomMargin; caf::PdmField m_openExportedPdfInViewer; caf::PdmField m_writeEchoInGrdeclFiles; + caf::PdmField m_useRecentlyUsedFolderAsDefault; caf::PdmField m_plotTemplateFolders; caf::PdmField m_maxPlotTemplateFoldersDepth; diff --git a/ApplicationLibCode/Commands/RicRecursiveFileSearchDialog.cpp b/ApplicationLibCode/Commands/RicRecursiveFileSearchDialog.cpp index ca1d57f4ae..f44a7682dd 100644 --- a/ApplicationLibCode/Commands/RicRecursiveFileSearchDialog.cpp +++ b/ApplicationLibCode/Commands/RicRecursiveFileSearchDialog.cpp @@ -22,6 +22,7 @@ #include "RiaFilePathTools.h" #include "RiaFileSearchTools.h" #include "RiaGuiApplication.h" +#include "RiaPreferences.h" #include "RiaStdStringTools.h" #include "RiaStringListSerializer.h" @@ -234,7 +235,15 @@ RicRecursiveFileSearchDialogResult RicRecursiveFileSearchDialog::runRecursiveSea dialog.m_fileFilterField->setCurrentText( fileNameFilter ); dialog.m_fileFilterField->setEditable( true ); - dialog.m_pathFilterField->setCurrentText( QDir::toNativeSeparators( pathFilterText ) ); + // Use most recently used path from registry (index 1) when preference is enabled, otherwise use constructed fallback (index 0) + if ( RiaPreferences::current()->useRecentlyUsedFolderAsDefault() && dialog.m_pathFilterField->count() > 1 ) + { + dialog.m_pathFilterField->setCurrentIndex( 1 ); + } + else + { + dialog.m_pathFilterField->setCurrentText( QDir::toNativeSeparators( pathFilterText ) ); + } dialog.m_pathFilterField->setEditable( true ); if ( !fileTypes.empty() )