X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fcontent_panel.cc;h=ceebd6e14282f846d8f174fd323abad7509c3a2c;hb=e887b089ca77d30f612e93bdcd70f77376b13af6;hp=68f6f1b9479686ff88460147cef27229d806a258;hpb=d0a85f18ad5b0b2eacaa2c7071a0565ce6eb05d2;p=dcpomatic.git diff --git a/src/wx/content_panel.cc b/src/wx/content_panel.cc index 68f6f1b94..ceebd6e14 100644 --- a/src/wx/content_panel.cc +++ b/src/wx/content_panel.cc @@ -34,6 +34,7 @@ #include "lib/compose.hpp" #include "lib/config.h" #include "lib/content_factory.h" +#include "lib/cross.h" #include "lib/dcp_content.h" #include "lib/dcpomatic_log.h" #include "lib/ffmpeg_content.h" @@ -57,7 +58,6 @@ using std::dynamic_pointer_cast; using std::exception; using std::list; using std::make_shared; -using std::max; using std::shared_ptr; using std::string; using std::vector; @@ -134,6 +134,7 @@ ContentPanel::ContentPanel (wxNotebook* n, shared_ptr film, weak_ptrAddPage (_timing_panel, _("Timing"), false); + _timing_panel->create (); _content->Bind (wxEVT_LIST_ITEM_SELECTED, boost::bind (&ContentPanel::item_selected, this)); _content->Bind (wxEVT_LIST_ITEM_DESELECTED, boost::bind (&ContentPanel::item_deselected, this)); @@ -357,6 +358,7 @@ ContentPanel::check_selection () if (have_video && !_video_panel) { _video_panel = new VideoPanel (this); _notebook->InsertPage (off, _video_panel, _video_panel->name()); + _video_panel->create (); } else if (!have_video && _video_panel) { _notebook->DeletePage (off); _video_panel = 0; @@ -369,6 +371,7 @@ ContentPanel::check_selection () if (have_audio && !_audio_panel) { _audio_panel = new AudioPanel (this); _notebook->InsertPage (off, _audio_panel, _audio_panel->name()); + _audio_panel->create (); } else if (!have_audio && _audio_panel) { _notebook->DeletePage (off); _audio_panel = 0; @@ -382,6 +385,7 @@ ContentPanel::check_selection () if (have_text[i] && !_text_panel[i]) { _text_panel[i] = new TextPanel (this, static_cast(i)); _notebook->InsertPage (off, _text_panel[i], _text_panel[i]->name()); + _text_panel[i]->create (); } else if (!have_text[i] && _text_panel[i]) { _notebook->DeletePage (off); _text_panel[i] = 0; @@ -420,13 +424,15 @@ ContentPanel::add_file_clicked () return; } + auto path = Config::instance()->add_files_path(); + /* The wxFD_CHANGE_DIR here prevents a `could not set working directory' error 123 on Windows when using non-Latin filenames or paths. */ auto d = new wxFileDialog ( _splitter, _("Choose a file or files"), - wxT (""), + std_to_wx(path ? path->string() : home_directory().string()), wxT (""), wxT ("All files|*.*|Subtitle files|*.srt;*.xml|Audio files|*.wav;*.w64;*.flac;*.aif;*.aiff"), wxFD_MULTIPLE | wxFD_CHANGE_DIR @@ -447,6 +453,10 @@ ContentPanel::add_file_clicked () } add_files (path_list); + if (!path_list.empty()) { + Config::instance()->set_add_files_path(path_list[0].parent_path()); + } + d->Destroy (); }