X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ffilm_editor.cc;h=7fa34c516c60875e0208b0f907adf6d332078b94;hb=854f2e5bbb7ffb9758b823af87034033033f3cb8;hp=14982e0d302c46ecbcd77ecd915f574095fc3493;hpb=097a1fb413bbbb89182161d4c1a31daa5419ec96;p=dcpomatic.git diff --git a/src/wx/film_editor.cc b/src/wx/film_editor.cc index 14982e0d3..7fa34c516 100644 --- a/src/wx/film_editor.cc +++ b/src/wx/film_editor.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2013 Carl Hetherington + Copyright (C) 2012-2014 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -72,7 +72,7 @@ using boost::lexical_cast; /** @param f Film to edit */ FilmEditor::FilmEditor (shared_ptr f, wxWindow* parent) : wxPanel (parent) - , _menu (f, this) + , _menu (this) , _generally_sensitive (true) , _timeline_dialog (0) { @@ -92,6 +92,8 @@ FilmEditor::FilmEditor (shared_ptr f, wxWindow* parent) JobManager::instance()->ActiveJobsChanged.connect ( bind (&FilmEditor::active_jobs_changed, this, _1) ); + + Config::instance()->Changed.connect (boost::bind (&FilmEditor::config_changed, this)); SetSizerAndFit (s); } @@ -177,7 +179,7 @@ FilmEditor::make_dcp_panel () wxSizer* s = new wxBoxSizer (wxHORIZONTAL); _j2k_bandwidth = new wxSpinCtrl (_dcp_panel, wxID_ANY); s->Add (_j2k_bandwidth, 1); - add_label_to_sizer (s, _dcp_panel, _("MBps"), false); + add_label_to_sizer (s, _dcp_panel, _("Mbit/s"), false); grid->Add (s, wxGBPosition (r, 1)); } ++r; @@ -213,7 +215,7 @@ FilmEditor::make_dcp_panel () } _audio_channels->SetRange (0, MAX_AUDIO_CHANNELS); - _j2k_bandwidth->SetRange (1, 250); + _j2k_bandwidth->SetRange (1, Config::instance()->maximum_j2k_bandwidth() / 1000000); _resolution->Append (_("2K")); _resolution->Append (_("4K")); @@ -268,23 +270,29 @@ FilmEditor::make_content_panel () _content->InsertColumn (0, wxT("")); _content->SetColumnWidth (0, 512); +#ifdef DCPOMATIC_OSX + int const pad = 2; +#else + int const pad = 0; +#endif + wxBoxSizer* b = new wxBoxSizer (wxVERTICAL); _content_add_file = new wxButton (_content_panel, wxID_ANY, _("Add file(s)...")); - b->Add (_content_add_file, 1, wxEXPAND | wxLEFT | wxRIGHT); + b->Add (_content_add_file, 1, wxEXPAND | wxALL, pad); _content_add_folder = new wxButton (_content_panel, wxID_ANY, _("Add folder...")); - b->Add (_content_add_folder, 1, wxEXPAND | wxLEFT | wxRIGHT); + b->Add (_content_add_folder, 1, wxEXPAND | wxALL, pad); _content_remove = new wxButton (_content_panel, wxID_ANY, _("Remove")); - b->Add (_content_remove, 1, wxEXPAND | wxLEFT | wxRIGHT); - _content_earlier = new wxButton (_content_panel, wxID_UP); - b->Add (_content_earlier, 1, wxEXPAND); - _content_later = new wxButton (_content_panel, wxID_DOWN); - b->Add (_content_later, 1, wxEXPAND); - _content_timeline = new wxButton (_content_panel, wxID_ANY, _("DCPTimeline...")); - b->Add (_content_timeline, 1, wxEXPAND | wxLEFT | wxRIGHT); + b->Add (_content_remove, 1, wxEXPAND | wxALL, pad); + _content_earlier = new wxButton (_content_panel, wxID_ANY, _("Up")); + b->Add (_content_earlier, 1, wxEXPAND | wxALL, pad); + _content_later = new wxButton (_content_panel, wxID_ANY, _("Down")); + b->Add (_content_later, 1, wxEXPAND | wxALL, pad); + _content_timeline = new wxButton (_content_panel, wxID_ANY, _("Timeline...")); + b->Add (_content_timeline, 1, wxEXPAND | wxALL, pad); s->Add (b, 0, wxALL, 4); - _content_sizer->Add (s, 0.75, wxEXPAND | wxALL, 6); + _content_sizer->Add (s, 0, wxEXPAND | wxALL, 6); } _sequence_video = new wxCheckBox (_content_panel, wxID_ANY, _("Keep video in sequence")); @@ -734,7 +742,7 @@ FilmEditor::setup_content () ContentList content = _film->content (); for (ContentList::iterator i = content.begin(); i != content.end(); ++i) { int const t = _content->GetItemCount (); - bool const valid = (*i)->path_valid (); + bool const valid = (*i)->paths_valid (); string s = (*i)->summary (); if (!valid) { @@ -841,7 +849,7 @@ FilmEditor::setup_content_sensitivity () _video_panel->Enable (video_selection.size() > 0 && _generally_sensitive); _audio_panel->Enable (audio_selection.size() > 0 && _generally_sensitive); - _subtitle_panel->Enable (selection.size() == 1 && dynamic_pointer_cast (selection.front()) && _generally_sensitive); + _subtitle_panel->Enable (selection.size() == 1 && dynamic_pointer_cast (selection.front()) && _generally_sensitive); _timing_panel->Enable (selection.size() == 1 && _generally_sensitive); } @@ -936,7 +944,7 @@ FilmEditor::content_timeline_clicked () _timeline_dialog = 0; } - _timeline_dialog = new DCPTimelineDialog (this, _film); + _timeline_dialog = new TimelineDialog (this, _film); _timeline_dialog->Show (); } @@ -966,7 +974,7 @@ FilmEditor::sequence_video_changed () void FilmEditor::content_right_click (wxListEvent& ev) { - _menu.popup (selected_content (), ev.GetPoint ()); + _menu.popup (_film, selected_content (), ev.GetPoint ()); } void @@ -998,3 +1006,9 @@ FilmEditor::content_later_clicked () content_selection_changed (); } } + +void +FilmEditor::config_changed () +{ + _j2k_bandwidth->SetRange (1, Config::instance()->maximum_j2k_bandwidth() / 1000000); +}