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_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;
|
||||
|
||||
RIApplication* app = RIApplication::instance();
|
||||
|
||||
QString startPath;
|
||||
if (!m_project->fileName().isEmpty())
|
||||
{
|
||||
@ -290,7 +300,7 @@ bool RIApplication::saveProjectPromptForFileName()
|
||||
}
|
||||
else
|
||||
{
|
||||
startPath = QDir::currentPath();
|
||||
startPath = app->defaultFileDialogDirectory("BINARY_GRID");
|
||||
}
|
||||
|
||||
startPath += "/ResInsightProject.rip";
|
||||
@ -301,6 +311,9 @@ bool RIApplication::saveProjectPromptForFileName()
|
||||
return false;
|
||||
}
|
||||
|
||||
// Remember the directory to next time
|
||||
app->setDefaultFileDialogDirectory("BINARY_GRID", QFileInfo(fileName).absolutePath());
|
||||
|
||||
bool bSaveOk = saveProjectAs(fileName);
|
||||
|
||||
setWindowCaptionFromAppState();
|
||||
@ -591,38 +604,52 @@ bool RIApplication::parseArguments()
|
||||
|
||||
bool isParsingProjectFile = false;
|
||||
bool isParsingCaseNames = false;
|
||||
bool isParsingStartDir = false;
|
||||
bool showHelp = false;
|
||||
|
||||
int i;
|
||||
for (i = 1; i < arguments.size(); i++)
|
||||
{
|
||||
QString arg = arguments[i];
|
||||
bool argParsedAsFlag = false;
|
||||
bool foundKnownOption = false;
|
||||
|
||||
if (arg.toLower() == "-help" || arg.toLower() == "-?")
|
||||
{
|
||||
showHelp = true;
|
||||
foundKnownOption = true;
|
||||
}
|
||||
|
||||
if (arg.toLower() == "-last")
|
||||
{
|
||||
openLatestProject = true;
|
||||
argParsedAsFlag = true;
|
||||
foundKnownOption = true;
|
||||
}
|
||||
else if (arg.toLower() == "-project")
|
||||
{
|
||||
isParsingCaseNames = false;
|
||||
isParsingProjectFile = true;
|
||||
argParsedAsFlag = true;
|
||||
isParsingStartDir = false;
|
||||
|
||||
foundKnownOption = true;
|
||||
}
|
||||
else if (arg.toLower() == "-case")
|
||||
{
|
||||
isParsingCaseNames = true;
|
||||
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))
|
||||
{
|
||||
@ -633,6 +660,11 @@ bool RIApplication::parseArguments()
|
||||
{
|
||||
caseNames.append(arg);
|
||||
}
|
||||
|
||||
if (isParsingStartDir)
|
||||
{
|
||||
m_startupDefaultDirectory = arg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -648,6 +680,8 @@ bool RIApplication::parseArguments()
|
||||
"-project <filename> Open project file <filename>\n"
|
||||
"-case <casename> Open Eclipse case <casename>\n"
|
||||
" (do not include .GRID/.EGRID)\n"
|
||||
"-startdir The default directory for open/save commands\n"
|
||||
|
||||
"-help \n"
|
||||
"-? Displays help text\n"
|
||||
"-----------------------------------------------------------------";
|
||||
@ -883,3 +917,28 @@ void RIApplication::terminateProcess()
|
||||
|
||||
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 createInputMockModel();
|
||||
|
||||
QString defaultFileDialogDirectory(const QString& dialogName);
|
||||
void setDefaultFileDialogDirectory(const QString& dialogName, const QString& defaultDirectory);
|
||||
|
||||
bool openEclipseCaseFromFile(const QString& fileName);
|
||||
bool openEclipseCase(const QString& caseName, const QString& caseFileName);
|
||||
bool openInputEclipseCase(const QString& caseName, const QStringList& caseFileNames);
|
||||
@ -129,4 +132,7 @@ private:
|
||||
caf::UiProcess* m_workerProcess;
|
||||
|
||||
RIPreferences* m_preferences;
|
||||
|
||||
std::map<QString, QString> m_fileDialogDefaultDirectories;
|
||||
QString m_startupDefaultDirectory;
|
||||
};
|
||||
|
@ -558,9 +558,17 @@ void RimUiTreeView::setModel(QAbstractItemModel* model)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
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;
|
||||
|
||||
// Remember the directory to next time
|
||||
defaultDir = QFileInfo(fileNames.last()).absolutePath();
|
||||
app->setDefaultFileDialogDirectory("INPUT_FILES", defaultDir);
|
||||
|
||||
|
||||
QModelIndex index = currentIndex();
|
||||
RimUiTreeModelPdm* myModel = dynamic_cast<RimUiTreeModelPdm*>(model());
|
||||
caf::PdmUiTreeItem* uiItem = myModel->getTreeItemFromIndex(currentIndex());
|
||||
|
@ -595,13 +595,19 @@ void RIMainWindow::slotOpenBinaryGridFiles()
|
||||
{
|
||||
if (checkForDocumentModifications())
|
||||
{
|
||||
RIApplication* app = RIApplication::instance();
|
||||
|
||||
#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
|
||||
QStringList fileNames;
|
||||
fileNames << "dummy";
|
||||
#endif
|
||||
RIApplication* app = RIApplication::instance();
|
||||
|
||||
int i;
|
||||
for (i = 0; i < fileNames.size(); i++)
|
||||
@ -624,11 +630,15 @@ void RIMainWindow::slotOpenInputFiles()
|
||||
{
|
||||
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;
|
||||
|
||||
RIApplication* app = RIApplication::instance();
|
||||
// Remember the path to next time
|
||||
app->setDefaultFileDialogDirectory("INPUT_FILES", QFileInfo(fileNames.last()).absolutePath());
|
||||
|
||||
app->openInputEclipseCase("Eclipse Input Files", fileNames);
|
||||
}
|
||||
}
|
||||
@ -641,10 +651,15 @@ void RIMainWindow::slotOpenProject()
|
||||
{
|
||||
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;
|
||||
|
||||
RIApplication* app = RIApplication::instance();
|
||||
// Remember the path to next time
|
||||
app->setDefaultFileDialogDirectory("BINARY_GRID", QFileInfo(fileName).absolutePath());
|
||||
|
||||
app->loadProject(fileName);
|
||||
}
|
||||
|
||||
|
@ -122,11 +122,21 @@ void PdmUiFilePathEditor::slotEditingFinished()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmUiFilePathEditor::fileSelectionClicked()
|
||||
{
|
||||
QString defaultPath;
|
||||
if ( m_lineEdit->text().isEmpty())
|
||||
{
|
||||
defaultPath = QDir::homePath();
|
||||
}
|
||||
else
|
||||
{
|
||||
defaultPath = m_lineEdit->text();
|
||||
}
|
||||
|
||||
if (m_attributes.m_selectDirectory)
|
||||
{
|
||||
QString directoryPath = QFileDialog::getExistingDirectory(m_lineEdit,
|
||||
tr("Get existing directory"),
|
||||
m_lineEdit->text(),
|
||||
defaultPath,
|
||||
QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
|
||||
|
||||
if (!directoryPath.isEmpty())
|
||||
@ -140,11 +150,11 @@ void PdmUiFilePathEditor::fileSelectionClicked()
|
||||
QString filePath;
|
||||
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
|
||||
{
|
||||
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())
|
||||
|
Loading…
Reference in New Issue
Block a user