X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Frecipients_panel.cc;h=485a0f94e1ea65f8219f7bea1e9c690b6e157302;hb=d5e87cdc4003ed1e7c31cd4991a1c31ad7d4e3a2;hp=e59293fe782a92e634a98ad7af92317e9652e717;hpb=a5d004b0773f633401528392fc28e66d70e13ac8;p=dcpomatic.git diff --git a/src/wx/recipients_panel.cc b/src/wx/recipients_panel.cc index e59293fe7..485a0f94e 100644 --- a/src/wx/recipients_panel.cc +++ b/src/wx/recipients_panel.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2015-2020 Carl Hetherington + Copyright (C) 2015-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,6 +18,7 @@ */ + #include "recipients_panel.h" #include "wx_util.h" #include "recipient_dialog.h" @@ -26,21 +27,23 @@ #include #include -using std::list; -using std::pair; + using std::cout; -using std::map; -using std::string; +using std::list; using std::make_pair; +using std::map; +using std::pair; using std::shared_ptr; +using std::string; using boost::optional; using namespace dcpomatic; + RecipientsPanel::RecipientsPanel (wxWindow* parent) : wxPanel (parent, wxID_ANY) , _ignore_selection_change (false) { - wxBoxSizer* sizer = new wxBoxSizer (wxVERTICAL); + auto sizer = new wxBoxSizer (wxVERTICAL); #ifdef __WXGTK3__ int const height = 30; @@ -55,13 +58,13 @@ RecipientsPanel::RecipientsPanel (wxWindow* parent) #endif sizer->Add (_search, 0, wxBOTTOM, DCPOMATIC_SIZER_GAP); - wxBoxSizer* targets = new wxBoxSizer (wxHORIZONTAL); + auto targets = new wxBoxSizer (wxHORIZONTAL); _targets = new wxTreeCtrl (this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_HIDE_ROOT | wxTR_MULTIPLE | wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT); targets->Add (_targets, 1, wxEXPAND | wxRIGHT, DCPOMATIC_SIZER_GAP); add_recipients (); - wxBoxSizer* target_buttons = new wxBoxSizer (wxVERTICAL); + auto target_buttons = new wxBoxSizer (wxVERTICAL); _add_recipient = new Button (this, _("Add...")); target_buttons->Add (_add_recipient, 1, wxEXPAND | wxBOTTOM, DCPOMATIC_BUTTON_STACK_GAP); @@ -102,15 +105,10 @@ RecipientsPanel::setup_sensitivity () void RecipientsPanel::add_recipient (shared_ptr 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; @@ -122,14 +120,12 @@ RecipientsPanel::add_recipient (shared_ptr r) void RecipientsPanel::add_recipient_clicked () { - RecipientDialog* d = new RecipientDialog (GetParent(), _("Add recipient")); - if (d->ShowModal() == wxID_OK) { - shared_ptr r (new 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(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 (); } @@ -140,45 +136,43 @@ RecipientsPanel::edit_recipient_clicked () return; } - pair > c = *_selected.begin(); + auto c = *_selected.begin(); - RecipientDialog* 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 (); } void RecipientsPanel::remove_recipient_clicked () { - for (RecipientMap::iterator i = _selected.begin(); i != _selected.end(); ++i) { - Config::instance()->remove_dkdm_recipient (i->second); - _targets->Delete (i->first); + for (auto const& i: _selected) { + Config::instance()->remove_dkdm_recipient (i.second); + _targets->Delete (i.first); } selection_changed (); } -list > +list> RecipientsPanel::recipients () const { - list > r; + list> r; - for (RecipientMap::const_iterator i = _selected.begin(); i != _selected.end(); ++i) { - r.push_back (i->second); + for (auto const& i: _selected) { + r.push_back (i.second); } r.sort (); @@ -240,10 +234,10 @@ RecipientsPanel::search_changed () _ignore_selection_change = true; - for (RecipientMap::const_iterator i = _selected.begin(); i != _selected.end(); ++i) { + for (auto const& i: _selected) { /* The wxTreeItemIds will now be different, so we must search by recipient */ - RecipientMap::const_iterator j = _recipients.begin (); - while (j != _recipients.end() && j->second != i->second) { + auto j = _recipients.begin (); + while (j != _recipients.end() && j->second != i.second) { ++j; }