No need to rebuild pieces when only crop or ratio changes.
[dcpomatic.git] / src / wx / dci_metadata_dialog.cc
index ced4d5c8fa6f9296eaecf9f32475ef4c9514d9c6..e28ddd855dced41ee0e1cd6364fbbb568005f3e4 100644 (file)
 
 */
 
+#include <wx/wx.h>
 #include <wx/sizer.h>
+#include <wx/spinctrl.h>
+#include "lib/film.h"
 #include "dci_metadata_dialog.h"
 #include "wx_util.h"
-#include "film.h"
 
 using boost::shared_ptr;
 
 DCIMetadataDialog::DCIMetadataDialog (wxWindow* parent, DCIMetadata dm)
        : wxDialog (parent, wxID_ANY, _("DCI name"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
 {
-       wxFlexGridSizer* table = new wxFlexGridSizer (2, DVDOMATIC_SIZER_X_GAP, DVDOMATIC_SIZER_Y_GAP);
+       wxFlexGridSizer* table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
        table->AddGrowableCol (1, 1);
 
-       add_label_to_sizer (table, this, _("Audio Language (e.g. EN)"));
+       add_label_to_sizer (table, this, _("Content version"), true);
+       _content_version = new wxSpinCtrl (this, wxID_ANY);
+       table->Add (_content_version, 1, wxEXPAND);
+
+       add_label_to_sizer (table, this, _("Audio Language (e.g. EN)"), true);
        _audio_language = new wxTextCtrl (this, wxID_ANY);
        table->Add (_audio_language, 1, wxEXPAND);
 
-       add_label_to_sizer (table, this, _("Subtitle Language (e.g. FR)"));
+       add_label_to_sizer (table, this, _("Subtitle Language (e.g. FR)"), true);
        _subtitle_language = new wxTextCtrl (this, wxID_ANY);
        table->Add (_subtitle_language, 1, wxEXPAND);
        
-       add_label_to_sizer (table, this, _("Territory (e.g. UK)"));
+       add_label_to_sizer (table, this, _("Territory (e.g. UK)"), true);
        _territory = new wxTextCtrl (this, wxID_ANY);
        table->Add (_territory, 1, wxEXPAND);
 
-       add_label_to_sizer (table, this, _("Rating (e.g. 15)"));
+       add_label_to_sizer (table, this, _("Rating (e.g. 15)"), true);
        _rating = new wxTextCtrl (this, wxID_ANY);
        table->Add (_rating, 1, wxEXPAND);
 
-       add_label_to_sizer (table, this, _("Studio (e.g. TCF)"));
+       add_label_to_sizer (table, this, _("Studio (e.g. TCF)"), true);
        _studio = new wxTextCtrl (this, wxID_ANY);
        table->Add (_studio, 1, wxEXPAND);
 
-       add_label_to_sizer (table, this, _("Facility (e.g. DLA)"));
+       add_label_to_sizer (table, this, _("Facility (e.g. DLA)"), true);
        _facility = new wxTextCtrl (this, wxID_ANY);
        table->Add (_facility, 1, wxEXPAND);
 
-       add_label_to_sizer (table, this, _("Package Type (e.g. OV)"));
+       add_label_to_sizer (table, this, _("Package Type (e.g. OV)"), true);
        _package_type = new wxTextCtrl (this, wxID_ANY);
        table->Add (_package_type, 1, wxEXPAND);
 
+       _content_version->SetRange (1, 1024);
+
+       _content_version->SetValue (dm.content_version);
        _audio_language->SetValue (std_to_wx (dm.audio_language));
        _subtitle_language->SetValue (std_to_wx (dm.subtitle_language));
        _territory->SetValue (std_to_wx (dm.territory));
@@ -67,7 +76,7 @@ DCIMetadataDialog::DCIMetadataDialog (wxWindow* parent, DCIMetadata dm)
        _package_type->SetValue (std_to_wx (dm.package_type));
 
        wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL);
-       overall_sizer->Add (table, 1, wxEXPAND | wxALL, 6);
+       overall_sizer->Add (table, 1, wxEXPAND | wxALL, DCPOMATIC_DIALOG_BORDER);
        
        wxSizer* buttons = CreateSeparatedButtonSizer (wxOK);
        if (buttons) {
@@ -84,6 +93,7 @@ DCIMetadataDialog::dci_metadata () const
 {
        DCIMetadata dm;
 
+       dm.content_version = _content_version->GetValue ();
        dm.audio_language = wx_to_std (_audio_language->GetValue ());
        dm.subtitle_language = wx_to_std (_subtitle_language->GetValue ());
        dm.territory = wx_to_std (_territory->GetValue ());