diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-12-21 23:51:24 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-12-21 23:51:24 +0100 |
| commit | af0a8c8a2d46cf0999d201cfb5be0b8c32dffc49 (patch) | |
| tree | 389ad57705ba44522d65040aa09854b5f2b95d8b /src | |
| parent | 0e7c428850be89ea9f812c2bd0c4b892c3c99e3f (diff) | |
Select newly-added cinemas.
Diffstat (limited to 'src')
| -rw-r--r-- | src/wx/screens_panel.cc | 23 | ||||
| -rw-r--r-- | src/wx/screens_panel.h | 2 |
2 files changed, 17 insertions, 8 deletions
diff --git a/src/wx/screens_panel.cc b/src/wx/screens_panel.cc index 5541d46d4..36a4f67bc 100644 --- a/src/wx/screens_panel.cc +++ b/src/wx/screens_panel.cc @@ -115,7 +115,8 @@ ScreensPanel::setup_sensitivity () _remove_screen->Enable (_selected_screens.size() >= 1); } -void + +optional<wxTreeItemId> ScreensPanel::add_cinema (shared_ptr<Cinema> c) { string search = wx_to_std (_search->GetValue ()); @@ -125,20 +126,24 @@ ScreensPanel::add_cinema (shared_ptr<Cinema> c) string name = c->name; transform (name.begin(), name.end(), name.begin(), ::tolower); if (name.find (search) == string::npos) { - return; + return optional<wxTreeItemId>(); } } - _cinemas[_targets->AppendItem (_root, std_to_wx (c->name))] = c; + wxTreeItemId id = _targets->AppendItem(_root, std_to_wx(c->name)); - list<shared_ptr<Screen> > sc = c->screens (); - for (list<shared_ptr<Screen> >::iterator i = sc.begin(); i != sc.end(); ++i) { - add_screen (c, *i); + _cinemas[id] = c; + + BOOST_FOREACH (shared_ptr<Screen> i, c->screens()) { + add_screen (c, i); } _targets->SortChildren (_root); + + return id; } + optional<wxTreeItemId> ScreensPanel::add_screen (shared_ptr<Cinema> c, shared_ptr<Screen> s) { @@ -162,7 +167,11 @@ ScreensPanel::add_cinema_clicked () if (d->ShowModal () == wxID_OK) { shared_ptr<Cinema> c (new Cinema (d->name(), d->emails(), d->notes(), d->utc_offset_hour(), d->utc_offset_minute())); Config::instance()->add_cinema (c); - add_cinema (c); + optional<wxTreeItemId> id = add_cinema (c); + if (id) { + _targets->Unselect (); + _targets->SelectItem (*id); + } } d->Destroy (); diff --git a/src/wx/screens_panel.h b/src/wx/screens_panel.h index 9cf317c5a..69d74b13b 100644 --- a/src/wx/screens_panel.h +++ b/src/wx/screens_panel.h @@ -48,7 +48,7 @@ public: private: void add_cinemas (); - void add_cinema (boost::shared_ptr<Cinema>); + boost::optional<wxTreeItemId> add_cinema (boost::shared_ptr<Cinema>); boost::optional<wxTreeItemId> add_screen (boost::shared_ptr<Cinema>, boost::shared_ptr<dcpomatic::Screen>); void add_cinema_clicked (); void edit_cinema_clicked (); |
