summaryrefslogtreecommitdiff
path: root/src/wx/screens_panel.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-02-03 22:32:58 +0100
committerCarl Hetherington <cth@carlh.net>2021-02-03 22:32:58 +0100
commit5a8f1059efce6eeac2f1f3c01acc41424f3950d6 (patch)
tree8a95c9bda29115e7d4acfafa473dd4cafcc2e4bd /src/wx/screens_panel.cc
parentb81f1396528f01bead8c1faf128a277820980025 (diff)
c++11 tidying.
Diffstat (limited to 'src/wx/screens_panel.cc')
-rw-r--r--src/wx/screens_panel.cc114
1 files changed, 65 insertions, 49 deletions
diff --git a/src/wx/screens_panel.cc b/src/wx/screens_panel.cc
index 02b51f860..6bc821feb 100644
--- a/src/wx/screens_panel.cc
+++ b/src/wx/screens_panel.cc
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2015-2018 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2015-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
@@ -18,6 +18,7 @@
*/
+
#include "screens_panel.h"
#include "wx_util.h"
#include "cinema_dialog.h"
@@ -27,16 +28,19 @@
#include "lib/cinema.h"
#include "lib/screen.h"
+
using std::list;
using std::pair;
using std::cout;
using std::map;
using std::string;
using std::make_pair;
+using std::make_shared;
using std::shared_ptr;
using boost::optional;
using namespace dcpomatic;
+
ScreensPanel::ScreensPanel (wxWindow* parent)
: wxPanel (parent, wxID_ANY)
, _ignore_selection_change (false)
@@ -56,13 +60,13 @@ ScreensPanel::ScreensPanel (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_cinemas ();
- wxBoxSizer* target_buttons = new wxBoxSizer (wxVERTICAL);
+ auto target_buttons = new wxBoxSizer (wxVERTICAL);
_add_cinema = new Button (this, _("Add Cinema..."));
target_buttons->Add (_add_cinema, 1, wxEXPAND | wxBOTTOM, DCPOMATIC_BUTTON_STACK_GAP);
@@ -95,11 +99,13 @@ ScreensPanel::ScreensPanel (wxWindow* parent)
SetSizer (sizer);
}
+
ScreensPanel::~ScreensPanel ()
{
_targets->Unbind (wxEVT_TREE_SEL_CHANGED, &ScreensPanel::selection_changed_shim, this);
}
+
void
ScreensPanel::setup_sensitivity ()
{
@@ -118,18 +124,18 @@ ScreensPanel::setup_sensitivity ()
optional<wxTreeItemId>
ScreensPanel::add_cinema (shared_ptr<Cinema> c)
{
- string search = wx_to_std (_search->GetValue ());
+ auto search = wx_to_std (_search->GetValue ());
transform (search.begin(), search.end(), search.begin(), ::tolower);
if (!search.empty ()) {
- string name = c->name;
+ auto name = c->name;
transform (name.begin(), name.end(), name.begin(), ::tolower);
if (name.find (search) == string::npos) {
return optional<wxTreeItemId>();
}
}
- wxTreeItemId id = _targets->AppendItem(_root, std_to_wx(c->name));
+ auto id = _targets->AppendItem(_root, std_to_wx(c->name));
_cinemas[id] = c;
@@ -146,27 +152,28 @@ ScreensPanel::add_cinema (shared_ptr<Cinema> c)
optional<wxTreeItemId>
ScreensPanel::add_screen (shared_ptr<Cinema> c, shared_ptr<Screen> s)
{
- CinemaMap::const_iterator i = _cinemas.begin();
+ auto i = _cinemas.begin();
while (i != _cinemas.end() && i->second != c) {
++i;
}
if (i == _cinemas.end()) {
- return optional<wxTreeItemId> ();
+ return {};
}
_screens[_targets->AppendItem (i->first, std_to_wx (s->name))] = s;
return i->first;
}
+
void
ScreensPanel::add_cinema_clicked ()
{
- CinemaDialog* d = new CinemaDialog (GetParent(), _("Add Cinema"));
+ auto d = new CinemaDialog (GetParent(), _("Add Cinema"));
if (d->ShowModal () == wxID_OK) {
- shared_ptr<Cinema> c (new Cinema (d->name(), d->emails(), d->notes(), d->utc_offset_hour(), d->utc_offset_minute()));
+ auto c = make_shared<Cinema>(d->name(), d->emails(), d->notes(), d->utc_offset_hour(), d->utc_offset_minute());
Config::instance()->add_cinema (c);
- optional<wxTreeItemId> id = add_cinema (c);
+ auto id = add_cinema (c);
if (id) {
_targets->Unselect ();
_targets->SelectItem (*id);
@@ -176,6 +183,7 @@ ScreensPanel::add_cinema_clicked ()
d->Destroy ();
}
+
void
ScreensPanel::edit_cinema_clicked ()
{
@@ -183,13 +191,13 @@ ScreensPanel::edit_cinema_clicked ()
return;
}
- pair<wxTreeItemId, shared_ptr<Cinema> > c = *_selected_cinemas.begin();
+ auto c = *_selected_cinemas.begin();
- CinemaDialog* d = new CinemaDialog (
+ auto d = new CinemaDialog (
GetParent(), _("Edit cinema"), c.second->name, c.second->emails, c.second->notes, c.second->utc_offset_hour(), c.second->utc_offset_minute()
);
- if (d->ShowModal () == wxID_OK) {
+ if (d->ShowModal() == wxID_OK) {
c.second->name = d->name ();
c.second->emails = d->emails ();
c.second->notes = d->notes ();
@@ -202,6 +210,7 @@ ScreensPanel::edit_cinema_clicked ()
d->Destroy ();
}
+
void
ScreensPanel::remove_cinema_clicked ()
{
@@ -215,14 +224,15 @@ ScreensPanel::remove_cinema_clicked ()
}
}
- for (CinemaMap::iterator i = _selected_cinemas.begin(); i != _selected_cinemas.end(); ++i) {
- Config::instance()->remove_cinema (i->second);
- _targets->Delete (i->first);
+ for (auto const& i: _selected_cinemas) {
+ Config::instance()->remove_cinema (i.second);
+ _targets->Delete (i.first);
}
selection_changed ();
}
+
void
ScreensPanel::add_screen_clicked ()
{
@@ -230,9 +240,9 @@ ScreensPanel::add_screen_clicked ()
return;
}
- shared_ptr<Cinema> c = _selected_cinemas.begin()->second;
+ auto c = _selected_cinemas.begin()->second;
- ScreenDialog* d = new ScreenDialog (GetParent(), _("Add Screen"));
+ auto d = new ScreenDialog (GetParent(), _("Add Screen"));
if (d->ShowModal () != wxID_OK) {
d->Destroy ();
return;
@@ -251,9 +261,9 @@ ScreensPanel::add_screen_clicked ()
}
}
- shared_ptr<Screen> s (new Screen (d->name(), d->notes(), d->recipient(), d->trusted_devices()));
+ auto s = std::make_shared<Screen>(d->name(), d->notes(), d->recipient(), d->trusted_devices());
c->add_screen (s);
- optional<wxTreeItemId> id = add_screen (c, s);
+ auto id = add_screen (c, s);
if (id) {
_targets->Expand (id.get ());
}
@@ -263,6 +273,7 @@ ScreensPanel::add_screen_clicked ()
d->Destroy ();
}
+
void
ScreensPanel::edit_screen_clicked ()
{
@@ -270,15 +281,15 @@ ScreensPanel::edit_screen_clicked ()
return;
}
- pair<wxTreeItemId, shared_ptr<Screen> > s = *_selected_screens.begin();
+ auto s = *_selected_screens.begin();
- ScreenDialog* d = new ScreenDialog (GetParent(), _("Edit screen"), s.second->name, s.second->notes, s.second->recipient, s.second->trusted_devices);
- if (d->ShowModal () != wxID_OK) {
+ auto d = new ScreenDialog (GetParent(), _("Edit screen"), s.second->name, s.second->notes, s.second->recipient, s.second->trusted_devices);
+ if (d->ShowModal() != wxID_OK) {
d->Destroy ();
return;
}
- shared_ptr<Cinema> c = s.second->cinema;
+ auto c = s.second->cinema;
for (auto i: c->screens ()) {
if (i != s.second && i->name == d->name()) {
error_dialog (
@@ -302,6 +313,7 @@ ScreensPanel::edit_screen_clicked ()
d->Destroy ();
}
+
void
ScreensPanel::remove_screen_clicked ()
{
@@ -315,11 +327,11 @@ ScreensPanel::remove_screen_clicked ()
}
}
- for (ScreenMap::iterator i = _selected_screens.begin(); i != _selected_screens.end(); ++i) {
- CinemaMap::iterator j = _cinemas.begin ();
+ for (auto const& i: _selected_screens) {
+ auto j = _cinemas.begin ();
while (j != _cinemas.end ()) {
- list<shared_ptr<Screen> > sc = j->second->screens ();
- if (find (sc.begin(), sc.end(), i->second) != sc.end ()) {
+ auto sc = j->second->screens ();
+ if (find (sc.begin(), sc.end(), i.second) != sc.end ()) {
break;
}
@@ -330,27 +342,27 @@ ScreensPanel::remove_screen_clicked ()
continue;
}
- j->second->remove_screen (i->second);
- _targets->Delete (i->first);
+ j->second->remove_screen (i.second);
+ _targets->Delete (i.first);
}
Config::instance()->changed (Config::CINEMAS);
}
-list<shared_ptr<Screen> >
+
+list<shared_ptr<Screen>>
ScreensPanel::screens () const
{
- list<shared_ptr<Screen> > s;
+ list<shared_ptr<Screen>> s;
- for (CinemaMap::const_iterator i = _selected_cinemas.begin(); i != _selected_cinemas.end(); ++i) {
- list<shared_ptr<Screen> > sc = i->second->screens ();
- for (list<shared_ptr<Screen> >::const_iterator j = sc.begin(); j != sc.end(); ++j) {
- s.push_back (*j);
+ for (auto const& i: _selected_cinemas) {
+ for (auto j: i.second->screens()) {
+ s.push_back (j);
}
}
- for (ScreenMap::const_iterator i = _selected_screens.begin(); i != _selected_screens.end(); ++i) {
- s.push_back (i->second);
+ for (auto const& i: _selected_screens) {
+ s.push_back (i.second);
}
s.sort ();
@@ -359,12 +371,14 @@ ScreensPanel::screens () const
return s;
}
+
void
ScreensPanel::selection_changed_shim (wxTreeEvent &)
{
selection_changed ();
}
+
void
ScreensPanel::selection_changed ()
{
@@ -379,11 +393,11 @@ ScreensPanel::selection_changed ()
_selected_screens.clear ();
for (size_t i = 0; i < s.GetCount(); ++i) {
- CinemaMap::const_iterator j = _cinemas.find (s[i]);
+ auto j = _cinemas.find (s[i]);
if (j != _cinemas.end ()) {
_selected_cinemas[j->first] = j->second;
}
- ScreenMap::const_iterator k = _screens.find (s[i]);
+ auto k = _screens.find (s[i]);
if (k != _screens.end ()) {
_selected_screens[k->first] = k->second;
}
@@ -393,6 +407,7 @@ ScreensPanel::selection_changed ()
ScreensChanged ();
}
+
void
ScreensPanel::add_cinemas ()
{
@@ -403,6 +418,7 @@ ScreensPanel::add_cinemas ()
}
}
+
void
ScreensPanel::search_changed ()
{
@@ -414,25 +430,25 @@ ScreensPanel::search_changed ()
_ignore_selection_change = true;
- for (CinemaMap::const_iterator i = _selected_cinemas.begin(); i != _selected_cinemas.end(); ++i) {
+ for (auto const& i: _selected_cinemas) {
/* The wxTreeItemIds will now be different, so we must search by cinema */
- CinemaMap::const_iterator j = _cinemas.begin ();
- while (j != _cinemas.end() && j->second != i->second) {
+ auto j = _cinemas.begin ();
+ while (j != _cinemas.end() && j->second != i.second) {
++j;
}
- if (j != _cinemas.end ()) {
+ if (j != _cinemas.end()) {
_targets->SelectItem (j->first);
}
}
- for (ScreenMap::const_iterator i = _selected_screens.begin(); i != _selected_screens.end(); ++i) {
- ScreenMap::const_iterator j = _screens.begin ();
- while (j != _screens.end() && j->second != i->second) {
+ for (auto const& i: _selected_screens) {
+ auto j = _screens.begin ();
+ while (j != _screens.end() && j->second != i.second) {
++j;
}
- if (j != _screens.end ()) {
+ if (j != _screens.end()) {
_targets->SelectItem (j->first);
}
}