Check _checked_screens cinema ID instead of checking each screen.
authorCarl Hetherington <cth@carlh.net>
Fri, 17 Jan 2025 00:05:01 +0000 (01:05 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 22 Jan 2025 13:34:25 +0000 (14:34 +0100)
src/wx/screens_panel.cc

index 3fae01839f67427968e682f96e4f1daa48776735..630e69494191f7f97e295b16399f86d3838c46b3 100644 (file)
@@ -209,13 +209,11 @@ ScreensPanel::add_cinema(CinemaID cinema_id, Cinema const& cinema, wxTreeListIte
        auto screens = _cinema_list.screens(cinema_id);
 
        if (_show_only_checked->get()) {
-               auto iter = std::find_if(screens.begin(), screens.end(), [this](pair<ScreenID, dcpomatic::Screen> const& screen) {
-                       auto iter2 = std::find_if(_checked_screens.begin(), _checked_screens.end(), [screen](pair<CinemaID, ScreenID> const& checked) {
-                               return checked.second == screen.first;
-                       });
-                       return iter2 != _checked_screens.end();
+               auto iter = std::find_if(_checked_screens.begin(), _checked_screens.end(), [cinema_id](pair<CinemaID, ScreenID> const& checked) {
+                       return checked.first == cinema_id;
                });
-               if (iter == screens.end()) {
+
+               if (iter == _checked_screens.end()) {
                        return {};
                }
        }