Rest of DCP panel.
authorCarl Hetherington <cth@carlh.net>
Fri, 7 Sep 2018 01:25:18 +0000 (02:25 +0100)
committerCarl Hetherington <cth@carlh.net>
Fri, 7 Sep 2018 01:25:18 +0000 (02:25 +0100)
src/wx/dcp_panel.cc
src/wx/dcp_panel.h
src/wx/video_panel.cc

index 353080928a043039ac167301260f013eeb413a40..3e42d8b23ccf323b8a5ace3adbd1f2063e507fb8 100644 (file)
@@ -678,6 +678,14 @@ DCPPanel::config_changed (Config::Property p)
                add_to_grid ();
                _sizer->Layout ();
                _grid->Layout ();
+
+               _video_grid->Clear ();
+               add_video_panel_to_grid ();
+               _video_grid->Layout ();
+
+               _audio_grid->Clear ();
+               add_audio_panel_to_grid ();
+               _audio_grid->Layout ();
        }
 }
 
@@ -700,55 +708,35 @@ DCPPanel::make_video_panel ()
 {
        wxPanel* panel = new wxPanel (_notebook);
        wxSizer* sizer = new wxBoxSizer (wxVERTICAL);
-       wxGridBagSizer* grid = new wxGridBagSizer (DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
-       sizer->Add (grid, 0, wxALL, 8);
+       _video_grid = new wxGridBagSizer (DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
+       sizer->Add (_video_grid, 0, wxALL, 8);
        panel->SetSizer (sizer);
 
        int r = 0;
 
-       add_label_to_sizer (grid, panel, _("Container"), true, wxGBPosition (r, 0));
-       {
-               wxBoxSizer* s = new wxBoxSizer (wxHORIZONTAL);
-               _container = new wxChoice (panel, wxID_ANY);
-               s->Add (_container, 1, wxEXPAND | wxRIGHT, DCPOMATIC_SIZER_X_GAP);
-               _container_size = new wxStaticText (panel, wxID_ANY, wxT (""));
-               s->Add (_container_size, 1, wxLEFT | wxALIGN_CENTER_VERTICAL);
-               grid->Add (s, wxGBPosition (r,1 ), wxDefaultSpan, wxEXPAND);
-               ++r;
-       }
+       _container_label = create_label (panel, _("Container"), true);
+       _container = new wxChoice (panel, wxID_ANY);
+       _container_size = new wxStaticText (panel, wxID_ANY, wxT (""));
 
-       add_label_to_sizer (grid, panel, _("Resolution"), true, wxGBPosition (r, 0));
+       _resolution_label = create_label (panel, _("Resolution"), true);
        _resolution = new wxChoice (panel, wxID_ANY);
-       grid->Add (_resolution, wxGBPosition (r, 1));
-       ++r;
 
-       add_label_to_sizer (grid, panel, _("Frame Rate"), true, wxGBPosition (r, 0));
-       {
-               _frame_rate_sizer = new wxBoxSizer (wxHORIZONTAL);
-               _frame_rate_choice = new wxChoice (panel, wxID_ANY);
-               _frame_rate_sizer->Add (_frame_rate_choice, 1, wxALIGN_CENTER_VERTICAL);
-               _frame_rate_spin = new wxSpinCtrl (panel, wxID_ANY);
-               _frame_rate_sizer->Add (_frame_rate_spin, 1, wxALIGN_CENTER_VERTICAL);
-               setup_frame_rate_widget ();
-               _best_frame_rate = new wxButton (panel, wxID_ANY, _("Use best"));
-               _frame_rate_sizer->Add (_best_frame_rate, 1, wxALIGN_CENTER_VERTICAL);
-               grid->Add (_frame_rate_sizer, wxGBPosition (r, 1));
-               ++r;
-       }
+       _frame_rate_label = create_label (panel, _("Frame Rate"), true);
+       _frame_rate_choice = new wxChoice (panel, wxID_ANY);
+       _frame_rate_sizer = new wxBoxSizer (wxHORIZONTAL);
+       _frame_rate_sizer->Add (_frame_rate_choice, 1, wxALIGN_CENTER_VERTICAL);
+       _frame_rate_spin = new wxSpinCtrl (panel, wxID_ANY);
+       _frame_rate_sizer->Add (_frame_rate_spin, 1, wxALIGN_CENTER_VERTICAL);
+       setup_frame_rate_widget ();
+       _best_frame_rate = new wxButton (panel, wxID_ANY, _("Use best"));
+       _frame_rate_sizer->Add (_best_frame_rate, 1, wxALIGN_CENTER_VERTICAL);
 
        _three_d = new wxCheckBox (panel, wxID_ANY, _("3D"));
-       grid->Add (_three_d, wxGBPosition (r, 0), wxGBSpan (1, 2));
        ++r;
 
-       {
-               add_label_to_sizer (grid, panel, _("JPEG2000 bandwidth\nfor newly-encoded data"), true, wxGBPosition (r, 0));
-               wxSizer* s = new wxBoxSizer (wxHORIZONTAL);
-               _j2k_bandwidth = new wxSpinCtrl (panel, wxID_ANY);
-               s->Add (_j2k_bandwidth, 1);
-               add_label_to_sizer (s, panel, _("Mbit/s"), false);
-               grid->Add (s, wxGBPosition (r, 1));
-       }
-       ++r;
+       _j2k_bandwidth_label = create_label (panel, _("JPEG2000 bandwidth\nfor newly-encoded data"), true);
+       _j2k_bandwidth = new wxSpinCtrl (panel, wxID_ANY);
+       _mbits_label = create_label (panel, _("Mbit/s"), false);
 
        _container->Bind        (wxEVT_CHOICE,        boost::bind (&DCPPanel::container_changed, this));
        _frame_rate_choice->Bind(wxEVT_CHOICE,        boost::bind (&DCPPanel::frame_rate_choice_changed, this));
@@ -774,9 +762,58 @@ DCPPanel::make_video_panel ()
        _resolution->Append (_("2K"));
        _resolution->Append (_("4K"));
 
+       add_video_panel_to_grid ();
+
        return panel;
 }
 
+void
+DCPPanel::add_video_panel_to_grid ()
+{
+       bool const full = Config::instance()->interface_complexity() == Config::INTERFACE_FULL;
+
+       int r = 0;
+
+       add_label_to_sizer (_video_grid, _container_label, true, wxGBPosition (r, 0));
+       {
+               wxBoxSizer* s = new wxBoxSizer (wxHORIZONTAL);
+               s->Add (_container, 1, wxEXPAND | wxRIGHT, DCPOMATIC_SIZER_X_GAP);
+               s->Add (_container_size, 1, wxLEFT | wxALIGN_CENTER_VERTICAL);
+               _video_grid->Add (s, wxGBPosition(r, 1));
+               ++r;
+       }
+
+       add_label_to_sizer (_video_grid, _resolution_label, true, wxGBPosition (r, 0));
+       _video_grid->Add (_resolution, wxGBPosition (r, 1));
+       ++r;
+
+       add_label_to_sizer (_video_grid, _frame_rate_label, true, wxGBPosition (r, 0));
+       {
+               _frame_rate_sizer = new wxBoxSizer (wxHORIZONTAL);
+               _frame_rate_sizer->Add (_frame_rate_choice, 1, wxALIGN_CENTER_VERTICAL);
+               _frame_rate_sizer->Add (_frame_rate_spin, 1, wxALIGN_CENTER_VERTICAL);
+               _frame_rate_sizer->Add (_best_frame_rate, 1, wxALIGN_CENTER_VERTICAL);
+               _video_grid->Add (_frame_rate_sizer, wxGBPosition (r, 1));
+               ++r;
+       }
+
+       _video_grid->Add (_three_d, wxGBPosition (r, 0), wxGBSpan (1, 2));
+       ++r;
+
+       _j2k_bandwidth_label->Show (full);
+       _j2k_bandwidth->Show (full);
+       _mbits_label->Show (full);
+
+       if (full) {
+               add_label_to_sizer (_video_grid, _j2k_bandwidth_label, true, wxGBPosition (r, 0));
+               wxSizer* s = new wxBoxSizer (wxHORIZONTAL);
+               s->Add (_j2k_bandwidth, 1);
+               add_label_to_sizer (s, _mbits_label, false);
+               _video_grid->Add (s, wxGBPosition (r, 1));
+               ++r;
+       }
+}
+
 int
 DCPPanel::minimum_allowed_audio_channels () const
 {
@@ -797,38 +834,56 @@ DCPPanel::make_audio_panel ()
 {
        wxPanel* panel = new wxPanel (_notebook);
        wxSizer* sizer = new wxBoxSizer (wxVERTICAL);
-       wxGridBagSizer* grid = new wxGridBagSizer (DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
-       sizer->Add (grid, 0, wxALL, 8);
+       _audio_grid = new wxGridBagSizer (DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
+       sizer->Add (_audio_grid, 0, wxALL, 8);
        panel->SetSizer (sizer);
 
-       int r = 0;
-
-       add_label_to_sizer (grid, panel, _("Channels"), true, wxGBPosition (r, 0));
+       _channels_label = create_label (panel, _("Channels"), true);
        _audio_channels = new wxChoice (panel, wxID_ANY);
        setup_audio_channels_choice (_audio_channels, minimum_allowed_audio_channels ());
-       grid->Add (_audio_channels, wxGBPosition (r, 1));
-       ++r;
 
-       add_label_to_sizer (grid, panel, _("Processor"), true, wxGBPosition (r, 0));
+       _processor_label = create_label (panel, _("Processor"), true);
        _audio_processor = new wxChoice (panel, wxID_ANY);
        _audio_processor->Append (_("None"), new wxStringClientData (N_("none")));
        BOOST_FOREACH (AudioProcessor const * ap, AudioProcessor::all ()) {
                _audio_processor->Append (std_to_wx (ap->name ()), new wxStringClientData (std_to_wx (ap->id ())));
        }
-       grid->Add (_audio_processor, wxGBPosition (r, 1));
-       ++r;
 
        _show_audio = new wxButton (panel, wxID_ANY, _("Show audio..."));
-       grid->Add (_show_audio, wxGBPosition (r, 0), wxGBSpan (1, 2));
-       ++r;
 
        _audio_channels->Bind (wxEVT_CHOICE, boost::bind (&DCPPanel::audio_channels_changed, this));
        _audio_processor->Bind (wxEVT_CHOICE, boost::bind (&DCPPanel::audio_processor_changed, this));
        _show_audio->Bind (wxEVT_BUTTON, boost::bind (&DCPPanel::show_audio_clicked, this));
 
+       add_audio_panel_to_grid ();
+
        return panel;
 }
 
+void
+DCPPanel::add_audio_panel_to_grid ()
+{
+       bool const full = Config::instance()->interface_complexity() == Config::INTERFACE_FULL;
+
+       int r = 0;
+
+       add_label_to_sizer (_audio_grid, _channels_label, true, wxGBPosition (r, 0));
+       _audio_grid->Add (_audio_channels, wxGBPosition (r, 1));
+       ++r;
+
+       _processor_label->Show (full);
+       _audio_processor->Show (full);
+
+       if (full) {
+               add_label_to_sizer (_audio_grid, _processor_label, true, wxGBPosition (r, 0));
+               _audio_grid->Add (_audio_processor, wxGBPosition (r, 1));
+               ++r;
+       }
+
+       _audio_grid->Add (_show_audio, wxGBPosition (r, 0), wxGBSpan (1, 2));
+       ++r;
+}
+
 void
 DCPPanel::copy_isdcf_name_button_clicked ()
 {
index 0311b063e318e2c9fcbc529dad7c5d1a250a942b..8c20dc174044ba81124c8c1d169bdb61bd2ece2a 100644 (file)
@@ -82,6 +82,8 @@ private:
        void setup_container ();
        void setup_dcp_name ();
        void add_to_grid ();
+       void add_video_panel_to_grid ();
+       void add_audio_panel_to_grid ();
 
        int minimum_allowed_audio_channels () const;
 
@@ -97,26 +99,35 @@ private:
        wxNotebook* _notebook;
        wxBoxSizer* _sizer;
        wxGridBagSizer* _grid;
+       wxGridBagSizer* _video_grid;
+       wxGridBagSizer* _audio_grid;
 
        wxStaticText* _name_label;
        wxTextCtrl* _name;
        wxStaticText* _dcp_name;
        wxCheckBox* _use_isdcf_name;
+       wxStaticText* _container_label;
        wxChoice* _container;
        wxStaticText* _container_size;
        wxButton* _edit_isdcf_button;
        wxButton* _copy_isdcf_name_button;
+       wxStaticText* _j2k_bandwidth_label;
+       wxStaticText* _mbits_label;
        wxSpinCtrl* _j2k_bandwidth;
        wxStaticText* _dcp_content_type_label;
        wxChoice* _dcp_content_type;
+       wxStaticText* _frame_rate_label;
        wxChoice* _frame_rate_choice;
        wxSpinCtrl* _frame_rate_spin;
        wxSizer* _frame_rate_sizer;
+       wxStaticText* _channels_label;
        wxChoice* _audio_channels;
+       wxStaticText* _processor_label;
        wxChoice* _audio_processor;
        wxButton* _show_audio;
        wxButton* _best_frame_rate;
        wxCheckBox* _three_d;
+       wxStaticText* _resolution_label;
        wxChoice* _resolution;
        wxStaticText* _standard_label;
        wxChoice* _standard;
index dbba9e3b01b08a781bef5c288429ea8318b48bef..cc43d082bd0358c12e58dd6cb03075abd0168f36 100644 (file)
@@ -208,14 +208,14 @@ VideoPanel::VideoPanel (ContentPanel* p)
 void
 VideoPanel::add_to_grid ()
 {
-       Config::Interface const interface = Config::instance()->interface_complexity();
+       bool const full = Config::instance()->interface_complexity() == Config::INTERFACE_FULL;
 
        int r = 0;
 
-       _reference->Show (interface == Config::INTERFACE_FULL);
-       _reference_note->Show (interface == Config::INTERFACE_FULL);
+       _reference->Show (full);
+       _reference_note->Show (full);
 
-       if (interface == Config::INTERFACE_FULL) {
+       if (full) {
                wxBoxSizer* reference_sizer = new wxBoxSizer (wxVERTICAL);
                reference_sizer->Add (_reference, 0);
                reference_sizer->Add (_reference_note, 0);
@@ -245,20 +245,20 @@ VideoPanel::add_to_grid ()
        _grid->Add (crop, wxGBPosition (r, 0), wxGBSpan (2, 4));
        r += 2;
 
-       _fade_in_label->Show (interface == Config::INTERFACE_FULL);
-       _fade_in->Show (interface == Config::INTERFACE_FULL);
-       _fade_out_label->Show (interface == Config::INTERFACE_FULL);
-       _fade_out->Show (interface == Config::INTERFACE_FULL);
-       _scale_to_label->Show (interface == Config::INTERFACE_FULL);
-       _scale->show (interface == Config::INTERFACE_FULL);
-       _filters_label->Show (interface == Config::INTERFACE_FULL);
-       _filters->Show (interface == Config::INTERFACE_FULL);
-       _filters_button->Show (interface == Config::INTERFACE_FULL);
-       _colour_conversion_label->Show (interface == Config::INTERFACE_FULL);
-       _colour_conversion->Show (interface == Config::INTERFACE_FULL);
-       _edit_colour_conversion_button->Show (interface == Config::INTERFACE_FULL);
-
-       if (interface == Config::INTERFACE_FULL) {
+       _fade_in_label->Show (full);
+       _fade_in->Show (full);
+       _fade_out_label->Show (full);
+       _fade_out->Show (full);
+       _scale_to_label->Show (full);
+       _scale->show (full);
+       _filters_label->Show (full);
+       _filters->Show (full);
+       _filters_button->Show (full);
+       _colour_conversion_label->Show (full);
+       _colour_conversion->Show (full);
+       _edit_colour_conversion_button->Show (full);
+
+       if (full) {
                add_label_to_sizer (_grid, _fade_in_label, true, wxGBPosition (r, 0));
                _grid->Add (_fade_in, wxGBPosition (r, 1), wxGBSpan (1, 3));
                ++r;