Skip to content

Commit

Permalink
- Changed OMEdit open/save dialog to always open last opened folder, …
Browse files Browse the repository at this point in the history
…or the users home

  folder otherwise.


git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@9045 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
perost committed May 19, 2011
1 parent c8ea940 commit 688ebdd
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 11 deletions.
8 changes: 4 additions & 4 deletions OMEdit/OMEditGUI/ProjectTabWidget.cpp
Expand Up @@ -2367,7 +2367,7 @@ bool ProjectTabWidget::saveModel(bool saveAs)
QDir fileDialogSaveDir;

modelFileName = StringHandler::getSaveFileName(this, tr(saveAs ? "Save File As" : "Save File"),
fileDialogSaveDir.currentPath(),
NULL,
Helper::omFileTypes, NULL, "mo");

if (modelFileName.isEmpty())
Expand Down Expand Up @@ -2513,9 +2513,9 @@ void ProjectTabWidget::openFile(QString fileName)
{
if (fileName.isEmpty())
{
QString name = QFileDialog::getOpenFileName(this, tr("Choose File"),
QDir::currentPath() + QString("/../.."),
Helper::omFileTypes);
QString name = StringHandler::getOpenFileName(this, tr("Choose File"),
NULL, Helper::omFileTypes, NULL);

if (name.isEmpty())
return;
else
Expand Down
62 changes: 59 additions & 3 deletions OMEdit/OMEditGUI/StringHandler.cpp
Expand Up @@ -39,6 +39,8 @@

#include "StringHandler.h"

QString StringHandler::mLastOpenDir;

//! @class StringHandler
//! @brief The StringHandler class is used to manipulating and parsing the results get from OMC.

Expand Down Expand Up @@ -423,14 +425,68 @@ bool StringHandler::unparseBool(QString value)
return value == "true";
}

QString StringHandler::getSaveFileName(QWidget* parent, const QString &caption, const QString &dir, const QString &filter, QString * selectedFilter, const QString &defaultSuffix)
QString StringHandler::getSaveFileName(QWidget* parent, const QString &caption, QString * dir, const QString &filter, QString * selectedFilter, const QString &defaultSuffix)
{
QFileDialog fileDialog(parent, caption, dir, filter);
QString dir_str;

if (dir)
{
dir_str = *dir;
}
else
{
dir_str = mLastOpenDir.isEmpty() ? QDir::homePath() : mLastOpenDir;
}

QFileDialog fileDialog(parent, caption, dir_str, filter);

if (selectedFilter) fileDialog.selectNameFilter(*selectedFilter);
if (defaultSuffix.length()) fileDialog.setDefaultSuffix(defaultSuffix);
fileDialog.setFileMode(QFileDialog::AnyFile);
fileDialog.setAcceptMode(QFileDialog::AcceptSave);
if (fileDialog.exec()) { QStringList fileNames = fileDialog.selectedFiles(); if ( fileNames.count() ) return fileNames.at(0); }

if (fileDialog.exec())
{
QStringList fileNames = fileDialog.selectedFiles();

if (fileNames.count())
{
mLastOpenDir = fileDialog.directory().absolutePath();
return fileNames.at(0);
}
}

return QString();
}

QString StringHandler::getOpenFileName(QWidget* parent, const QString &caption, QString * dir, const QString &filter, QString * selectedFilter)
{
QString dir_str;

if (dir)
{
dir_str = *dir;
}
else
{
dir_str = mLastOpenDir.isEmpty() ? QDir::homePath() : mLastOpenDir;
}

QFileDialog fileDialog(parent, caption, dir_str, filter);

if (selectedFilter) fileDialog.selectNameFilter(*selectedFilter);
fileDialog.setFileMode(QFileDialog::AnyFile);
fileDialog.setAcceptMode(QFileDialog::AcceptOpen);

if (fileDialog.exec())
{
QStringList fileNames = fileDialog.selectedFiles();

if (fileNames.count())
{
mLastOpenDir = fileDialog.directory().absolutePath();
return fileNames.at(0);
}
}
return QString();
}
6 changes: 5 additions & 1 deletion OMEdit/OMEditGUI/StringHandler.h
Expand Up @@ -67,7 +67,11 @@ class StringHandler
static QStringList unparseStrings(QString value);
// Returns false on failure
static bool unparseBool(QString value);
static QString getSaveFileName(QWidget* parent = 0, const QString &caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, const QString &defaultSuffix = QString());
static QString getSaveFileName(QWidget* parent = 0, const QString &caption = QString(), QString * dir = 0, const QString & filter = QString(), QString * selectedFilter = 0, const QString &defaultSuffix = QString());
static QString getOpenFileName(QWidget* parent = 0, const QString &caption = QString(), QString * dir = 0, const QString & filter = QString(), QString * selectedFilter = 0);

protected:
static QString mLastOpenDir;
};

#endif // STRINGHANDLER_H
6 changes: 3 additions & 3 deletions OMEdit/OMEditGUI/mainwindow.cpp
Expand Up @@ -740,7 +740,7 @@ void MainWindow::exportModelToOMNotebook()
QDir fileDialogSaveDir;

QString omnotebookFileName = StringHandler::getSaveFileName(this, tr("Export to OMNotebook"),
fileDialogSaveDir.currentPath(),
NULL,
Helper::omnotebookFileTypes, NULL, "onb");

// if user cancels the operation. or closes the export dialog box.
Expand Down Expand Up @@ -867,7 +867,7 @@ void MainWindow::createOMNotebookCodeCell(QDomDocument xmlDocument, QDomElement
void MainWindow::importModelfromOMNotebook()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Choose File"),
QDir::currentPath() + QString("/../.."),
QDir::homePath(),
Helper::omnotebookFileTypes);
if (fileName.isEmpty())
return;
Expand Down Expand Up @@ -925,7 +925,7 @@ void MainWindow::exportModelAsImage()
{
QDir fileDialogSaveDir;

QString imageFileName = StringHandler::getSaveFileName(this, tr("Export as Image"), fileDialogSaveDir.currentPath(),
QString imageFileName = StringHandler::getSaveFileName(this, tr("Export as Image"), NULL,
Helper::imageFileTypes, NULL, "png");

// if user cancels the operation. or closes the export dialog box.
Expand Down

0 comments on commit 688ebdd

Please sign in to comment.