Generalise add_files_path to initial_paths().
[dcpomatic.git] / src / wx / content_panel.cc
index 1a5dbdc51952b50e013bf40405954b0b214895e2..e035d1795a46638d0f68607785d22e7ef1fd51d4 100644 (file)
@@ -579,7 +579,7 @@ ContentPanel::add_file_clicked ()
                return;
        }
 
-       auto path = Config::instance()->add_files_path();
+       auto path = Config::instance()->initial_path("AddFilesPath");
 
        /* The wxFD_CHANGE_DIR here prevents a `could not set working directory' error 123 on Windows when using
           non-Latin filenames or paths.
@@ -609,7 +609,7 @@ ContentPanel::add_file_clicked ()
        add_files (path_list);
 
        if (!path_list.empty()) {
-               Config::instance()->set_add_files_path(path_list[0].parent_path());
+               Config::instance()->set_initial_path("AddFilesPath", path_list[0].parent_path());
        }
 
        d->Destroy ();
@@ -619,7 +619,9 @@ ContentPanel::add_file_clicked ()
 void
 ContentPanel::add_folder_clicked ()
 {
-       auto d = new wxDirDialog (_splitter, _("Choose a folder"), wxT(""), wxDD_DIR_MUST_EXIST);
+       auto const initial_path = Config::instance()->initial_path("AddFilesPath");
+
+       auto d = new wxDirDialog(_splitter, _("Choose a folder"), std_to_wx(initial_path ? initial_path->string() : home_directory().string()), wxDD_DIR_MUST_EXIST);
        ScopeGuard sg = [d]() { d->Destroy(); };
        int r = d->ShowModal ();
        if (r != wxID_OK) {
@@ -671,15 +673,16 @@ ContentPanel::add_folder(boost::filesystem::path folder)
 void
 ContentPanel::add_dcp_clicked ()
 {
-       auto d = new wxDirDialog (_splitter, _("Choose a DCP folder"), wxT(""), wxDD_DIR_MUST_EXIST);
-       int r = d->ShowModal ();
-       boost::filesystem::path const path (wx_to_std (d->GetPath ()));
-       d->Destroy ();
+       auto const initial_path = Config::instance()->initial_path("AddFilesPath");
 
+       auto d = new wxDirDialog(_splitter, _("Choose a DCP folder"), std_to_wx(initial_path ? initial_path->string() : home_directory().string()), wxDD_DIR_MUST_EXIST);
+       ScopeGuard sg = [d]() { d->Destroy(); };
+       int r = d->ShowModal ();
        if (r != wxID_OK) {
                return;
        }
 
+       boost::filesystem::path const path(wx_to_std(d->GetPath()));
        add_dcp(path);
 }