diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-03-18 22:50:12 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-03-18 22:50:23 +0100 |
| commit | 896a5eca680cf6b0605d10523cfc88bfeb4c9810 (patch) | |
| tree | 0e3957c75d5edda27329579717ded36490cc26d2 /src/wx/screens_panel.h | |
| parent | 8937b4096aef372dbde07c78d1af9d44b0b0d642 (diff) | |
Preserve checked status during search (#2212).
Diffstat (limited to 'src/wx/screens_panel.h')
| -rw-r--r-- | src/wx/screens_panel.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/wx/screens_panel.h b/src/wx/screens_panel.h index 2567725b8..8c818f441 100644 --- a/src/wx/screens_panel.h +++ b/src/wx/screens_panel.h @@ -65,6 +65,8 @@ private: void search_changed (); void checkbox_changed (wxTreeListEvent& ev); boost::optional<std::pair<wxTreeListItem, std::shared_ptr<Cinema>>> cinema_for_operation () const; + void set_screen_checked (wxTreeListItem item, bool checked); + void setup_cinema_checked_state (wxTreeListItem screen); typedef std::vector<std::pair<wxTreeListItem, std::shared_ptr<Cinema>>> Cinemas; typedef std::vector<std::pair<wxTreeListItem, std::shared_ptr<dcpomatic::Screen>>> Screens; @@ -85,8 +87,16 @@ private: Cinemas _cinemas; Screens _screens; + /* We want to be able to search (and so remove selected things from the view) + * but not deselect them, so we maintain lists of selected cinemas and screens. + */ Cinemas _selected_cinemas; Screens _selected_screens; + /* Likewise with checked screens, except that we can work out which cinemas + * are checked from which screens are checked, so we don't need to store the + * cinemas. + */ + Screens _checked_screens; std::map<wxTreeListItem, std::shared_ptr<Cinema>> _item_to_cinema; std::map<wxTreeListItem, std::shared_ptr<dcpomatic::Screen>> _item_to_screen; @@ -94,6 +104,7 @@ private: std::map<std::shared_ptr<dcpomatic::Screen>, wxTreeListItem> _screen_to_item; bool _ignore_selection_change = false; + bool _ignore_check_change = false; class Comparator : public wxTreeListItemComparator { |
