- wxSizer* dkdm = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
- add_label_to_sizer (dkdm, overall_panel, _("DKDM file"), true);
-#ifdef DCPOMATIC_USE_OWN_PICKER
- _dkdm = new FilePicker (overall_panel, _("Select a DKDM XML file..."), "*.xml");
-#else
- _dkdm = new wxFilePickerCtrl (overall_panel, wxID_ANY, wxEmptyString, _("Select a DKDM XML file..."), "*.xml", wxDefaultPosition, wxSize (300, -1));
-#endif
- dkdm->Add (_dkdm, 1, wxEXPAND);
- add_label_to_sizer (dkdm, overall_panel, _("Annotation"), true);
- _annotation_text = new wxStaticText (overall_panel, wxID_ANY, wxT(""));
- dkdm->Add (_annotation_text, 1, wxEXPAND);
- add_label_to_sizer (dkdm, overall_panel, _("Content title"), true);
- _content_title_text = new wxStaticText (overall_panel, wxID_ANY, wxT(""));
- dkdm->Add (_content_title_text, 1, wxEXPAND);
- add_label_to_sizer (dkdm, overall_panel, _("Issue date"), true);
- _issue_date = new wxStaticText (overall_panel, wxID_ANY, wxT(""));
- dkdm->Add (_issue_date, 1, wxEXPAND);
- vertical->Add (dkdm, 0, wxALL, DCPOMATIC_SIZER_X_GAP);
+
+ vector<string> columns;
+ columns.push_back (wx_to_std (_("CPL")));
+ _dkdm = new EditableList<dcp::EncryptedKDM, KDMFileDialogWrapper> (
+ overall_panel, columns, bind (&DOMFrame::dkdms, this), bind (&DOMFrame::set_dkdms, this, _1), bind (&always_valid), bind (&column, _1), false
+ );
+ vertical->Add (_dkdm, 0, wxEXPAND | wxALL, DCPOMATIC_SIZER_Y_GAP);