diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-01-13 20:39:45 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-01-14 00:42:39 +0100 |
| commit | a2bf32c1419a56e6aaee7e742961b9f471a9dd79 (patch) | |
| tree | ee7e0bfffc5dd3f77d36c8e4d2eff6c31c8aef99 | |
| parent | 940812b93bade4ac8fd41ee4fb29f3f799815b83 (diff) | |
Allow optional override of the initial path taken from the key.
| -rw-r--r-- | src/wx/dir_dialog.cc | 9 | ||||
| -rw-r--r-- | src/wx/dir_dialog.h | 4 | ||||
| -rw-r--r-- | src/wx/file_dialog.cc | 9 | ||||
| -rw-r--r-- | src/wx/file_dialog.h | 4 |
4 files changed, 20 insertions, 6 deletions
diff --git a/src/wx/dir_dialog.cc b/src/wx/dir_dialog.cc index ec178de55..2c25cb6e8 100644 --- a/src/wx/dir_dialog.cc +++ b/src/wx/dir_dialog.cc @@ -28,18 +28,23 @@ using std::vector; +using boost::optional; DirDialog::DirDialog( wxWindow* parent, wxString title, long style, - std::string initial_path_key + std::string initial_path_key, + optional<boost::filesystem::path> override_path ) : wxDirDialog( parent, title, - std_to_wx(Config::instance()->initial_path(initial_path_key).get_value_or(home_directory()).string()), + std_to_wx( + override_path.get_value_or( + Config::instance()->initial_path(initial_path_key).get_value_or(home_directory()) + ).string()), style ) , _initial_path_key(initial_path_key) diff --git a/src/wx/dir_dialog.h b/src/wx/dir_dialog.h index f733f8327..c3b470a07 100644 --- a/src/wx/dir_dialog.h +++ b/src/wx/dir_dialog.h @@ -24,6 +24,7 @@ LIBDCP_DISABLE_WARNINGS #include <wx/wx.h> LIBDCP_ENABLE_WARNINGS #include <boost/filesystem.hpp> +#include <boost/optional.hpp> #include <vector> @@ -34,7 +35,8 @@ public: wxWindow* parent, wxString title, long style, - std::string initial_path_key + std::string initial_path_key, + boost::optional<boost::filesystem::path> override_path = boost::optional<boost::filesystem::path>() ); /** @return true if OK was clicked */ diff --git a/src/wx/file_dialog.cc b/src/wx/file_dialog.cc index 7aee39493..b65077784 100644 --- a/src/wx/file_dialog.cc +++ b/src/wx/file_dialog.cc @@ -28,6 +28,7 @@ using std::vector; +using boost::optional; FileDialog::FileDialog( @@ -35,12 +36,16 @@ FileDialog::FileDialog( wxString title, wxString allowed, long style, - std::string initial_path_key + std::string initial_path_key, + optional<boost::filesystem::path> override_path ) : wxFileDialog( parent, title, - std_to_wx(Config::instance()->initial_path(initial_path_key).get_value_or(home_directory()).string()), + std_to_wx( + override_path.get_value_or( + Config::instance()->initial_path(initial_path_key).get_value_or(home_directory()) + ).string()), wxEmptyString, allowed, style diff --git a/src/wx/file_dialog.h b/src/wx/file_dialog.h index f4a7ad81e..cc6d720c1 100644 --- a/src/wx/file_dialog.h +++ b/src/wx/file_dialog.h @@ -24,6 +24,7 @@ LIBDCP_DISABLE_WARNINGS #include <wx/wx.h> LIBDCP_ENABLE_WARNINGS #include <boost/filesystem.hpp> +#include <boost/optional.hpp> #include <vector> @@ -35,7 +36,8 @@ public: wxString title, wxString allowed, long style, - std::string initial_path_key + std::string initial_path_key, + boost::optional<boost::filesystem::path> override_path = boost::optional<boost::filesystem::path>() ); /** @return true if OK was clicked */ |
