Merge branch 'master' of ssh://git.carlh.net/home/carl/git/dcpomatic
[dcpomatic.git] / src / tools / dcpomatic_kdm.cc
index 35bad59586bb4b0f8a9e3584b4e1aaa8d0d74e8f..26e7f8479ec465f5d34011af2b0ab846d5106d14 100644 (file)
@@ -18,7 +18,7 @@
 
 */
 
-#include "wx/config_dialog.h"
+#include "wx/full_config_dialog.h"
 #include "wx/about_dialog.h"
 #include "wx/report_problem_dialog.h"
 #include "wx/file_picker_ctrl.h"
 #include "lib/compose.hpp"
 #include "lib/cinema.h"
 #include "lib/dkdm_wrapper.h"
+#include "lib/cross.h"
 #include <dcp/encrypted_kdm.h>
 #include <dcp/decrypted_kdm.h>
 #include <dcp/exceptions.h>
 #include <wx/wx.h>
 #include <wx/preferences.h>
+#include <wx/splash.h>
 #include <wx/filepicker.h>
 #ifdef __WXOSX__
 #include <ApplicationServices/ApplicationServices.h>
@@ -198,7 +200,7 @@ private:
        void edit_preferences ()
        {
                if (!_config_dialog) {
-                       _config_dialog = create_config_dialog ();
+                       _config_dialog = create_full_config_dialog ();
                }
                _config_dialog->Show (this);
        }
@@ -536,6 +538,11 @@ private:
        {
                wxInitAllImageHandlers ();
 
+               Config::FailedToLoad.connect (boost::bind (&App::config_failed_to_load, this));
+               Config::Warning.connect (boost::bind (&App::config_warning, this, _1));
+
+               wxSplashScreen* splash = maybe_show_splash ();
+
                SetAppName (_("DCP-o-matic KDM Creator"));
 
                if (!wxApp::OnInit()) {
@@ -575,6 +582,9 @@ private:
                _frame = new DOMFrame (_("DCP-o-matic KDM Creator"));
                SetTopWindow (_frame);
                _frame->Maximize ();
+               if (splash) {
+                       splash->Destroy ();
+               }
                _frame->Show ();
 
                signal_manager = new wxSignalManager (this);
@@ -628,6 +638,16 @@ private:
                signal_manager->ui_idle ();
        }
 
+       void config_failed_to_load ()
+       {
+               message_dialog (_frame, _("The existing configuration failed to load.  Default values will be used instead.  These may take a short time to create."));
+       }
+
+       void config_warning (string m)
+       {
+               message_dialog (_frame, std_to_wx (m));
+       }
+
        DOMFrame* _frame;
 };