Fix sensitivity of colour conversion edit button.
authorCarl Hetherington <cth@carlh.net>
Fri, 13 Nov 2015 14:24:58 +0000 (14:24 +0000)
committerCarl Hetherington <cth@carlh.net>
Fri, 13 Nov 2015 14:24:58 +0000 (14:24 +0000)
src/wx/video_panel.cc

index a2c35ec764e0094559da4241ecca952d352416ee..72a63956ed0caf77978382816669649bd14c025f 100644 (file)
@@ -273,23 +273,20 @@ VideoPanel::film_content_changed (int property)
        } else if (property == VideoContentProperty::VIDEO_FRAME_RATE) {
                setup_description ();
        } else if (property == VideoContentProperty::COLOUR_CONVERSION) {
-               if (!vcs) {
-                       checked_set (_colour_conversion, 0);
-                       _edit_colour_conversion_button->Enable (false);
-               } else if (vcs->colour_conversion ()) {
+               if (vcs && vcs->colour_conversion ()) {
                        optional<size_t> preset = vcs->colour_conversion().get().preset ();
                        vector<PresetColourConversion> cc = PresetColourConversion::all ();
                        if (preset) {
                                checked_set (_colour_conversion, preset.get() + 1);
-                               _edit_colour_conversion_button->Enable (false);
                        } else {
                                checked_set (_colour_conversion, cc.size() + 1);
-                               _edit_colour_conversion_button->Enable (true);
                        }
                } else {
                        checked_set (_colour_conversion, 0);
-                       _edit_colour_conversion_button->Enable (false);
                }
+
+               setup_sensitivity ();
+
        } else if (property == FFmpegContentProperty::FILTERS) {
                if (fcs) {
                        string p = Filter::ffmpeg_string (fcs->filters ());
@@ -468,7 +465,6 @@ VideoPanel::setup_sensitivity ()
                _filters->Enable (false);
                _filters_button->Enable (false);
                _colour_conversion->Enable (false);
-               _edit_colour_conversion_button->Enable (false);
        } else {
                VideoContentList video_sel = _parent->selected_video ();
                FFmpegContentList ffmpeg_sel = _parent->selected_ffmpeg ();
@@ -486,7 +482,18 @@ VideoPanel::setup_sensitivity ()
                _filters->Enable (true);
                _filters_button->Enable (single && !ffmpeg_sel.empty ());
                _colour_conversion->Enable (single && !video_sel.empty ());
-               _edit_colour_conversion_button->Enable (true);
+       }
+
+       VideoContentList vc = _parent->selected_video ();
+       shared_ptr<VideoContent> vcs;
+       if (!vc.empty ()) {
+               vcs = vc.front ();
+       }
+
+       if (vcs && vcs->colour_conversion ()) {
+               _edit_colour_conversion_button->Enable (!vcs->colour_conversion().get().preset());
+       } else {
+               _edit_colour_conversion_button->Enable (false);
        }
 }