Un-check screens when they or their cinema are deleted.
authorCarl Hetherington <cth@carlh.net>
Fri, 3 Mar 2023 00:00:53 +0000 (01:00 +0100)
committerCarl Hetherington <cth@carlh.net>
Fri, 3 Mar 2023 00:00:53 +0000 (01:00 +0100)
src/wx/screens_panel.cc

index 6c5b28b8d0fdd048449ce2c0e3a0bdfc8994d3a3..9d322e45e0d496ebaa9b46432b45625b5bfdd9b0 100644 (file)
@@ -333,6 +333,9 @@ ScreensPanel::remove_cinema_clicked ()
        for (auto const& cinema: _selected_cinemas) {
                _ignore_cinemas_changed = true;
                ScopeGuard sg = [this]() { _ignore_cinemas_changed = false; };
+               for (auto screen: cinema->screens()) {
+                       _checked_screens.erase(screen);
+               }
                Config::instance()->remove_cinema(cinema);
                auto item = cinema_to_item(cinema);
                DCPOMATIC_ASSERT(item);
@@ -446,7 +449,8 @@ ScreensPanel::remove_screen_clicked ()
                }
        }
 
-       for (auto const& screen: _selected_screens) {
+       for (auto screen: _selected_screens) {
+               _checked_screens.erase(screen);
                screen->cinema->remove_screen(screen);
                auto item = screen_to_item(screen);
                DCPOMATIC_ASSERT(item);