- if (vcs && vcs->video->colour_conversion ()) {
- optional<size_t> preset = vcs->video->colour_conversion().get().preset ();
- vector<PresetColourConversion> cc = PresetColourConversion::all ();
- if (preset) {
- checked_set (_colour_conversion, preset.get() + 1);
+ boost::unordered_set<optional<ColourConversion> > check;
+ BOOST_FOREACH (shared_ptr<const Content> i, vc) {
+ check.insert (i->video->colour_conversion());
+ }
+
+ /* Remove any "Many" entry that we might have added previously. There should
+ * be entries for each preset plus one for "None" and one for "Custom".
+ */
+ vector<PresetColourConversion> cc = PresetColourConversion::all ();
+ if (_colour_conversion->GetCount() > cc.size() + 2) {
+ _colour_conversion->Delete (_colour_conversion->GetCount() - 1);
+ }
+
+ if (check.size() == 1) {
+ if (vcs && vcs->video->colour_conversion ()) {
+ optional<size_t> preset = vcs->video->colour_conversion().get().preset ();
+ if (preset) {
+ checked_set (_colour_conversion, preset.get() + 1);
+ } else {
+ checked_set (_colour_conversion, cc.size() + 1);
+ }