/** 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 {};
}
}
}
- 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;
/** 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) {
}
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;
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 ();
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 ());
}
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);
}
}
class CheckBox;
+class Cinema;
class ScreensPanel : public wxPanel
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);