mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Resinsight: Made Home path the default path for file dialog browsing, and added remembering of the last opened path.
Added -startdir command line argument to override the default file browse path p4#: 19263
This commit is contained in:
parent
ac26fd8e0c
commit
875d7b7d12
@ -111,6 +111,14 @@ RIApplication::RIApplication(int& argc, char** argv)
|
|||||||
|
|
||||||
m_socketServer = new RiaSocketServer( this);
|
m_socketServer = new RiaSocketServer( this);
|
||||||
m_workerProcess = NULL;
|
m_workerProcess = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
m_startupDefaultDirectory = QDir::homePath();
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
//m_startupDefaultDirectory += "/My Documents/";
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -282,6 +290,8 @@ bool RIApplication::saveProjectPromptForFileName()
|
|||||||
{
|
{
|
||||||
//if (m_project.isNull()) return true;
|
//if (m_project.isNull()) return true;
|
||||||
|
|
||||||
|
RIApplication* app = RIApplication::instance();
|
||||||
|
|
||||||
QString startPath;
|
QString startPath;
|
||||||
if (!m_project->fileName().isEmpty())
|
if (!m_project->fileName().isEmpty())
|
||||||
{
|
{
|
||||||
@ -290,7 +300,7 @@ bool RIApplication::saveProjectPromptForFileName()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
startPath = QDir::currentPath();
|
startPath = app->defaultFileDialogDirectory("BINARY_GRID");
|
||||||
}
|
}
|
||||||
|
|
||||||
startPath += "/ResInsightProject.rip";
|
startPath += "/ResInsightProject.rip";
|
||||||
@ -301,6 +311,9 @@ bool RIApplication::saveProjectPromptForFileName()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Remember the directory to next time
|
||||||
|
app->setDefaultFileDialogDirectory("BINARY_GRID", QFileInfo(fileName).absolutePath());
|
||||||
|
|
||||||
bool bSaveOk = saveProjectAs(fileName);
|
bool bSaveOk = saveProjectAs(fileName);
|
||||||
|
|
||||||
setWindowCaptionFromAppState();
|
setWindowCaptionFromAppState();
|
||||||
@ -591,38 +604,52 @@ bool RIApplication::parseArguments()
|
|||||||
|
|
||||||
bool isParsingProjectFile = false;
|
bool isParsingProjectFile = false;
|
||||||
bool isParsingCaseNames = false;
|
bool isParsingCaseNames = false;
|
||||||
|
bool isParsingStartDir = false;
|
||||||
bool showHelp = false;
|
bool showHelp = false;
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
for (i = 1; i < arguments.size(); i++)
|
for (i = 1; i < arguments.size(); i++)
|
||||||
{
|
{
|
||||||
QString arg = arguments[i];
|
QString arg = arguments[i];
|
||||||
bool argParsedAsFlag = false;
|
bool foundKnownOption = false;
|
||||||
|
|
||||||
if (arg.toLower() == "-help" || arg.toLower() == "-?")
|
if (arg.toLower() == "-help" || arg.toLower() == "-?")
|
||||||
{
|
{
|
||||||
showHelp = true;
|
showHelp = true;
|
||||||
|
foundKnownOption = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (arg.toLower() == "-last")
|
if (arg.toLower() == "-last")
|
||||||
{
|
{
|
||||||
openLatestProject = true;
|
openLatestProject = true;
|
||||||
argParsedAsFlag = true;
|
foundKnownOption = true;
|
||||||
}
|
}
|
||||||
else if (arg.toLower() == "-project")
|
else if (arg.toLower() == "-project")
|
||||||
{
|
{
|
||||||
isParsingCaseNames = false;
|
isParsingCaseNames = false;
|
||||||
isParsingProjectFile = true;
|
isParsingProjectFile = true;
|
||||||
argParsedAsFlag = true;
|
isParsingStartDir = false;
|
||||||
|
|
||||||
|
foundKnownOption = true;
|
||||||
}
|
}
|
||||||
else if (arg.toLower() == "-case")
|
else if (arg.toLower() == "-case")
|
||||||
{
|
{
|
||||||
isParsingCaseNames = true;
|
isParsingCaseNames = true;
|
||||||
isParsingProjectFile = false;
|
isParsingProjectFile = false;
|
||||||
argParsedAsFlag = true;
|
isParsingStartDir = false;
|
||||||
|
|
||||||
|
foundKnownOption = true;
|
||||||
|
}
|
||||||
|
else if (arg.toLower() == "-startdir")
|
||||||
|
{
|
||||||
|
isParsingCaseNames = false;
|
||||||
|
isParsingProjectFile = false;
|
||||||
|
isParsingStartDir = true;
|
||||||
|
|
||||||
|
foundKnownOption = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!argParsedAsFlag)
|
if (!foundKnownOption)
|
||||||
{
|
{
|
||||||
if (isParsingProjectFile && QFile::exists(arg))
|
if (isParsingProjectFile && QFile::exists(arg))
|
||||||
{
|
{
|
||||||
@ -633,6 +660,11 @@ bool RIApplication::parseArguments()
|
|||||||
{
|
{
|
||||||
caseNames.append(arg);
|
caseNames.append(arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isParsingStartDir)
|
||||||
|
{
|
||||||
|
m_startupDefaultDirectory = arg;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -648,6 +680,8 @@ bool RIApplication::parseArguments()
|
|||||||
"-project <filename> Open project file <filename>\n"
|
"-project <filename> Open project file <filename>\n"
|
||||||
"-case <casename> Open Eclipse case <casename>\n"
|
"-case <casename> Open Eclipse case <casename>\n"
|
||||||
" (do not include .GRID/.EGRID)\n"
|
" (do not include .GRID/.EGRID)\n"
|
||||||
|
"-startdir The default directory for open/save commands\n"
|
||||||
|
|
||||||
"-help \n"
|
"-help \n"
|
||||||
"-? Displays help text\n"
|
"-? Displays help text\n"
|
||||||
"-----------------------------------------------------------------";
|
"-----------------------------------------------------------------";
|
||||||
@ -883,3 +917,28 @@ void RIApplication::terminateProcess()
|
|||||||
|
|
||||||
m_workerProcess = NULL;
|
m_workerProcess = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
QString RIApplication::defaultFileDialogDirectory(const QString& dialogName)
|
||||||
|
{
|
||||||
|
QString defaultDirectory = m_startupDefaultDirectory;
|
||||||
|
std::map<QString, QString>::iterator it;
|
||||||
|
it = m_fileDialogDefaultDirectories.find(dialogName);
|
||||||
|
|
||||||
|
if ( it != m_fileDialogDefaultDirectories.end())
|
||||||
|
{
|
||||||
|
defaultDirectory = it->second;
|
||||||
|
}
|
||||||
|
|
||||||
|
return defaultDirectory;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RIApplication::setDefaultFileDialogDirectory(const QString& dialogName, const QString& defaultDirectory)
|
||||||
|
{
|
||||||
|
m_fileDialogDefaultDirectories[dialogName] = defaultDirectory;
|
||||||
|
}
|
||||||
|
@ -75,6 +75,9 @@ public:
|
|||||||
void createLargeResultsMockModel();
|
void createLargeResultsMockModel();
|
||||||
void createInputMockModel();
|
void createInputMockModel();
|
||||||
|
|
||||||
|
QString defaultFileDialogDirectory(const QString& dialogName);
|
||||||
|
void setDefaultFileDialogDirectory(const QString& dialogName, const QString& defaultDirectory);
|
||||||
|
|
||||||
bool openEclipseCaseFromFile(const QString& fileName);
|
bool openEclipseCaseFromFile(const QString& fileName);
|
||||||
bool openEclipseCase(const QString& caseName, const QString& caseFileName);
|
bool openEclipseCase(const QString& caseName, const QString& caseFileName);
|
||||||
bool openInputEclipseCase(const QString& caseName, const QStringList& caseFileNames);
|
bool openInputEclipseCase(const QString& caseName, const QStringList& caseFileNames);
|
||||||
@ -129,4 +132,7 @@ private:
|
|||||||
caf::UiProcess* m_workerProcess;
|
caf::UiProcess* m_workerProcess;
|
||||||
|
|
||||||
RIPreferences* m_preferences;
|
RIPreferences* m_preferences;
|
||||||
|
|
||||||
|
std::map<QString, QString> m_fileDialogDefaultDirectories;
|
||||||
|
QString m_startupDefaultDirectory;
|
||||||
};
|
};
|
||||||
|
@ -558,9 +558,17 @@ void RimUiTreeView::setModel(QAbstractItemModel* model)
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimUiTreeView::slotAddInputProperty()
|
void RimUiTreeView::slotAddInputProperty()
|
||||||
{
|
{
|
||||||
QStringList fileNames = QFileDialog::getOpenFileNames(this, "Select Eclipse Input Property Files", NULL, "All Files (*.* *)");
|
RIApplication* app = RIApplication::instance();
|
||||||
|
QString defaultDir = app->defaultFileDialogDirectory("INPUT_FILES");
|
||||||
|
QStringList fileNames = QFileDialog::getOpenFileNames(this, "Select Eclipse Input Property Files", defaultDir, "All Files (*.* *)");
|
||||||
|
|
||||||
if (fileNames.isEmpty()) return;
|
if (fileNames.isEmpty()) return;
|
||||||
|
|
||||||
|
// Remember the directory to next time
|
||||||
|
defaultDir = QFileInfo(fileNames.last()).absolutePath();
|
||||||
|
app->setDefaultFileDialogDirectory("INPUT_FILES", defaultDir);
|
||||||
|
|
||||||
|
|
||||||
QModelIndex index = currentIndex();
|
QModelIndex index = currentIndex();
|
||||||
RimUiTreeModelPdm* myModel = dynamic_cast<RimUiTreeModelPdm*>(model());
|
RimUiTreeModelPdm* myModel = dynamic_cast<RimUiTreeModelPdm*>(model());
|
||||||
caf::PdmUiTreeItem* uiItem = myModel->getTreeItemFromIndex(currentIndex());
|
caf::PdmUiTreeItem* uiItem = myModel->getTreeItemFromIndex(currentIndex());
|
||||||
|
@ -595,13 +595,19 @@ void RIMainWindow::slotOpenBinaryGridFiles()
|
|||||||
{
|
{
|
||||||
if (checkForDocumentModifications())
|
if (checkForDocumentModifications())
|
||||||
{
|
{
|
||||||
|
RIApplication* app = RIApplication::instance();
|
||||||
|
|
||||||
#ifdef USE_ECL_LIB
|
#ifdef USE_ECL_LIB
|
||||||
QStringList fileNames = QFileDialog::getOpenFileNames(this, "Open Eclipse File", NULL, "Eclipse Grid Files (*.GRID *.EGRID)");
|
|
||||||
|
QString defaultDir = app->defaultFileDialogDirectory("BINARY_GRID");
|
||||||
|
QStringList fileNames = QFileDialog::getOpenFileNames(this, "Open Eclipse File", defaultDir, "Eclipse Grid Files (*.GRID *.EGRID)");
|
||||||
|
if (fileNames.size()) defaultDir = QFileInfo(fileNames.last()).absolutePath();
|
||||||
|
app->setDefaultFileDialogDirectory("BINARY_GRID", defaultDir);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
QStringList fileNames;
|
QStringList fileNames;
|
||||||
fileNames << "dummy";
|
fileNames << "dummy";
|
||||||
#endif
|
#endif
|
||||||
RIApplication* app = RIApplication::instance();
|
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < fileNames.size(); i++)
|
for (i = 0; i < fileNames.size(); i++)
|
||||||
@ -624,11 +630,15 @@ void RIMainWindow::slotOpenInputFiles()
|
|||||||
{
|
{
|
||||||
if (checkForDocumentModifications())
|
if (checkForDocumentModifications())
|
||||||
{
|
{
|
||||||
QStringList fileNames = QFileDialog::getOpenFileNames(this, "Open Eclipse Input Files", NULL, "Eclipse Input Files and Input Properties (*.GRDECL *)");
|
RIApplication* app = RIApplication::instance();
|
||||||
|
QString defaultDir = app->defaultFileDialogDirectory("INPUT_FILES");
|
||||||
|
QStringList fileNames = QFileDialog::getOpenFileNames(this, "Open Eclipse Input Files", defaultDir, "Eclipse Input Files and Input Properties (*.GRDECL *)");
|
||||||
|
|
||||||
if (fileNames.isEmpty()) return;
|
if (fileNames.isEmpty()) return;
|
||||||
|
|
||||||
RIApplication* app = RIApplication::instance();
|
// Remember the path to next time
|
||||||
|
app->setDefaultFileDialogDirectory("INPUT_FILES", QFileInfo(fileNames.last()).absolutePath());
|
||||||
|
|
||||||
app->openInputEclipseCase("Eclipse Input Files", fileNames);
|
app->openInputEclipseCase("Eclipse Input Files", fileNames);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -641,10 +651,15 @@ void RIMainWindow::slotOpenProject()
|
|||||||
{
|
{
|
||||||
if (checkForDocumentModifications())
|
if (checkForDocumentModifications())
|
||||||
{
|
{
|
||||||
QString fileName = QFileDialog::getOpenFileName(this, "Open ResInsight Project", NULL, "ResInsight project (*.rip)");
|
RIApplication* app = RIApplication::instance();
|
||||||
|
QString defaultDir = app->defaultFileDialogDirectory("BINARY_GRID");
|
||||||
|
QString fileName = QFileDialog::getOpenFileName(this, "Open ResInsight Project", defaultDir, "ResInsight project (*.rip)");
|
||||||
|
|
||||||
if (fileName.isEmpty()) return;
|
if (fileName.isEmpty()) return;
|
||||||
|
|
||||||
RIApplication* app = RIApplication::instance();
|
// Remember the path to next time
|
||||||
|
app->setDefaultFileDialogDirectory("BINARY_GRID", QFileInfo(fileName).absolutePath());
|
||||||
|
|
||||||
app->loadProject(fileName);
|
app->loadProject(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,11 +122,21 @@ void PdmUiFilePathEditor::slotEditingFinished()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void PdmUiFilePathEditor::fileSelectionClicked()
|
void PdmUiFilePathEditor::fileSelectionClicked()
|
||||||
{
|
{
|
||||||
|
QString defaultPath;
|
||||||
|
if ( m_lineEdit->text().isEmpty())
|
||||||
|
{
|
||||||
|
defaultPath = QDir::homePath();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
defaultPath = m_lineEdit->text();
|
||||||
|
}
|
||||||
|
|
||||||
if (m_attributes.m_selectDirectory)
|
if (m_attributes.m_selectDirectory)
|
||||||
{
|
{
|
||||||
QString directoryPath = QFileDialog::getExistingDirectory(m_lineEdit,
|
QString directoryPath = QFileDialog::getExistingDirectory(m_lineEdit,
|
||||||
tr("Get existing directory"),
|
tr("Get existing directory"),
|
||||||
m_lineEdit->text(),
|
defaultPath,
|
||||||
QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
|
QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
|
||||||
|
|
||||||
if (!directoryPath.isEmpty())
|
if (!directoryPath.isEmpty())
|
||||||
@ -140,11 +150,11 @@ void PdmUiFilePathEditor::fileSelectionClicked()
|
|||||||
QString filePath;
|
QString filePath;
|
||||||
if (m_attributes.m_selectSaveFileName)
|
if (m_attributes.m_selectSaveFileName)
|
||||||
{
|
{
|
||||||
filePath = QFileDialog::getSaveFileName(m_lineEdit, tr("Save File"), m_lineEdit->text(), m_attributes.m_fileSelectionFilter);
|
filePath = QFileDialog::getSaveFileName(m_lineEdit, tr("Save File"), defaultPath, m_attributes.m_fileSelectionFilter);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
filePath = QFileDialog::getOpenFileName(m_lineEdit, tr("Choose a file"), m_lineEdit->text(), m_attributes.m_fileSelectionFilter);
|
filePath = QFileDialog::getOpenFileName(m_lineEdit, tr("Choose a file"), defaultPath, m_attributes.m_fileSelectionFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!filePath.isEmpty())
|
if (!filePath.isEmpty())
|
||||||
|
Loading…
Reference in New Issue
Block a user