summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-01-13 20:39:45 +0100
committerCarl Hetherington <cth@carlh.net>2023-01-14 00:42:39 +0100
commita2bf32c1419a56e6aaee7e742961b9f471a9dd79 (patch)
treeee7e0bfffc5dd3f77d36c8e4d2eff6c31c8aef99
parent940812b93bade4ac8fd41ee4fb29f3f799815b83 (diff)
Allow optional override of the initial path taken from the key.
-rw-r--r--src/wx/dir_dialog.cc9
-rw-r--r--src/wx/dir_dialog.h4
-rw-r--r--src/wx/file_dialog.cc9
-rw-r--r--src/wx/file_dialog.h4
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 */