From 135e8419ae54c9cde3003776e5f7791e151a0bc4 Mon Sep 17 00:00:00 2001 From: thez3ro Date: Wed, 22 Nov 2017 22:12:43 +0100 Subject: [PATCH] refactor saveLastDir code --- src/gui/FileDialog.cpp | 33 ++++++++++++++------------------- src/gui/FileDialog.h | 4 +++- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/src/gui/FileDialog.cpp b/src/gui/FileDialog.cpp index ed86bd851..9f3caf6da 100644 --- a/src/gui/FileDialog.cpp +++ b/src/gui/FileDialog.cpp @@ -42,11 +42,8 @@ QString FileDialog::getOpenFileName(QWidget* parent, const QString& caption, QSt if (parent) { parent->activateWindow(); } - if (!result.isEmpty() && m_nextSaveLastDir) { - config()->set("LastDir", QFileInfo(result).absolutePath()); - } - m_nextSaveLastDir = true; + saveLastDir(result); return result; } } @@ -73,11 +70,9 @@ QStringList FileDialog::getOpenFileNames(QWidget *parent, const QString &caption parent->activateWindow(); } - if (!results.isEmpty() && m_nextSaveLastDir) { - config()->set("LastDir", QFileInfo(results[0]).absolutePath()); + if (!results.isEmpty()) { + saveLastDir(results[0]); } - - m_nextSaveLastDir = true; return results; } } @@ -126,11 +121,7 @@ QString FileDialog::getSaveFileName(QWidget* parent, const QString& caption, QSt parent->activateWindow(); } - if (!result.isEmpty() && m_nextSaveLastDir) { - config()->set("LastDir", QFileInfo(result).absolutePath()); - } - - m_nextSaveLastDir = true; + saveLastDir(result); return result; } } @@ -155,11 +146,7 @@ QString FileDialog::getExistingDirectory(QWidget *parent, const QString &caption parent->activateWindow(); } - if (!dir.isEmpty() && m_nextSaveLastDir) { - config()->set("LastDir", QFileInfo(dir).absolutePath()); - } - - m_nextSaveLastDir = true; + saveLastDir(dir); return dir; } } @@ -181,13 +168,21 @@ void FileDialog::setNextDirName(const QString &dirName) void FileDialog::setNextForgetDialog() { - m_nextSaveLastDir = false; + m_forgetLastDir = true; } FileDialog::FileDialog() { } +void FileDialog::saveLastDir(QString dir) { + if (!dir.isEmpty() && !m_forgetLastDir) { + config()->set("LastDir", QFileInfo(dir).absolutePath()); + } + + m_forgetLastDir = false; +} + FileDialog* FileDialog::instance() { if (!m_instance) { diff --git a/src/gui/FileDialog.h b/src/gui/FileDialog.h index b4f032eaf..9a57a9218 100644 --- a/src/gui/FileDialog.h +++ b/src/gui/FileDialog.h @@ -52,7 +52,9 @@ private: QString m_nextFileName; QStringList m_nextFileNames; QString m_nextDirName; - bool m_nextSaveLastDir = true; + bool m_forgetLastDir = false; + + void saveLastDir(QString); static FileDialog* m_instance;