X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Finterop_metadata_dialog.cc;h=a3e236691ed4f74afd65e8863f5efb83621a0bd3;hb=959e2b1a5c799427375fc8f7bb11389f699cfe21;hp=186e9bbcdefa9f8baf44ef538a40ddfc0f65cf48;hpb=1a7c50245309bb0b99001940b2203a267de942ca;p=dcpomatic.git diff --git a/src/wx/interop_metadata_dialog.cc b/src/wx/interop_metadata_dialog.cc index 186e9bbcd..a3e236691 100644 --- a/src/wx/interop_metadata_dialog.cc +++ b/src/wx/interop_metadata_dialog.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2019 Carl Hetherington + Copyright (C) 2020-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,110 +18,68 @@ */ + #include "interop_metadata_dialog.h" -#include "editable_list.h" +#include "language_tag_widget.h" #include "rating_dialog.h" #include "lib/film.h" #include +#include +LIBDCP_DISABLE_WARNINGS #include +LIBDCP_ENABLE_WARNINGS + +using std::shared_ptr; using std::string; using std::vector; -using boost::weak_ptr; -using boost::shared_ptr; +using std::weak_ptr; #if BOOST_VERSION >= 106100 using namespace boost::placeholders; #endif -static string -column (dcp::Rating r, int c) +InteropMetadataDialog::InteropMetadataDialog (wxWindow* parent, weak_ptr film) + : MetadataDialog (parent, film) { - if (c == 0) { - return r.agency; - } - return r.label; } -InteropMetadataDialog::InteropMetadataDialog (wxWindow* parent, weak_ptr film) - : wxDialog (parent, wxID_ANY, _("Metadata")) - , _film (film) +void +InteropMetadataDialog::setup_standard (wxPanel* panel, wxSizer* sizer) { - wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL); - SetSizer (overall_sizer); - - wxFlexGridSizer* sizer = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); - sizer->AddGrowableCol (1, 1); + MetadataDialog::setup_standard (panel, sizer); { int flags = wxALIGN_TOP | wxLEFT | wxRIGHT | wxTOP; #ifdef __WXOSX__ flags |= wxALIGN_RIGHT; #endif - wxStaticText* m = create_label (this, _("Ratings"), true); + auto m = create_label (panel, _("Ratings"), true); sizer->Add (m, 0, flags, DCPOMATIC_SIZER_GAP); } - vector columns; - columns.push_back (EditableListColumn(_("Agency"), 200, true)); - columns.push_back (EditableListColumn(_("Label"), 50, true)); - _ratings = new EditableList ( - this, - columns, - boost::bind(&InteropMetadataDialog::ratings, this), - boost::bind(&InteropMetadataDialog::set_ratings, this, _1), - boost::bind(&column, _1, _2), - true, - false - ); sizer->Add (_ratings, 1, wxEXPAND); - add_label_to_sizer (sizer, this, _("Content version"), true); - _content_version = new wxTextCtrl (this, wxID_ANY); + add_label_to_sizer (sizer, panel, _("Content version"), true, 0, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL); + _content_version = new wxTextCtrl (panel, wxID_ANY); sizer->Add (_content_version, 1, wxEXPAND); - shared_ptr f = _film.lock(); - DCPOMATIC_ASSERT (f); - vector cv = f->content_versions(); + auto cv = film()->content_versions(); _content_version->SetValue (std_to_wx(cv.empty() ? "" : cv[0])); - overall_sizer->Add (sizer, 1, wxEXPAND | wxALL, DCPOMATIC_DIALOG_BORDER); - - wxSizer* buttons = CreateSeparatedButtonSizer (wxCLOSE); - if (buttons) { - overall_sizer->Add (buttons, wxSizerFlags().Expand().DoubleBorder()); - } - - overall_sizer->Layout (); - overall_sizer->SetSizeHints (this); - _content_version->Bind (wxEVT_TEXT, boost::bind(&InteropMetadataDialog::content_version_changed, this)); _content_version->SetFocus (); } -vector -InteropMetadataDialog::ratings () const -{ - shared_ptr film = _film.lock (); - DCPOMATIC_ASSERT (film); - return film->ratings (); -} - -void -InteropMetadataDialog::set_ratings (vector r) -{ - shared_ptr film = _film.lock (); - DCPOMATIC_ASSERT (film); - film->set_ratings (r); -} void InteropMetadataDialog::content_version_changed () { - shared_ptr film = _film.lock (); - DCPOMATIC_ASSERT (film); - vector cv; - cv.push_back (wx_to_std(_content_version->GetValue())); - film->set_content_versions (cv); + auto version = wx_to_std(_content_version->GetValue()); + if (version.empty()) { + film()->set_content_versions({}); + } else { + film()->set_content_versions({version}); + } }