summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-01-17 00:33:25 +0100
committerCarl Hetherington <cth@carlh.net>2025-01-22 14:34:25 +0100
commitbb86ed993e1eb1ab29e21aab9fb94bc2e5d821aa (patch)
tree43a71b5324e9deb56f8a69d41428c30247ade8ee
parent98a02007be3920f96af50d29ed0533fd74ffde56 (diff)
Fix some places where we have a full Cinema/Screen object available...
...but then ignore it and look it all up again in the database.
-rw-r--r--src/wx/screens_panel.cc26
-rw-r--r--src/wx/screens_panel.h5
2 files changed, 13 insertions, 18 deletions
diff --git a/src/wx/screens_panel.cc b/src/wx/screens_panel.cc
index 88a2b6adc..a9f96b551 100644
--- a/src/wx/screens_panel.cc
+++ b/src/wx/screens_panel.cc
@@ -199,14 +199,11 @@ ScreensPanel::matches_search(Cinema const& cinema, string search)
/** Add an existing cinema to the GUI */
optional<wxTreeListItem>
-ScreensPanel::add_cinema(CinemaID cinema_id, wxTreeListItem previous)
+ScreensPanel::add_cinema(CinemaID cinema_id, Cinema const& cinema, wxTreeListItem previous)
{
CinemaList cinemas;
- auto cinema = cinemas.cinema(cinema_id);
- DCPOMATIC_ASSERT(cinema);
-
auto const search = wx_to_std(_search->GetValue());
- if (!matches_search(*cinema, search)) {
+ if (!matches_search(cinema, search)) {
return {};
}
@@ -224,13 +221,13 @@ ScreensPanel::add_cinema(CinemaID cinema_id, wxTreeListItem previous)
}
}
- auto id = _targets->InsertItem(_targets->GetRootItem(), previous, std_to_wx(cinema->name));
+ auto id = _targets->InsertItem(_targets->GetRootItem(), previous, std_to_wx(cinema.name));
_item_to_cinema.emplace(make_pair(id, cinema_id));
_cinema_to_item[cinema_id] = id;
for (auto screen: screens) {
- add_screen(cinema_id, screen.first);
+ add_screen(cinema_id, screen.first, screen.second);
}
return id;
@@ -239,7 +236,7 @@ ScreensPanel::add_cinema(CinemaID cinema_id, wxTreeListItem previous)
/** Add an existing screen to the GUI */
optional<wxTreeListItem>
-ScreensPanel::add_screen(CinemaID cinema_id, ScreenID screen_id)
+ScreensPanel::add_screen(CinemaID cinema_id, ScreenID screen_id, Screen const& screen)
{
auto item = cinema_to_item(cinema_id);
if (!item) {
@@ -247,10 +244,8 @@ ScreensPanel::add_screen(CinemaID cinema_id, ScreenID screen_id)
}
CinemaList cinemas;
- auto screen = cinemas.screen(screen_id);
- DCPOMATIC_ASSERT(screen);
- auto id = _targets->AppendItem(*item, std_to_wx(screen->name));
+ auto id = _targets->AppendItem(*item, std_to_wx(screen.name));
_item_to_screen.emplace(make_pair(id, make_pair(cinema_id, screen_id)));
_screen_to_item[screen_id] = id;
@@ -289,7 +284,7 @@ ScreensPanel::add_cinema_clicked ()
previous = *item;
}
- auto item = add_cinema(cinema_id, found ? previous : wxTLI_LAST);
+ auto item = add_cinema(cinema_id, cinema, found ? previous : wxTLI_LAST);
if (item) {
_targets->UnselectAll ();
@@ -411,7 +406,7 @@ ScreensPanel::add_screen_clicked ()
auto screen = Screen(dialog.name(), dialog.notes(), dialog.recipient(), dialog.recipient_file(), dialog.trusted_devices());
auto const screen_id = cinemas.add_screen(*cinema_id, screen);
- auto id = add_screen(*cinema_id, screen_id);
+ auto const id = add_screen(*cinema_id, screen_id, screen);
if (id) {
_targets->Expand (id.get ());
}
@@ -549,9 +544,8 @@ ScreensPanel::selection_changed ()
void
ScreensPanel::add_cinemas ()
{
- CinemaList cinemas;
- for (auto cinema: cinemas.cinemas()) {
- add_cinema (cinema.first, wxTLI_LAST);
+ for (auto cinema: _cinema_list.cinemas()) {
+ add_cinema(cinema.first, cinema.second, wxTLI_LAST);
}
}
diff --git a/src/wx/screens_panel.h b/src/wx/screens_panel.h
index 98ec2c631..b6b5b6d55 100644
--- a/src/wx/screens_panel.h
+++ b/src/wx/screens_panel.h
@@ -40,6 +40,7 @@ namespace dcpomatic {
class CheckBox;
+class Cinema;
class ScreensPanel : public wxPanel
@@ -57,8 +58,8 @@ public:
private:
void add_cinemas ();
- boost::optional<wxTreeListItem> add_cinema(CinemaID cinema, wxTreeListItem previous);
- boost::optional<wxTreeListItem> add_screen(CinemaID cinema, ScreenID screen);
+ boost::optional<wxTreeListItem> add_cinema(CinemaID cinema_id, Cinema const& cinema, wxTreeListItem previous);
+ boost::optional<wxTreeListItem> add_screen(CinemaID cinema_id, ScreenID screen_id, dcpomatic::Screen const& screen);
void add_cinema_clicked ();
void edit_cinema_clicked ();
void edit_cinema(CinemaID cinema_id);