From 2e5e2c84300de8376db133f16fd0624539d874fa Mon Sep 17 00:00:00 2001 From: Bruno Herbelin Date: Sat, 8 Jan 2022 00:49:20 +0100 Subject: [PATCH] On Save-as, open FileDialog in same directory of previous filename --- DialogToolkit.cpp | 5 +++++ DialogToolkit.h | 1 + UserInterfaceManager.cpp | 6 +++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/DialogToolkit.cpp b/DialogToolkit.cpp index 7349efb..c7d2c12 100644 --- a/DialogToolkit.cpp +++ b/DialogToolkit.cpp @@ -160,6 +160,11 @@ void DialogToolkit::SaveSessionDialog::open() } } +void DialogToolkit::SaveSessionDialog::setFolder(std::string path) +{ + Settings::application.dialogRecentFolder[id_] = SystemToolkit::path_filename( path ); +} + std::string openFolderDialog(const std::string &label, const std::string &path); void DialogToolkit::OpenFolderDialog::open() { diff --git a/DialogToolkit.h b/DialogToolkit.h index d4e5483..8b73054 100644 --- a/DialogToolkit.h +++ b/DialogToolkit.h @@ -62,6 +62,7 @@ class SaveSessionDialog : public FileDialog { public: SaveSessionDialog(const std::string &name) : FileDialog(name) {} + void setFolder(std::string path); void open(); }; diff --git a/UserInterfaceManager.cpp b/UserInterfaceManager.cpp index daa38d9..ebfa7f7 100644 --- a/UserInterfaceManager.cpp +++ b/UserInterfaceManager.cpp @@ -700,8 +700,12 @@ bool UserInterface::TryClose() void UserInterface::selectSaveFilename() { - if (sessionsavedialog) + if (sessionsavedialog) { + if (!Mixer::manager().session()->filename().empty()) + sessionsavedialog->setFolder( Mixer::manager().session()->filename() ); + sessionsavedialog->open(); + } navigator.hidePannel(); }