Update new panels when they are created.
[dcpomatic.git] / src / wx / text_panel.cc
index 980dd36cb1c3d4312f5b9a7e0759edd8f75972fe..68f246913f543ba53730afb1b061e260995d625b 100644 (file)
@@ -170,6 +170,8 @@ TextPanel::TextPanel (ContentPanel* p, TextType t)
        _y_scale->SetRange (10, 1000);
        _line_spacing->SetRange (10, 1000);
 
+       content_selection_changed ();
+
        _reference->Bind                (wxEVT_CHECKBOX, boost::bind (&TextPanel::reference_clicked, this));
        _use->Bind                      (wxEVT_CHECKBOX, boost::bind (&TextPanel::use_toggled, this));
        _type->Bind                     (wxEVT_CHOICE,   boost::bind (&TextPanel::type_changed, this));
@@ -285,18 +287,25 @@ TextPanel::use_toggled ()
        }
 }
 
+/** @return the text type that is currently selected in the drop-down */
+TextType
+TextPanel::current_type () const
+{
+       switch (_type->GetSelection()) {
+       case 0:
+               return TEXT_OPEN_SUBTITLE;
+       case 1:
+               return TEXT_CLOSED_CAPTION;
+       }
+
+       return TEXT_UNKNOWN;
+}
+
 void
 TextPanel::type_changed ()
 {
        BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_text()) {
-               switch (_type->GetSelection()) {
-               case 0:
-                       i->text_of_original_type(_original_type)->set_type (TEXT_OPEN_SUBTITLE);
-                       break;
-               case 1:
-                       i->text_of_original_type(_original_type)->set_type (TEXT_CLOSED_CAPTION);
-                       break;
-               }
+               i->text_of_original_type(_original_type)->set_type (current_type ());
        }
 }
 
@@ -344,21 +353,23 @@ TextPanel::setup_sensitivity ()
 
        bool const reference = _reference->GetValue ();
 
+       TextType const type = current_type ();
+
        /* Set up sensitivity */
        _use->Enable (!reference && any_subs > 0);
        bool const use = _use->GetValue ();
        _type->Enable (!reference && any_subs > 0 && use);
-       _burn->Enable (!reference && any_subs > 0 && use && _type->GetSelection() == 0);
-       _x_offset->Enable (!reference && any_subs > 0 && use);
-       _y_offset->Enable (!reference && any_subs > 0 && use);
-       _x_scale->Enable (!reference && any_subs > 0 && use);
-       _y_scale->Enable (!reference && any_subs > 0 && use);
-       _line_spacing->Enable (!reference && use);
+       _burn->Enable (!reference && any_subs > 0 && use && type == TEXT_OPEN_SUBTITLE);
+       _x_offset->Enable (!reference && any_subs > 0 && use && type == TEXT_OPEN_SUBTITLE);
+       _y_offset->Enable (!reference && any_subs > 0 && use && type == TEXT_OPEN_SUBTITLE);
+       _x_scale->Enable (!reference && any_subs > 0 && use && type == TEXT_OPEN_SUBTITLE);
+       _y_scale->Enable (!reference && any_subs > 0 && use && type == TEXT_OPEN_SUBTITLE);
+       _line_spacing->Enable (!reference && use && type == TEXT_OPEN_SUBTITLE);
        _language->Enable (!reference && any_subs > 0 && use);
        _stream->Enable (!reference && ffmpeg_subs == 1);
        _text_view_button->Enable (!reference);
-       _fonts_dialog_button->Enable (!reference);
-       _appearance_dialog_button->Enable (!reference && any_subs > 0 && use);
+       _fonts_dialog_button->Enable (!reference && type == TEXT_OPEN_SUBTITLE);
+       _appearance_dialog_button->Enable (!reference && any_subs > 0 && use && type == TEXT_OPEN_SUBTITLE);
 }
 
 void