From 986a681d008c432f68a4ff67d44e7a019ceab1a5 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 1 Dec 2022 20:24:56 +0100 Subject: [PATCH] Check for playlist directory on new playlist, rather than save. --- src/tools/dcpomatic_playlist.cc | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/tools/dcpomatic_playlist.cc b/src/tools/dcpomatic_playlist.cc index 3e3bd0266..4a4407b02 100644 --- a/src/tools/dcpomatic_playlist.cc +++ b/src/tools/dcpomatic_playlist.cc @@ -106,6 +106,7 @@ public: PlaylistList (wxPanel* parent, ContentStore* content_store) : _sizer (new wxBoxSizer(wxVERTICAL)) , _content_store (content_store) + , _parent(parent) { auto label = new wxStaticText (parent, wxID_ANY, wxEmptyString); label->SetLabelMarkup (_("Playlists")); @@ -227,6 +228,12 @@ private: void new_playlist () { + auto dir = Config::instance()->player_playlist_directory(); + if (!dir) { + error_dialog(_parent, _("No playlist folder is specified in preferences. Please set one and then try again.")); + return; + } + shared_ptr spl (new SignalSPL(wx_to_std(_("New Playlist")))); add_playlist_to_model (spl); add_playlist_to_view (spl); @@ -280,6 +287,7 @@ private: wxButton* _delete; vector> _playlists; ContentStore* _content_store; + wxWindow* _parent; }; @@ -546,12 +554,9 @@ private: void save_playlist (shared_ptr playlist) { - auto dir = Config::instance()->player_playlist_directory(); - if (!dir) { - error_dialog (this, _("No playlist folder is specified in preferences. Please set one and then try again.")); - return; + if (auto dir = Config::instance()->player_playlist_directory()) { + playlist->write(*dir / (playlist->id() + ".xml")); } - playlist->write (*dir / (playlist->id() + ".xml")); } void setup_menu (wxMenuBar* m) -- 2.30.2