Use collator to search for screens (#2426).
authorCarl Hetherington <cth@carlh.net>
Tue, 17 Jan 2023 16:33:15 +0000 (17:33 +0100)
committerCarl Hetherington <cth@carlh.net>
Tue, 17 Jan 2023 21:41:27 +0000 (22:41 +0100)
src/wx/screens_panel.cc
src/wx/screens_panel.h

index 617ff9adc7cfd0a5674f3a758bf003adcad09910..6c5b28b8d0fdd048449ce2c0e3a0bdfc8994d3a3 100644 (file)
@@ -177,23 +177,20 @@ ScreensPanel::convert_to_lower(string& s)
 
 
 bool
-ScreensPanel::matches_search(shared_ptr<const Cinema> cinema, string lower_case_search)
+ScreensPanel::matches_search(shared_ptr<const Cinema> cinema, string search)
 {
-       if (lower_case_search.empty()) {
+       if (search.empty()) {
                return true;
        }
 
-       auto name = cinema->name;
-       convert_to_lower(name);
-       return name.find(lower_case_search) != string::npos;
+       return _collator.find(search, cinema->name);
 }
 
 
 optional<wxTreeListItem>
 ScreensPanel::add_cinema (shared_ptr<Cinema> cinema, wxTreeListItem previous)
 {
-       auto search = wx_to_std (_search->GetValue ());
-       convert_to_lower(search);
+       auto const search = wx_to_std(_search->GetValue());
        if (!matches_search(cinema, search)) {
                return {};
        }
@@ -249,8 +246,7 @@ ScreensPanel::add_cinema_clicked ()
 
                wxTreeListItem previous = wxTLI_FIRST;
                bool found = false;
-               auto search = wx_to_std(_search->GetValue());
-               convert_to_lower(search);
+               auto const search = wx_to_std(_search->GetValue());
                for (auto existing_cinema: cinemas) {
                        if (!matches_search(existing_cinema, search)) {
                                continue;
index bdbac5141d3dd1e675c0cd72e75c92c2d5d33e27..65dfbdddb5f76abfe8467cf99eed03d6fc221f79 100644 (file)
@@ -78,7 +78,7 @@ private:
        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);
+       bool matches_search(std::shared_ptr<const Cinema> cinema, std::string search);
        std::list<std::shared_ptr<Cinema>> sorted_cinemas() const;
 
        std::shared_ptr<Cinema> item_to_cinema (wxTreeListItem item) const;