Add a load of explicit keywords.
[dcpomatic.git] / src / tools / dcpomatic_player.cc
index 0f77e3bc3f63848412a2b6ca1094099ab9f73df3..d42320bfdd383c527af1a0170c15fd41e288306a 100644 (file)
@@ -128,6 +128,7 @@ public:
                wxPanel* overall_panel = new wxPanel (this, wxID_ANY);
 
                _viewer = new FilmViewer (overall_panel, false, false);
+               _viewer->set_dcp_decode_reduction (Config::instance()->decode_reduction ());
                _info = new PlayerInformation (overall_panel, _viewer);
                wxSizer* main_sizer = new wxBoxSizer (wxVERTICAL);
                main_sizer->Add (_viewer, 1, wxEXPAND | wxALL, 6);
@@ -149,6 +150,7 @@ public:
        {
                _viewer->set_dcp_decode_reduction (reduction);
                _info->triggered_update ();
+               Config::instance()->set_decode_reduction (reduction);
        }
 
        void load_dcp (boost::filesystem::path dir)
@@ -179,7 +181,7 @@ public:
 
                shared_ptr<Job> last = jm->get().back();
                if (last->finished_in_error()) {
-                       error_dialog (this, std_to_wx (last->error_summary()) + ".\n");
+                       error_dialog(this, std_to_wx(last->error_summary()) + ".\n", std_to_wx(last->error_details()));
                        return;
                }
 
@@ -230,10 +232,11 @@ private:
 #endif
 
                wxMenu* view = new wxMenu;
-               view->AppendRadioItem (ID_view_scale_appropriate, _("Set decode resolution to match display"));
-               view->AppendRadioItem (ID_view_scale_full, _("Decode at full resolution"));
-               view->AppendRadioItem (ID_view_scale_half, _("Decode at half resolution"));
-               view->AppendRadioItem (ID_view_scale_quarter, _("Decode at quarter resolution"));
+               optional<int> c = Config::instance()->decode_reduction();
+               view->AppendRadioItem(ID_view_scale_appropriate, _("Set decode resolution to match display"))->Check(!static_cast<bool>(c));
+               view->AppendRadioItem(ID_view_scale_full, _("Decode at full resolution"))->Check(c && c.get() == 0);
+               view->AppendRadioItem(ID_view_scale_half, _("Decode at half resolution"))->Check(c && c.get() == 1);
+               view->AppendRadioItem(ID_view_scale_quarter, _("Decode at quarter resolution"))->Check(c && c.get() == 2);
 
                wxMenu* tools = new wxMenu;
                tools->Append (ID_tools_check_for_updates, _("Check for updates"));
@@ -308,6 +311,10 @@ private:
                        DCPOMATIC_ASSERT (dcp);
                        dcp->add_ov (wx_to_std(c->GetPath()));
                        dcp->examine (shared_ptr<Job>());
+                       /* Maybe we just gained some subtitles */
+                       if (dcp->subtitle) {
+                               dcp->subtitle->set_use (true);
+                       }
                }
 
                c->Destroy ();