Make the 'why not' messages for VF a bit clearer.
authorCarl Hetherington <cth@carlh.net>
Thu, 9 Jan 2020 22:24:32 +0000 (23:24 +0100)
committerCarl Hetherington <cth@carlh.net>
Thu, 9 Jan 2020 22:24:35 +0000 (23:24 +0100)
Before it sounded like just because we couldn't refer to (e.g.) the audio
we couldn't refer to any part of the DCP.

src/wx/audio_panel.cc
src/wx/content_sub_panel.cc
src/wx/content_sub_panel.h
src/wx/text_panel.cc
src/wx/video_panel.cc

index 183a3d4..d066c11 100644 (file)
@@ -316,7 +316,13 @@ AudioPanel::setup_sensitivity ()
 
        string why_not;
        bool const can_reference = dcp && dcp->can_reference_audio (_parent->film(), why_not);
-       setup_refer_button (_reference, _reference_note, dcp, can_reference, why_not);
+       wxString cannot;
+       if (why_not.empty()) {
+               cannot = _("Cannot reference this DCP's audio.");
+       } else {
+               cannot = _("Cannot reference this DCP's audio: ") + std_to_wx(why_not);
+       }
+       setup_refer_button (_reference, _reference_note, dcp, can_reference, cannot);
 
        if (_reference->GetValue ()) {
                _gain->wrapped()->Enable (false);
index bdb3651..e4adc68 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -58,23 +58,19 @@ ContentSubPanel::config_changed (Config::Property p)
 }
 
 void
-ContentSubPanel::setup_refer_button (wxCheckBox* button, wxStaticText* note, shared_ptr<DCPContent> dcp, bool can_reference, string why_not) const
+ContentSubPanel::setup_refer_button (wxCheckBox* button, wxStaticText* note, shared_ptr<DCPContent> dcp, bool can_reference, wxString cannot) const
 {
        button->Enable (can_reference);
 
-       wxString s;
        if (dcp && !can_reference) {
-               if (why_not.empty()) {
-                       s = _("Cannot reference this DCP.");
-               } else {
-                       s = _("Cannot reference this DCP: ") + std_to_wx(why_not);
-               }
+               note->SetLabel (cannot);
+       } else {
+               note->SetLabel (wxT(""));
        }
 
-       note->SetLabel (s);
        note->Wrap (400);
 
-       if (s.IsEmpty() || Config::instance()->interface_complexity() == Config::INTERFACE_SIMPLE) {
+       if (cannot.IsEmpty() || Config::instance()->interface_complexity() == Config::INTERFACE_SIMPLE) {
                note->Hide ();
        } else {
                note->Show ();
index 7f201ff..d5f502e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -48,7 +48,7 @@ public:
 
 protected:
 
-       void setup_refer_button (wxCheckBox* button, wxStaticText* note, boost::shared_ptr<DCPContent> dcp, bool can_reference, std::string why_not) const;
+       void setup_refer_button (wxCheckBox* button, wxStaticText* note, boost::shared_ptr<DCPContent> dcp, bool can_reference, wxString cannot) const;
        virtual void add_to_grid () = 0;
 
        ContentPanel* _parent;
index 27465ad..88857b0 100644 (file)
@@ -523,7 +523,13 @@ TextPanel::setup_sensitivity ()
 
        string why_not;
        bool const can_reference = dcp && dcp->can_reference_text (_parent->film(), _original_type, why_not);
-       setup_refer_button (_reference, _reference_note, dcp, can_reference, why_not);
+       wxString cannot;
+       if (why_not.empty()) {
+               cannot = _("Cannot reference this DCP's subtitles or captions.");
+       } else {
+               cannot = _("Cannot reference this DCP's subtitles or captions: ") + std_to_wx(why_not);
+       }
+       setup_refer_button (_reference, _reference_note, dcp, can_reference, cannot);
 
        bool const reference = _reference->GetValue ();
 
index e1d9fcb..6e237e0 100644 (file)
@@ -567,7 +567,13 @@ VideoPanel::setup_sensitivity ()
 
        string why_not;
        bool const can_reference = dcp && dcp->can_reference_video (_parent->film(), why_not);
-       setup_refer_button (_reference, _reference_note, dcp, can_reference, why_not);
+       wxString cannot;
+       if (why_not.empty()) {
+               cannot = _("Cannot reference this DCP's video.");
+       } else {
+               cannot = _("Cannot reference this DCP's video: ") + std_to_wx(why_not);
+       }
+       setup_refer_button (_reference, _reference_note, dcp, can_reference, cannot);
 
        bool const enable = !_reference->GetValue() && _use->GetValue();