From 4725a493ed1fc6886b36553bd4600261aa644800 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 7 Apr 2013 14:25:18 +0100 Subject: Make the audio plot expand in height when its window is enlarged. --- ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index f8ddd967d..de24ad89b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-04-07 Carl Hetherington + + * Make the audio plot expand in height when its + window is enlarged. + 2013-04-01 Carl Hetherington * Version 0.79 released. -- cgit v1.2.3 From 0b245da3bcc5465f29cb709b459ae8b170c6d205 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 7 Apr 2013 14:28:49 +0100 Subject: Speculative fix for error on forcing language to English (#103). --- ChangeLog | 5 +++++ src/tools/dvdomatic.cc | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index de24ad89b..edce0136f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,11 @@ * Make the audio plot expand in height when its window is enlarged. + * Label subtitle offset with "pixels" (#101). + + * Speculative fix for error on forcing language + to English (#103). + 2013-04-01 Carl Hetherington * Version 0.79 released. diff --git a/src/tools/dvdomatic.cc b/src/tools/dvdomatic.cc index 87c079bee..b408ef505 100644 --- a/src/tools/dvdomatic.cc +++ b/src/tools/dvdomatic.cc @@ -452,7 +452,9 @@ setup_i18n () if (Config::instance()->language()) { wxLanguageInfo const * li = wxLocale::FindLanguageInfo (std_to_wx (Config::instance()->language().get())); - language = li->Language; + if (li) { + language = li->Language; + } } if (wxLocale::IsAvailable (language)) { -- cgit v1.2.3 From ec5ff2e9bf1c81f9a11ff22ede039c83c2163885 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 7 Apr 2013 15:09:20 +0100 Subject: Add more explanatory text for what is going on with scaling etc. (#106). --- ChangeLog | 3 ++ src/lib/format.cc | 47 +++++++++++------------------- src/lib/format.h | 12 ++------ src/wx/film_editor.cc | 80 ++++++++++++++++++++++++++++++++++++++++++--------- src/wx/film_editor.h | 3 +- 5 files changed, 91 insertions(+), 54 deletions(-) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index edce0136f..ece1117b0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,9 @@ * Speculative fix for error on forcing language to English (#103). + * Add more explanatory text to describe what is + happening with scaling, cropping and padding (#106). + 2013-04-01 Carl Hetherington * Version 0.79 released. diff --git a/src/lib/format.cc b/src/lib/format.cc index b506c7000..21f8fb9a2 100644 --- a/src/lib/format.cc +++ b/src/lib/format.cc @@ -72,68 +72,55 @@ Format::setup_formats () { /// TRANSLATORS: these are film picture aspect ratios; "Academy" means 1.37, "Flat" 1.85 and "Scope" 2.39. _formats.push_back ( - new FixedFormat (119, libdcp::Size (1285, 1080), N_("119"), _("1.19"), N_("F"), - _("Source scaled to 1.19:1") + new FixedFormat (119, libdcp::Size (1285, 1080), N_("119"), _("1.19"), N_("F") )); _formats.push_back ( - new FixedFormat (133, libdcp::Size (1436, 1080), N_("133"), _("1.33"), N_("F"), - _("Source scaled to 1.33:1") + new FixedFormat (133, libdcp::Size (1436, 1080), N_("133"), _("1.33"), N_("F") )); _formats.push_back ( - new FixedFormat (138, libdcp::Size (1485, 1080), N_("138"), _("1.375"), N_("F"), - _("Source scaled to 1.375:1") + new FixedFormat (138, libdcp::Size (1485, 1080), N_("138"), _("1.375"), N_("F") )); _formats.push_back ( - new FixedFormat (133, libdcp::Size (1998, 1080), N_("133-in-flat"), _("4:3 within Flat"), N_("F"), - _("Source scaled to 1.33:1 then pillarboxed to Flat") + new FixedFormat (133, libdcp::Size (1998, 1080), N_("133-in-flat"), _("4:3 within Flat"), N_("F") )); _formats.push_back ( - new FixedFormat (137, libdcp::Size (1480, 1080), N_("137"), _("Academy"), N_("F"), - _("Source scaled to 1.37:1 (Academy ratio)") + new FixedFormat (137, libdcp::Size (1480, 1080), N_("137"), _("Academy"), N_("F") )); _formats.push_back ( - new FixedFormat (166, libdcp::Size (1793, 1080), N_("166"), _("1.66"), N_("F"), - _("Source scaled to 1.66:1") + new FixedFormat (166, libdcp::Size (1793, 1080), N_("166"), _("1.66"), N_("F") )); _formats.push_back ( - new FixedFormat (166, libdcp::Size (1998, 1080), N_("166-in-flat"), _("1.66 within Flat"), N_("F"), - _("Source scaled to 1.66:1 then pillarboxed to Flat") + new FixedFormat (166, libdcp::Size (1998, 1080), N_("166-in-flat"), _("1.66 within Flat"), N_("F") )); _formats.push_back ( - new FixedFormat (178, libdcp::Size (1998, 1080), N_("178-in-flat"), _("16:9 within Flat"), N_("F"), - _("Source scaled to 1.78:1 then pillarboxed to Flat") + new FixedFormat (178, libdcp::Size (1998, 1080), N_("178-in-flat"), _("16:9 within Flat"), N_("F") )); _formats.push_back ( - new FixedFormat (178, libdcp::Size (1920, 1080), N_("178"), _("16:9"), N_("F"), - _("Source scaled to 1.78:1") + new FixedFormat (178, libdcp::Size (1920, 1080), N_("178"), _("16:9"), N_("F") )); _formats.push_back ( - new FixedFormat (185, libdcp::Size (1998, 1080), N_("185"), _("Flat"), N_("F"), - _("Source scaled to Flat (1.85:1)") + new FixedFormat (185, libdcp::Size (1998, 1080), N_("185"), _("Flat"), N_("F") )); _formats.push_back ( - new FixedFormat (239, libdcp::Size (2048, 858), N_("239"), _("Scope"), N_("S"), - _("Source scaled to Scope (2.39:1)") + new FixedFormat (239, libdcp::Size (2048, 858), N_("239"), _("Scope"), N_("S") )); _formats.push_back ( - new VariableFormat (libdcp::Size (1998, 1080), N_("var-185"), _("Flat without stretch"), N_("F"), - _("Source scaled to fit Flat preserving its aspect ratio") + new VariableFormat (libdcp::Size (1998, 1080), N_("var-185"), _("Flat without stretch"), N_("F") )); _formats.push_back ( - new VariableFormat (libdcp::Size (2048, 858), N_("var-239"), _("Scope without stretch"), N_("S"), - _("Source scaled to fit Scope preserving its aspect ratio") + new VariableFormat (libdcp::Size (2048, 858), N_("var-239"), _("Scope without stretch"), N_("S") )); } @@ -195,8 +182,8 @@ Format::all () * @param id ID (e.g. 185) * @param n Nick name (e.g. Flat) */ -FixedFormat::FixedFormat (int r, libdcp::Size dcp, string id, string n, string d, string e) - : Format (dcp, id, n, d, e) +FixedFormat::FixedFormat (int r, libdcp::Size dcp, string id, string n, string d) + : Format (dcp, id, n, d) , _ratio (r) { @@ -224,8 +211,8 @@ Format::container_ratio_as_float () const return static_cast (_dcp_size.width) / _dcp_size.height; } -VariableFormat::VariableFormat (libdcp::Size dcp, string id, string n, string d, string e) - : Format (dcp, id, n, d, e) +VariableFormat::VariableFormat (libdcp::Size dcp, string id, string n, string d) + : Format (dcp, id, n, d) { } diff --git a/src/lib/format.h b/src/lib/format.h index 305524628..783ff25ce 100644 --- a/src/lib/format.h +++ b/src/lib/format.h @@ -31,12 +31,11 @@ class Film; class Format { public: - Format (libdcp::Size dcp, std::string id, std::string n, std::string d, std::string e) + Format (libdcp::Size dcp, std::string id, std::string n, std::string d) : _dcp_size (dcp) , _id (id) , _nickname (n) , _dci_name (d) - , _description (e) {} /** @return the aspect ratio multiplied by 100 @@ -76,10 +75,6 @@ public: return _dci_name; } - std::string description () const { - return _description; - } - std::string as_metadata () const; static Format const * from_nickname (std::string n); @@ -99,7 +94,6 @@ protected: /** nickname (e.g. Flat, Scope) */ std::string _nickname; std::string _dci_name; - std::string _description; private: /** all available formats */ @@ -113,7 +107,7 @@ private: class FixedFormat : public Format { public: - FixedFormat (int, libdcp::Size, std::string, std::string, std::string, std::string); + FixedFormat (int, libdcp::Size, std::string, std::string, std::string); int ratio_as_integer (boost::shared_ptr) const { return _ratio; @@ -134,7 +128,7 @@ private: class VariableFormat : public Format { public: - VariableFormat (libdcp::Size, std::string, std::string, std::string, std::string); + VariableFormat (libdcp::Size, std::string, std::string, std::string); int ratio_as_integer (boost::shared_ptr f) const; float ratio_as_float (boost::shared_ptr f) const; diff --git a/src/wx/film_editor.cc b/src/wx/film_editor.cc index 79a174901..916d86cc0 100644 --- a/src/wx/film_editor.cc +++ b/src/wx/film_editor.cc @@ -270,14 +270,6 @@ FilmEditor::make_video_panel () grid->Add (_format, wxGBPosition (r, 1)); ++r; - _format_description = new wxStaticText (_video_panel, wxID_ANY, wxT (""), wxDefaultPosition, wxDefaultSize); - grid->Add (_format_description, wxGBPosition (r, 0), wxGBSpan (1, 2), wxEXPAND | wxALIGN_CENTER_VERTICAL | wxALL, 6); - wxFont font = _format_description->GetFont(); - font.SetStyle(wxFONTSTYLE_ITALIC); - font.SetPointSize(font.GetPointSize() - 1); - _format_description->SetFont(font); - ++r; - add_label_to_grid_bag_sizer (grid, _video_panel, _("Left crop"), wxGBPosition (r, 0)); _left_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1)); grid->Add (_left_crop, wxGBPosition (r, 1)); @@ -298,6 +290,14 @@ FilmEditor::make_video_panel () grid->Add (_bottom_crop, wxGBPosition (r, 1)); ++r; + _scaling_description = new wxStaticText (_video_panel, wxID_ANY, wxT ("\n \n \n \n"), wxDefaultPosition, wxDefaultSize); + grid->Add (_scaling_description, wxGBPosition (r, 0), wxGBSpan (1, 2), wxEXPAND | wxALIGN_CENTER_VERTICAL | wxALL, 6); + wxFont font = _scaling_description->GetFont(); + font.SetStyle(wxFONTSTYLE_ITALIC); + font.SetPointSize(font.GetPointSize() - 1); + _scaling_description->SetFont(font); + ++r; + /* VIDEO-only stuff */ { video_control (add_label_to_grid_bag_sizer (grid, _video_panel, _("Filters"), wxGBPosition (r, 0))); @@ -648,12 +648,7 @@ FilmEditor::film_changed (Film::Property p) checked_set (_format, n); } setup_dcp_name (); - - if (_film->format ()) { - _format_description->SetLabel (std_to_wx (_film->format()->description ())); - } else { - _format_description->SetLabel (wxT ("")); - } + setup_scaling_description (); break; } case Film::CROP: @@ -661,6 +656,7 @@ FilmEditor::film_changed (Film::Property p) checked_set (_right_crop, _film->crop().right); checked_set (_top_crop, _film->crop().top); checked_set (_bottom_crop, _film->crop().bottom); + setup_scaling_description (); break; case Film::FILTERS: { @@ -689,6 +685,7 @@ FilmEditor::film_changed (Film::Property p) s << _film->size().width << " x " << _film->size().height; _original_size->SetLabel (std_to_wx (s.str ())); } + setup_scaling_description (); break; case Film::LENGTH: if (_film->source_frame_rate() > 0 && _film->length()) { @@ -1305,3 +1302,58 @@ FilmEditor::setup_show_audio_sensitivity () { _show_audio->Enable (_film && _film->has_audio ()); } + +void +FilmEditor::setup_scaling_description () +{ + wxString d; + + int lines = 0; + + d << wxString::Format ( + _("Original video is %dx%d (%.2f:1)\n"), + _film->size().width, _film->size().height, + float (_film->size().width) / _film->size().height + ); + + ++lines; + + Crop const crop = _film->crop (); + if (crop.left || crop.right || crop.top || crop.bottom) { + libdcp::Size const cropped = _film->cropped_size (_film->size ()); + d << wxString::Format ( + _("Cropped to %dx%d (%.2f:1)\n"), + cropped.width, cropped.height, + float (cropped.width) / cropped.height + ); + ++lines; + } + + Format const * format = _film->format (); + if (format) { + int const padding = format->dcp_padding (_film); + libdcp::Size scaled = format->dcp_size (); + scaled.width -= padding * 2; + d << wxString::Format ( + _("Scaled to %dx%d (%.2f:1)\n"), + scaled.width, scaled.height, + float (scaled.width) / scaled.height + ); + ++lines; + + if (padding) { + d << wxString::Format ( + _("Padded with black to %dx%d (%.2f:1)\n"), + format->dcp_size().width, format->dcp_size().height, + float (format->dcp_size().width) / format->dcp_size().height + ); + ++lines; + } + } + + for (int i = lines; i < 4; ++i) { + d << " \n"; + } + + _scaling_description->SetLabel (d); +} diff --git a/src/wx/film_editor.h b/src/wx/film_editor.h index e5b619886..7de63014e 100644 --- a/src/wx/film_editor.h +++ b/src/wx/film_editor.h @@ -99,6 +99,7 @@ private: void setup_audio_details (); void setup_dcp_name (); void setup_show_audio_sensitivity (); + void setup_scaling_description (); wxControl* video_control (wxControl *); wxControl* still_control (wxControl *); @@ -124,7 +125,7 @@ private: wxButton* _edit_dci_button; /** The Film's format */ wxChoice* _format; - wxStaticText* _format_description; + wxStaticText* _scaling_description; /** The Film's content file */ wxFilePickerCtrl* _content; wxCheckBox* _trust_content_header; -- cgit v1.2.3 From fea8c3743fd0710c2716fc6de5a283d378338800 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 7 Apr 2013 15:20:47 +0100 Subject: Give a hopefully helpful message when clicking Open without selecting a folder (#99). --- ChangeLog | 3 +++ src/tools/dvdomatic.cc | 12 ++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index ece1117b0..1235944df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,6 +11,9 @@ * Add more explanatory text to describe what is happening with scaling, cropping and padding (#106). + * Give a hopefully helpful message when clicking Open + without selecting a folder (#99). + 2013-04-01 Carl Hetherington * Version 0.79 released. diff --git a/src/tools/dvdomatic.cc b/src/tools/dvdomatic.cc index b408ef505..80a33efef 100644 --- a/src/tools/dvdomatic.cc +++ b/src/tools/dvdomatic.cc @@ -317,8 +317,16 @@ private: void file_open (wxCommandEvent &) { wxDirDialog* c = new wxDirDialog (this, _("Select film to open"), wxStandardPaths::Get().GetDocumentsDir(), wxDEFAULT_DIALOG_STYLE | wxDD_DIR_MUST_EXIST); - int const r = c->ShowModal (); - + int r; + while (1) { + r = c->ShowModal (); + if (r == wxID_OK && c->GetPath() == wxStandardPaths::Get().GetDocumentsDir()) { + error_dialog (this, _("You did not select a folder. Make sure that you select a folder before clicking Open.")); + } else { + break; + } + } + if (r == wxID_OK) { maybe_save_then_delete_film (); try { -- cgit v1.2.3 From 6789f52af621865fbd673a2d252621c7013481dc Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 7 Apr 2013 16:22:20 +0100 Subject: ChangeLog. --- ChangeLog | 2 ++ 1 file changed, 2 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 1235944df..b69cdaca7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,8 @@ * Give a hopefully helpful message when clicking Open without selecting a folder (#99). + * Fix servomatic_gui startup and shutdown on Linux (#98). + 2013-04-01 Carl Hetherington * Version 0.79 released. -- cgit v1.2.3 From 3366004130c2434dfe6972b36ad090ac2a8b8005 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 7 Apr 2013 17:13:07 +0100 Subject: ChangeLog. --- ChangeLog | 2 ++ 1 file changed, 2 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index b69cdaca7..18f5a8ae0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -16,6 +16,8 @@ * Fix servomatic_gui startup and shutdown on Linux (#98). + * GUI now points out when audio resampling is being done. + 2013-04-01 Carl Hetherington * Version 0.79 released. -- cgit v1.2.3 From 651f0720c91245b88f178671fe9cbbd1df214541 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 7 Apr 2013 18:12:28 +0100 Subject: ChangeLog. --- ChangeLog | 3 +++ 1 file changed, 3 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 18f5a8ae0..cf9eef43e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,9 @@ * GUI now points out when audio resampling is being done. + * Hopefully fix lack of redraw of the viewer background + on Windows (#86). + 2013-04-01 Carl Hetherington * Version 0.79 released. -- cgit v1.2.3