summaryrefslogtreecommitdiff
path: root/src/wx
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-12-14 20:15:24 +0100
committerCarl Hetherington <cth@carlh.net>2025-02-02 15:46:34 +0100
commit87f14a309bdf6be7471ddb8c2970d1cd7aab2890 (patch)
tree65ddf716b1d84ba5d4d6560eff9251a9dc589413 /src/wx
parentf4190b283fc65fa21ce87c7b492eff954dece91b (diff)
Move responsibility for reading the content store into the applications.
Diffstat (limited to 'src/wx')
-rw-r--r--src/wx/content_view.cc19
-rw-r--r--src/wx/playlist_controls.cc1
-rw-r--r--src/wx/wx_util.cc23
-rw-r--r--src/wx/wx_util.h1
4 files changed, 25 insertions, 19 deletions
diff --git a/src/wx/content_view.cc b/src/wx/content_view.cc
index fb0afd976..f3c11fa04 100644
--- a/src/wx/content_view.cc
+++ b/src/wx/content_view.cc
@@ -78,28 +78,11 @@ 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 = ContentStore::instance();
-
- auto errors = store->update([&progress]() {
- return progress.Pulse();
- });
-
DeleteAllItems ();
_content_digests.clear();
- for (auto content: store->all()) {
+ for (auto content: ContentStore::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 454f441dc..0f88f2881 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 b1cd873fc..bc2d593f1 100644
--- a/src/wx/wx_util.cc
+++ b/src/wx/wx_util.cc
@@ -33,6 +33,7 @@
#include "wx_util.h"
#include "wx_variant.h"
#include "lib/config.h"
+#include "lib/content_store.h"
#include "lib/cross.h"
#include "lib/job.h"
#include "lib/job_manager.h"
@@ -842,3 +843,25 @@ layout_for_short_screen(wxWindow* reference)
return sn >= 0 && wxDisplay(sn).GetClientArea().height <= 800;
}
+
+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 = ContentStore::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 a101a8498..6c3f12ef2 100644
--- a/src/wx/wx_util.h
+++ b/src/wx/wx_util.h
@@ -126,6 +126,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