pot/merge and fix fuzzy messages from previous change.
[dcpomatic.git] / src / tools / dcpomatic_playlist.cc
index 2c575af366f3fe922eedb5b108f3f461c389f712..c9ceadb2658eb99df5132356f4343b19ba721a8a 100644 (file)
@@ -46,7 +46,7 @@ class ContentDialog : public wxDialog, public ContentStore
 public:
        ContentDialog (wxWindow* parent, weak_ptr<Film> film)
                : wxDialog (parent, wxID_ANY, _("Add content"), wxDefaultPosition, wxSize(800, 640))
-               , _content_view (new ContentView(this, film))
+               , _content_view (new ContentView(this))
        {
                _content_view->update ();
 
@@ -279,7 +279,9 @@ private:
 
        void save_clicked ()
        {
-               wxFileDialog* d = new wxFileDialog (this, _("Select playlist file"), wxEmptyString, wxEmptyString, wxT("XML files (*.xml)|*.xml"), wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
+               Config* c = Config::instance ();
+               wxString default_dir = c->player_playlist_directory() ? std_to_wx(c->player_playlist_directory()->string()) : wxString(wxEmptyString);
+               wxFileDialog* d = new wxFileDialog (this, _("Select playlist file"), default_dir, wxEmptyString, wxT("XML files (*.xml)|*.xml"), wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
                if (d->ShowModal() == wxID_OK) {
                        _playlist.write (wx_to_std(d->GetPath()));
                }
@@ -287,10 +289,16 @@ private:
 
        void load_clicked ()
        {
-               wxFileDialog* d = new wxFileDialog (this, _("Select playlist file"), wxEmptyString, wxEmptyString, wxT("XML files (*.xml)|*.xml"));
+               Config* c = Config::instance ();
+               wxString default_dir = c->player_playlist_directory() ? std_to_wx(c->player_playlist_directory()->string()) : wxString(wxEmptyString);
+               wxFileDialog* d = new wxFileDialog (this, _("Select playlist file"), default_dir, wxEmptyString, wxT("XML files (*.xml)|*.xml"));
                if (d->ShowModal() == wxID_OK) {
                        _list->DeleteAllItems ();
-                       if (_playlist.read (wx_to_std(d->GetPath()), _content_dialog)) {
+                       if (!_playlist.read (wx_to_std(d->GetPath()), _content_dialog)) {
+                               BOOST_FOREACH (SPLEntry i, _playlist.get()) {
+                                       add (i);
+                               }
+                       } else {
                                error_dialog (this, _("Some content in this playlist was not found."));
                        }
                }