Playlist editor: update content list when configuration changes.
[dcpomatic.git] / src / tools / dcpomatic_player.cc
index 11f4bfaa7a4fd9107aff49a383047962273972ba..9b88ee2c3663297af31c94b0a5be4a17bf4d8c37 100644 (file)
@@ -150,6 +150,7 @@ public:
                , _system_information_dialog (0)
                , _view_full_screen (0)
                , _view_dual_screen (0)
+               , _main_sizer (new wxBoxSizer (wxVERTICAL))
 {
                dcpomatic_log.reset (new NullLog());
 
@@ -293,13 +294,15 @@ public:
 
        void setup_main_sizer (Config::PlayerMode mode)
        {
-               wxSizer* main_sizer = new wxBoxSizer (wxVERTICAL);
+               _main_sizer->Detach (_viewer->panel());
+               _main_sizer->Detach (_controls);
+               _main_sizer->Detach (_info);
                if (mode != Config::PLAYER_MODE_DUAL) {
-                       main_sizer->Add (_viewer->panel(), 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
+                       _main_sizer->Add (_viewer->panel(), 1, wxEXPAND);
                }
-               main_sizer->Add (_controls, mode == Config::PLAYER_MODE_DUAL ? 1 : 0, wxEXPAND | wxALL, 6);
-               main_sizer->Add (_info, 0, wxEXPAND | wxALL, 6);
-               _overall_panel->SetSizer (main_sizer);
+               _main_sizer->Add (_controls, mode == Config::PLAYER_MODE_DUAL ? 1 : 0, wxEXPAND | wxALL, 6);
+               _main_sizer->Add (_info, 0, wxEXPAND | wxALL, 6);
+               _overall_panel->SetSizer (_main_sizer);
                _overall_panel->Layout ();
        }
 
@@ -782,6 +785,7 @@ private:
 
                dcp->set_cpl ((*i)->id());
                dcp->examine (_film, shared_ptr<Job>());
+               _info->triggered_update ();
        }
 
        void view_full_screen ()
@@ -834,10 +838,10 @@ private:
                                switch (Config::instance()->image_display()) {
                                case 0:
                                        _dual_screen->Move (0, 0);
-                                       Move (wxDisplay(0).GetClientArea().GetWidth(), 0);
+                                       Move (wxDisplay(0U).GetClientArea().GetWidth(), 0);
                                        break;
                                case 1:
-                                       _dual_screen->Move (wxDisplay(0).GetClientArea().GetWidth(), 0);
+                                       _dual_screen->Move (wxDisplay(0U).GetClientArea().GetWidth(), 0);
                                        // (0, 0) doesn't seem to work for some strange reason
                                        Move (8, 8);
                                        break;
@@ -1081,6 +1085,7 @@ private:
        wxMenuItem* _tools_verify;
        wxMenuItem* _view_full_screen;
        wxMenuItem* _view_dual_screen;
+       wxSizer* _main_sizer;
        PlayerStressTester _stress;
 };