#include "lib/image_content.h"
#include "lib/log.h"
#include "lib/playlist.h"
+#include "lib/scope_guard.h"
#include "lib/string_text_file.h"
#include "lib/string_text_file_content.h"
#include "lib/text_content.h"
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.
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 ();
void
ContentPanel::add_folder_clicked ()
{
- auto d = new wxDirDialog (_splitter, _("Choose a 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 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_folder(path);
}
auto ic = dynamic_pointer_cast<ImageContent> (i);
if (ic) {
auto e = new ImageSequenceDialog (_splitter);
- int const r = e->ShowModal();
- auto const frame_rate = e->frame_rate ();
- e->Destroy ();
+ ScopeGuard sg = [e]() { e->Destroy(); };
- if (r != wxID_OK) {
+ if (e->ShowModal() != wxID_OK) {
return;
}
-
- ic->set_video_frame_rate(_film, frame_rate);
+ ic->set_video_frame_rate(_film, e->frame_rate());
}
_film->examine_and_add_content (i);
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);
}