Merge master.
[dcpomatic.git] / src / wx / timing_panel.cc
index f33e052a1ad41dad2f2adea9b0b7aa39f7823ceb..df77a2ef1a5b38006fae2c31e60c0a5341e7dbd9 100644 (file)
@@ -17,9 +17,9 @@
 
 */
 
+#include <dcp/raw_convert.h>
 #include "lib/content.h"
 #include "lib/image_content.h"
-#include "lib/sndfile_content.h"
 #include "timing_panel.h"
 #include "wx_util.h"
 #include "timecode.h"
@@ -29,10 +29,11 @@ using std::cout;
 using std::string;
 using boost::shared_ptr;
 using boost::dynamic_pointer_cast;
-using boost::lexical_cast;
+using dcp::raw_convert;
 
 TimingPanel::TimingPanel (FilmEditor* e)
-       : FilmEditorPanel (e, _("Timing"))
+       /* horrid hack for apparent lack of context support with wxWidgets i18n code */
+       : FilmEditorPanel (e, S_("Timing|Timing"))
 {
        wxFlexGridSizer* grid = new wxFlexGridSizer (2, 4, 4);
        _sizer->Add (grid, 0, wxALL, 8);
@@ -124,7 +125,7 @@ TimingPanel::film_content_changed (int property)
                if (content) {
                        shared_ptr<VideoContent> vc = dynamic_pointer_cast<VideoContent> (content);
                        if (vc) {
-                               _video_frame_rate->SetValue (std_to_wx (lexical_cast<string> (vc->video_frame_rate ())));
+                               _video_frame_rate->SetValue (std_to_wx (raw_convert<string> (vc->video_frame_rate (), 5)));
                        } else {
                                _video_frame_rate->SetValue ("24");
                        }
@@ -133,11 +134,11 @@ TimingPanel::film_content_changed (int property)
                }
        }
 
+       shared_ptr<VideoContent> vc = dynamic_pointer_cast<VideoContent> (content);
        shared_ptr<ImageContent> ic = dynamic_pointer_cast<ImageContent> (content);
-       shared_ptr<SndfileContent> sc = dynamic_pointer_cast<SndfileContent> (content);
        _full_length->set_editable (ic && ic->still ());
        _play_length->set_editable (!ic || !ic->still ());
-       _video_frame_rate->Enable ((ic && !ic->still ()) || sc);
+       _video_frame_rate->Enable (vc);
        _set_video_frame_rate->Enable (false);
 }
 
@@ -202,9 +203,9 @@ TimingPanel::set_video_frame_rate ()
 {
        ContentList c = _editor->selected_content ();
        if (c.size() == 1) {
-               shared_ptr<ImageContent> ic = dynamic_pointer_cast<ImageContent> (c.front ());
-               if (ic) {
-                       ic->set_video_frame_rate (lexical_cast<float> (wx_to_std (_video_frame_rate->GetValue ())));
+               shared_ptr<VideoContent> vc = dynamic_pointer_cast<VideoContent> (c.front ());
+               if (vc) {
+                       vc->set_video_frame_rate (raw_convert<float> (wx_to_std (_video_frame_rate->GetValue ())));
                }
                _set_video_frame_rate->Enable (false);
        }