Cleanup: add convert_to_lower() and matches_search().
authorCarl Hetherington <cth@carlh.net>
Wed, 23 Nov 2022 19:41:16 +0000 (20:41 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 23 Nov 2022 20:23:25 +0000 (21:23 +0100)
src/wx/screens_panel.cc
src/wx/screens_panel.h

index a726030ade2049e34a3575e9398acde44ee2a2f7..272b983d90c8bf5e72c81e00c3b38ef3e9791163 100644 (file)
@@ -167,18 +167,33 @@ ScreensPanel::setup_sensitivity ()
 }
 
 
 }
 
 
+void
+ScreensPanel::convert_to_lower(string& s)
+{
+       transform(s.begin(), s.end(), s.begin(), ::tolower);
+}
+
+
+bool
+ScreensPanel::matches_search(shared_ptr<const Cinema> cinema, string lower_case_search)
+{
+       if (lower_case_search.empty()) {
+               return true;
+       }
+
+       auto name = cinema->name;
+       convert_to_lower(name);
+       return name.find(lower_case_search) != string::npos;
+}
+
+
 optional<wxTreeListItem>
 ScreensPanel::add_cinema (shared_ptr<Cinema> cinema, wxTreeListItem previous)
 {
        auto search = wx_to_std (_search->GetValue ());
 optional<wxTreeListItem>
 ScreensPanel::add_cinema (shared_ptr<Cinema> cinema, wxTreeListItem previous)
 {
        auto search = wx_to_std (_search->GetValue ());
-       transform (search.begin(), search.end(), search.begin(), ::tolower);
-
-       if (!search.empty ()) {
-               auto name = cinema->name;
-               transform (name.begin(), name.end(), name.begin(), ::tolower);
-               if (name.find (search) == string::npos) {
-                       return {};
-               }
+       convert_to_lower(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));
index e9cd8454dcd39af0968ba45c69441626f255fb7c..73da029d0e4a6f83fa745045b2ddbf7b08a6b332 100644 (file)
@@ -74,6 +74,8 @@ private:
        bool notify_cinemas_changed();
        void clear_and_re_add();
        void config_changed(Config::Property);
        bool notify_cinemas_changed();
        void clear_and_re_add();
        void config_changed(Config::Property);
+       void convert_to_lower(std::string& s);
+       bool matches_search(std::shared_ptr<const Cinema> cinema, std::string lower_case_search);
 
        std::shared_ptr<Cinema> item_to_cinema (wxTreeListItem item) const;
        std::shared_ptr<dcpomatic::Screen> item_to_screen (wxTreeListItem item) const;
 
        std::shared_ptr<Cinema> item_to_cinema (wxTreeListItem item) const;
        std::shared_ptr<dcpomatic::Screen> item_to_screen (wxTreeListItem item) const;