ui: Start from home directory instead of working directory in first file dialog (issue #448)

bug id = 448
This commit is contained in:
Eberhard Graether
2017-08-31 16:30:37 +02:00
parent 64efa00054
commit 4700cb802e
7 changed files with 148 additions and 87 deletions
+3 -51
View File
@@ -1,6 +1,6 @@
#include "qt/graphics/QtGraphicsView.h"
#include <QFileDialog>
#include <QDir>
#include <QMouseEvent>
#include <QScrollBar>
#include <QTimer>
@@ -14,6 +14,7 @@
#include "qt/view/graphElements/QtGraphNodeData.h"
#include "qt/view/graphElements/QtGraphNodeBundle.h"
#include "qt/utility/QtContextMenu.h"
#include "qt/utility/QtFileDialog.h"
#include "qt/utility/utilityQt.h"
#include "settings/ApplicationSettings.h"
#include "utility/messaging/type/MessageDisplayBookmarkCreator.h"
@@ -405,58 +406,9 @@ void QtGraphicsView::stopTimer()
m_timer->stop();
}
QString ShowSaveFileDialog(QWidget *parent,
const QString &title,
const QString &directory,
const QString &filter)
{
#if defined(Q_WS_WIN) || defined(Q_WS_MAC)
return QFileDialog::getSaveFileName(parent, title, directory, filter);
#else
QFileDialog dialog(parent, title, directory, filter);
if (parent)
{
dialog.setWindowModality(Qt::WindowModal);
}
QRegExp filter_regex(QLatin1String("(?:^\\*\\.(?!.*\\()|\\(\\*\\.)(\\w+)"));
QStringList filters = filter.split(QLatin1String(";;"));
if (!filters.isEmpty())
{
dialog.setNameFilters(filters);
}
dialog.setAcceptMode(QFileDialog::AcceptSave);
if (dialog.exec() == QDialog::Accepted)
{
QString file_name = dialog.selectedFiles().constFirst();
QFileInfo info(file_name);
if (info.suffix().isEmpty() && !dialog.selectedNameFilter().isEmpty())
{
if (filter_regex.indexIn(dialog.selectedNameFilter()) != -1)
{
QString extension = filter_regex.cap(1);
file_name += QLatin1String(".") + extension;
}
}
return file_name;
}
else
{
return QString();
}
#endif // Q_WS_MAC || Q_WS_WIN
}
void QtGraphicsView::exportGraph()
{
QString fileName = ShowSaveFileDialog(
QString fileName = QtFileDialog::showSaveFileDialog(
this, "Save image", QDir::homePath(), "PNG (*.png);;JPEG (*.JPEG);;BMP Files (*.bmp)");
if (!fileName.isNull())