diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-10-15 23:09:36 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2026-02-16 01:20:37 +0100 |
| commit | 2c6fbbf9043e61ca4492f0fba919f0927b7b6874 (patch) | |
| tree | 559452a86c1215cf344948dc67192ecc7d60947e | |
| parent | 290672d7b4b3c454f02a42d95df3ddfae307542f (diff) | |
Move responsibility for reading the content store into the applications.
| -rw-r--r-- | src/tools/dcpomatic_player.cc | 4 | ||||
| -rw-r--r-- | src/tools/dcpomatic_playlist.cc | 2 | ||||
| -rw-r--r-- | src/wx/content_view.cc | 21 | ||||
| -rw-r--r-- | src/wx/playlist_controls.cc | 1 | ||||
| -rw-r--r-- | src/wx/wx_util.cc | 20 | ||||
| -rw-r--r-- | src/wx/wx_util.h | 1 |
6 files changed, 28 insertions, 21 deletions
diff --git a/src/tools/dcpomatic_player.cc b/src/tools/dcpomatic_player.cc index 5f6d44704..30a8d1071 100644 --- a/src/tools/dcpomatic_player.cc +++ b/src/tools/dcpomatic_player.cc @@ -261,6 +261,10 @@ public: Bind(wxEVT_CLOSE_WINDOW, boost::bind(&DOMFrame::close, this, _1)); + if (Config::instance()->player_mode() == Config::PlayerMode::DUAL || Config::instance()->enable_player_http_server()) { + update_content_store(); + } + if (Config::instance()->player_mode() == Config::PlayerMode::DUAL) { auto pc = new PlaylistControls(_overall_panel, _viewer); _controls = pc; diff --git a/src/tools/dcpomatic_playlist.cc b/src/tools/dcpomatic_playlist.cc index 46b6dbdb6..053927232 100644 --- a/src/tools/dcpomatic_playlist.cc +++ b/src/tools/dcpomatic_playlist.cc @@ -690,6 +690,8 @@ private: */ Config::drop(); + update_content_store(); + _frame = new DOMFrame(variant::wx::dcpomatic_playlist_editor()); SetTopWindow(_frame); _frame->Maximize(); diff --git a/src/wx/content_view.cc b/src/wx/content_view.cc index 552df6fd7..ba47e8c9f 100644 --- a/src/wx/content_view.cc +++ b/src/wx/content_view.cc @@ -81,28 +81,9 @@ ContentView::selected () const void ContentView::update () { - auto dir = Config::instance()->player_content_directory(); - if (!dir || !dcp::filesystem::is_directory(*dir)) { - dir = home_directory (); - } - - wxProgressDialog progress(variant::wx::dcpomatic(), _("Reading content directory")); - - auto store = ShowPlaylistContentStore::instance(); - - auto errors = store->update([&progress]() { - return progress.Pulse(); - }); - - DeleteAllItems(); - _content.clear(); - for (auto content: store->all()) { + for (auto content: ShowPlaylistContentStore::instance()->all()) { add(content); } - - for (auto error: errors) { - error_dialog(this, std_to_wx(error.first), std_to_wx(error.second)); - } } diff --git a/src/wx/playlist_controls.cc b/src/wx/playlist_controls.cc index 1b949349d..2d86b5227 100644 --- a/src/wx/playlist_controls.cc +++ b/src/wx/playlist_controls.cc @@ -121,7 +121,6 @@ PlaylistControls::PlaylistControls(wxWindow* parent, FilmViewer& viewer) _refresh_spl_view->Bind(wxEVT_BUTTON, boost::bind(&PlaylistControls::update_playlist_directory, this)); _refresh_content_view->Bind(wxEVT_BUTTON, boost::bind(&ContentView::update, _content_view)); - _content_view->update(); update_playlist_directory(); } diff --git a/src/wx/wx_util.cc b/src/wx/wx_util.cc index 71f5c092d..0014a6e33 100644 --- a/src/wx/wx_util.cc +++ b/src/wx/wx_util.cc @@ -35,6 +35,7 @@ #include "lib/cross.h" #include "lib/job.h" #include "lib/job_manager.h" +#include "lib/show_playlist_content_store.h" #include "lib/util.h" #include "lib/variant.h" #include "lib/version.h" @@ -781,3 +782,22 @@ dcpomatic::wx::link_bitmap_path() return bitmap_path(gui_is_dark() ? "link_white.png" : "link_black.png"); } + +void +update_content_store() +{ + auto dir = Config::instance()->player_content_directory(); + if (!dir || !dcp::filesystem::is_directory(*dir)) { + dir = home_directory (); + } + + wxProgressDialog progress(variant::wx::dcpomatic(), _("Reading content directory")); + + auto store = ShowPlaylistContentStore::instance(); + + auto errors = store->update([&progress]() { return progress.Pulse(); }); + + for (auto error: errors) { + error_dialog(nullptr, std_to_wx(error.first), std_to_wx(error.second)); + } +} diff --git a/src/wx/wx_util.h b/src/wx/wx_util.h index 76d2f8ea7..cb81d0683 100644 --- a/src/wx/wx_util.h +++ b/src/wx/wx_util.h @@ -124,6 +124,7 @@ extern double dpi_scale_factor (wxWindow* window); extern int search_ctrl_height (); extern void report_config_load_failure(wxWindow* parent, Config::LoadFailure what); extern bool layout_for_short_screen(wxWindow* reference); +extern void update_content_store(); struct Offset |
