diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-03-02 21:41:58 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-03-08 10:30:34 +0000 |
| commit | 581ea73e56388d87a0c7f736efce447076618393 (patch) | |
| tree | dccfd764d2234e7a3c4f15827ea5f237ebab5f65 /src/wx | |
| parent | 61978a4f081a3c41896bf41185634778b7c1e9ce (diff) | |
Add GUI and storage for UTC offset in Cinema.
Diffstat (limited to 'src/wx')
| -rw-r--r-- | src/wx/cinema_dialog.cc | 26 | ||||
| -rw-r--r-- | src/wx/cinema_dialog.h | 4 | ||||
| -rw-r--r-- | src/wx/screens_panel.cc | 5 |
3 files changed, 30 insertions, 5 deletions
diff --git a/src/wx/cinema_dialog.cc b/src/wx/cinema_dialog.cc index 183e3b1b2..6fb4acc6b 100644 --- a/src/wx/cinema_dialog.cc +++ b/src/wx/cinema_dialog.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012 Carl Hetherington <cth@carlh.net> + Copyright (C) 2012-2016 Carl Hetherington <cth@carlh.net> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,6 +19,7 @@ #include "cinema_dialog.h" #include "wx_util.h" +#include "lib/dcpomatic_assert.h" #include <boost/foreach.hpp> using std::string; @@ -35,7 +36,7 @@ column (string s) return s; } -CinemaDialog::CinemaDialog (wxWindow* parent, string title, string name, list<string> emails) +CinemaDialog::CinemaDialog (wxWindow* parent, string title, string name, list<string> emails, int utc_offset) : wxDialog (parent, wxID_ANY, std_to_wx (title)) { wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL); @@ -49,6 +50,11 @@ CinemaDialog::CinemaDialog (wxWindow* parent, string title, string name, list<st sizer->Add (_name, wxGBPosition (r, 1)); ++r; + add_label_to_sizer (sizer, this, _("UTC offset (time zone)"), true, wxGBPosition (r, 0)); + _utc_offset = new wxChoice (this, wxID_ANY); + sizer->Add (_utc_offset, wxGBPosition (r, 1)); + ++r; + add_label_to_sizer (sizer, this, _("Email addresses for KDM delivery"), false, wxGBPosition (r, 0), wxGBSpan (1, 2)); ++r; @@ -70,6 +76,16 @@ CinemaDialog::CinemaDialog (wxWindow* parent, string title, string name, list<st overall_sizer->Add (buttons, wxSizerFlags().Expand().DoubleBorder()); } + for (int i = -11; i <= -1; ++i) { + _utc_offset->Append (wxString::Format (_("UTC%d"), i)); + } + _utc_offset->Append (_("UTC")); + for (int i = 1; i <= 12; ++i) { + _utc_offset->Append (wxString::Format (_("UTC+%d"), i)); + } + + _utc_offset->SetSelection (utc_offset + 11); + overall_sizer->Layout (); overall_sizer->SetSizeHints (this); } @@ -99,3 +115,9 @@ CinemaDialog::emails () const copy (_emails.begin(), _emails.end(), back_inserter (e)); return e; } + +int +CinemaDialog::utc_offset () const +{ + return _utc_offset->GetSelection() - 11; +} diff --git a/src/wx/cinema_dialog.h b/src/wx/cinema_dialog.h index 7d27bd94b..a34935e51 100644 --- a/src/wx/cinema_dialog.h +++ b/src/wx/cinema_dialog.h @@ -27,10 +27,11 @@ class CinemaDialog : public wxDialog { public: - CinemaDialog (wxWindow *, std::string, std::string name = "", std::list<std::string> emails = std::list<std::string> ()); + CinemaDialog (wxWindow *, std::string, std::string name = "", std::list<std::string> emails = std::list<std::string> (), int utc_offset = 0); std::string name () const; std::list<std::string> emails () const; + int utc_offset () const; private: std::vector<std::string> get_emails () const; @@ -39,4 +40,5 @@ private: wxTextCtrl* _name; EditableList<std::string, EmailDialog>* _email_list; std::vector<std::string> _emails; + wxChoice* _utc_offset; }; diff --git a/src/wx/screens_panel.cc b/src/wx/screens_panel.cc index 63d528b77..a75316d8c 100644 --- a/src/wx/screens_panel.cc +++ b/src/wx/screens_panel.cc @@ -149,7 +149,7 @@ ScreensPanel::add_cinema_clicked () { CinemaDialog* d = new CinemaDialog (this, "Add Cinema"); if (d->ShowModal () == wxID_OK) { - shared_ptr<Cinema> c (new Cinema (d->name(), d->emails())); + shared_ptr<Cinema> c (new Cinema (d->name(), d->emails(), d->utc_offset())); Config::instance()->add_cinema (c); add_cinema (c); } @@ -166,10 +166,11 @@ ScreensPanel::edit_cinema_clicked () pair<wxTreeItemId, shared_ptr<Cinema> > c = *_selected_cinemas.begin(); - CinemaDialog* d = new CinemaDialog (this, "Edit cinema", c.second->name, c.second->emails); + CinemaDialog* d = new CinemaDialog (this, "Edit cinema", c.second->name, c.second->emails, c.second->utc_offset()); if (d->ShowModal () == wxID_OK) { c.second->name = d->name (); c.second->emails = d->emails (); + c.second->set_utc_offset (d->utc_offset ()); _targets->SetItemText (c.first, std_to_wx (d->name())); Config::instance()->changed (); } |
