Use Collator for recipients search (#2426).
[dcpomatic.git] / src / wx / recipients_panel.cc
index 58a986ca4aef2614e47f872546b2b542e4f64034..485a0f94e1ea65f8219f7bea1e9c690b6e157302 100644 (file)
@@ -105,15 +105,10 @@ RecipientsPanel::setup_sensitivity ()
 void
 RecipientsPanel::add_recipient (shared_ptr<DKDMRecipient> r)
 {
-       string search = wx_to_std (_search->GetValue());
-       transform (search.begin(), search.end(), search.begin(), ::tolower);
-
-       if (!search.empty()) {
-               string name = r->name;
-               transform (name.begin(), name.end(), name.begin(), ::tolower);
-               if (name.find(search) == string::npos) {
-                       return;
-               }
+       string const search = wx_to_std(_search->GetValue());
+
+       if (!search.empty() && !_collator.find(search, r->name)) {
+               return;
        }
 
        _recipients[_targets->AppendItem(_root, std_to_wx(r->name))] = r;
@@ -125,14 +120,12 @@ RecipientsPanel::add_recipient (shared_ptr<DKDMRecipient> r)
 void
 RecipientsPanel::add_recipient_clicked ()
 {
-       auto d = new RecipientDialog (GetParent(), _("Add recipient"));
-       if (d->ShowModal() == wxID_OK) {
-               auto r = std::make_shared<DKDMRecipient>(d->name(), d->notes(), d->recipient(), d->emails(), d->utc_offset_hour(), d->utc_offset_minute());
+       RecipientDialog dialog(GetParent(), _("Add recipient"));
+       if (dialog.ShowModal() == wxID_OK) {
+               auto r = std::make_shared<DKDMRecipient>(dialog.name(), dialog.notes(), dialog.recipient(), dialog.emails(), dialog.utc_offset_hour(), dialog.utc_offset_minute());
                Config::instance()->add_dkdm_recipient (r);
                add_recipient (r);
        }
-
-       d->Destroy ();
 }
 
 
@@ -145,21 +138,19 @@ RecipientsPanel::edit_recipient_clicked ()
 
        auto c = *_selected.begin();
 
-       auto d = new RecipientDialog (
+       RecipientDialog dialog(
                GetParent(), _("Edit recipient"), c.second->name, c.second->notes, c.second->emails, c.second->utc_offset_hour, c.second->utc_offset_minute, c.second->recipient
                );
 
-       if (d->ShowModal () == wxID_OK) {
-               c.second->name = d->name ();
-               c.second->emails = d->emails ();
-               c.second->notes = d->notes ();
-               c.second->utc_offset_hour = d->utc_offset_hour ();
-               c.second->utc_offset_minute = d->utc_offset_minute ();
-               _targets->SetItemText (c.first, std_to_wx (d->name()));
+       if (dialog.ShowModal() == wxID_OK) {
+               c.second->name = dialog.name();
+               c.second->emails = dialog.emails();
+               c.second->notes = dialog.notes();
+               c.second->utc_offset_hour = dialog.utc_offset_hour();
+               c.second->utc_offset_minute = dialog.utc_offset_minute();
+               _targets->SetItemText(c.first, std_to_wx(dialog.name()));
                Config::instance()->changed (Config::DKDM_RECIPIENTS);
        }
-
-       d->Destroy ();
 }