2016-04-27 Carl Hetherington <cth@carlh.net>
+ * Add free-text notes field to cinemas and screens.
+
* Request confirmation before resetting preferences (#867).
2016-04-29 Carl Hetherington <cth@carlh.net>
Cinema::Cinema (cxml::ConstNodePtr node)
: name (node->string_child ("Name"))
+ , notes (node->optional_string_child("Notes").get_value_or(""))
{
BOOST_FOREACH (cxml::ConstNodePtr i, node->node_children("Email")) {
emails.push_back (i->content ());
parent->add_child("Email")->add_child_text (i);
}
+ parent->add_child("Notes")->add_child_text (notes);
+
parent->add_child("UTCOffsetHour")->add_child_text (dcp::raw_convert<string> (_utc_offset_hour));
parent->add_child("UTCOffsetMinute")->add_child_text (dcp::raw_convert<string> (_utc_offset_minute));
class Cinema : public boost::enable_shared_from_this<Cinema>
{
public:
- Cinema (std::string const & n, std::list<std::string> const & e, int utc_offset_hour, int utc_offset_minute)
- : name (n)
+ Cinema (std::string const & name_, std::list<std::string> const & e, std::string notes_, int utc_offset_hour, int utc_offset_minute)
+ : name (name_)
, emails (e)
+ , notes (notes_)
, _utc_offset_hour (utc_offset_hour)
, _utc_offset_minute (utc_offset_minute)
{}
std::string name;
std::list<std::string> emails;
+ std::string notes;
int utc_offset_hour () const {
return _utc_offset_hour;
/*
- Copyright (C) 2013-2015 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2013-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
#include <boost/foreach.hpp>
Screen::Screen (cxml::ConstNodePtr node)
- : name (node->string_child ("Name"))
+ : name (node->string_child("Name"))
+ , notes (node->optional_string_child("Notes").get_value_or (""))
{
if (node->optional_string_child ("Certificate")) {
recipient = dcp::Certificate (node->string_child ("Certificate"));
parent->add_child("Recipient")->add_child_text (recipient->certificate (true));
}
+ parent->add_child("Notes")->add_child_text (notes);
+
BOOST_FOREACH (dcp::Certificate const & i, trusted_devices) {
parent->add_child("TrustedDevice")->add_child_text (i.certificate (true));
}
/*
- Copyright (C) 2013-2015 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2013-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
boost::shared_ptr<Cinema> cinema;
std::string name;
+ std::string notes;
boost::optional<dcp::Certificate> recipient;
std::vector<dcp::Certificate> trusted_devices;
};
return s;
}
-CinemaDialog::CinemaDialog (wxWindow* parent, wxString title, string name, list<string> emails, int utc_offset_hour, int utc_offset_minute)
+CinemaDialog::CinemaDialog (wxWindow* parent, wxString title, string name, list<string> emails, string notes, int utc_offset_hour, int utc_offset_minute)
: wxDialog (parent, wxID_ANY, title)
{
wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL);
sizer->Add (_utc_offset, wxGBPosition (r, 1));
++r;
+ add_label_to_sizer (sizer, this, _("Notes"), true, wxGBPosition (r, 0));
+ _notes = new wxTextCtrl (this, wxID_ANY, std_to_wx (notes), wxDefaultPosition, wxSize (500, -1));
+ sizer->Add (_notes, wxGBPosition (r, 1));
+ ++r;
+
add_label_to_sizer (sizer, this, _("Email addresses for KDM delivery"), false, wxGBPosition (r, 0), wxGBSpan (1, 2));
++r;
return _offsets[sel].minute;
}
+
+string
+CinemaDialog::notes () const
+{
+ return wx_to_std (_notes->GetValue ());
+}
/*
- Copyright (C) 2012-2014 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
wxString,
std::string name = "",
std::list<std::string> emails = std::list<std::string> (),
+ std::string notes = "",
int utc_offset_hour = 0,
int utc_offset_minute = 0
);
std::string name () const;
+ std::string notes () const;
std::list<std::string> emails () const;
int utc_offset_hour () const;
int utc_offset_minute () const;
void set_emails (std::vector<std::string>);
wxTextCtrl* _name;
+ wxTextCtrl* _notes;
EditableList<std::string, EmailDialog>* _email_list;
std::vector<std::string> _emails;
wxChoice* _utc_offset;
}
};
-ScreenDialog::ScreenDialog (wxWindow* parent, wxString title, string name, optional<dcp::Certificate> recipient, vector<dcp::Certificate> trusted_devices)
+ScreenDialog::ScreenDialog (
+ wxWindow* parent, wxString title, string name, string notes, optional<dcp::Certificate> recipient, vector<dcp::Certificate> trusted_devices
+ )
: wxDialog (parent, wxID_ANY, title)
, _recipient (recipient)
, _trusted_devices (trusted_devices)
_sizer->Add (_name, wxGBPosition (r, 1));
++r;
+ add_label_to_sizer (_sizer, this, _("Notes"), true, wxGBPosition (r, 0));
+ _notes = new wxTextCtrl (this, wxID_ANY, std_to_wx (notes), wxDefaultPosition, wxSize (320, -1));
+ _sizer->Add (_notes, wxGBPosition (r, 1));
+ ++r;
+
wxClientDC dc (this);
wxFont font = _name->GetFont ();
font.SetFamily (wxFONTFAMILY_TELETYPE);
return wx_to_std (_name->GetValue());
}
+string
+ScreenDialog::notes () const
+{
+ return wx_to_std (_notes->GetValue());
+}
+
optional<dcp::Certificate>
ScreenDialog::recipient () const
{
wxWindow *,
wxString,
std::string name = "",
+ std::string notes = "",
boost::optional<dcp::Certificate> c = boost::optional<dcp::Certificate> (),
std::vector<dcp::Certificate> d = std::vector<dcp::Certificate> ()
);
std::string name () const;
+ std::string notes () const;
boost::optional<dcp::Certificate> recipient () const;
std::vector<dcp::Certificate> trusted_devices () {
return _trusted_devices;
wxGridBagSizer* _sizer;
wxTextCtrl* _name;
+ wxTextCtrl* _notes;
wxStaticText* _recipient_thumbprint;
wxButton* _get_recipient_from_file;
wxButton* _download_recipient;
{
CinemaDialog* d = new CinemaDialog (this, _("Add Cinema"));
if (d->ShowModal () == wxID_OK) {
- shared_ptr<Cinema> c (new Cinema (d->name(), d->emails(), d->utc_offset_hour(), d->utc_offset_minute()));
+ shared_ptr<Cinema> c (new Cinema (d->name(), d->emails(), d->notes(), d->utc_offset_hour(), d->utc_offset_minute()));
Config::instance()->add_cinema (c);
add_cinema (c);
}
pair<wxTreeItemId, shared_ptr<Cinema> > c = *_selected_cinemas.begin();
CinemaDialog* d = new CinemaDialog (
- this, _("Edit cinema"), c.second->name, c.second->emails, c.second->utc_offset_hour(), c.second->utc_offset_minute()
+ this, _("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) {
c.second->name = d->name ();
c.second->emails = d->emails ();
+ c.second->notes = d->notes ();
c.second->set_utc_offset_hour (d->utc_offset_hour ());
c.second->set_utc_offset_minute (d->utc_offset_minute ());
_targets->SetItemText (c.first, std_to_wx (d->name()));
pair<wxTreeItemId, shared_ptr<Screen> > s = *_selected_screens.begin();
- ScreenDialog* d = new ScreenDialog (this, _("Edit screen"), s.second->name, s.second->recipient, s.second->trusted_devices);
+ ScreenDialog* d = new ScreenDialog (this, _("Edit screen"), s.second->name, s.second->notes, s.second->recipient, s.second->trusted_devices);
if (d->ShowModal () == wxID_OK) {
s.second->name = d->name ();
+ s.second->notes = d->notes ();
s.second->recipient = d->recipient ();
s.second->trusted_devices = d->trusted_devices ();
_targets->SetItemText (s.first, std_to_wx (d->name()));