X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fmetadata_dialog.cc;h=b1c58a27e96616b0c4a92a80046a7e96263bc494;hb=70605ac958be4b9acee827431fd078a4201b6625;hp=84b9d2898b30db9a41f542e455400f065d744424;hpb=13585513b41e9270566981b9155e8b447443ff84;p=dcpomatic.git diff --git a/src/wx/metadata_dialog.cc b/src/wx/metadata_dialog.cc index 84b9d2898..b1c58a27e 100644 --- a/src/wx/metadata_dialog.cc +++ b/src/wx/metadata_dialog.cc @@ -20,26 +20,34 @@ #include "dcpomatic_button.h" +#include "editable_list.h" #include "full_language_tag_dialog.h" #include "language_tag_widget.h" #include "metadata_dialog.h" +#include "rating_dialog.h" #include "wx_util.h" #include "lib/film.h" -#include -#include +#include +LIBDCP_DISABLE_WARNINGS #include #include #include +LIBDCP_ENABLE_WARNINGS +#include +#include using std::weak_ptr; +using std::vector; MetadataDialog::MetadataDialog (wxWindow* parent, weak_ptr weak_film) : wxDialog (parent, wxID_ANY, _("Metadata")) , WeakFilm (weak_film) { - + for (auto system: dcp::rating_systems()) { + _rating_system_agency_to_name[system.agency] = system.name; + } } @@ -180,6 +188,29 @@ MetadataDialog::setup_standard (wxPanel* panel, wxSizer* sizer) s->Add (_edit_release_territory, 0, wxLEFT, DCPOMATIC_SIZER_GAP); sizer->Add (s, 0, wxEXPAND); } + + vector columns; + columns.push_back(EditableListColumn("Agency", 200, true)); + columns.push_back(EditableListColumn("Label", 400, true)); + _ratings = new EditableList ( + panel, + columns, + boost::bind(&MetadataDialog::ratings, this), + boost::bind(&MetadataDialog::set_ratings, this, _1), + [this](dcp::Rating r, int c) { + if (c == 0) { + auto iter = _rating_system_agency_to_name.find(r.agency); + if (iter != _rating_system_agency_to_name.end()) { + return iter->second; + } + return r.agency; + } + return r.label; + }, + true, + EditableListButton::NEW | EditableListButton::EDIT | EditableListButton::REMOVE + ); + _ratings->SetMinSize(wxSize(600, -1)); } @@ -277,7 +308,7 @@ MetadataDialog::setup_advanced (wxPanel* panel, wxSizer* sizer) sizer->Add (s, 1, wxEXPAND); } - _luminance_unit->Append (wxString::FromUTF8(_("candela per m²"))); + _luminance_unit->Append (_("candela per m²")); _luminance_unit->Append (_("foot lambert")); } @@ -405,3 +436,17 @@ MetadataDialog::sign_language_video_language_changed () film()->set_sign_language_video_language(_sign_language_video_language->get()); } + +vector +MetadataDialog::ratings() const +{ + return film()->ratings(); +} + + +void +MetadataDialog::set_ratings(vector r) +{ + film()->set_ratings(r); +} +