Try to warn if we're running the 32-bit version on 64-bit windows (WoW64) (#1569).
[dcpomatic.git] / src / tools / dcpomatic.cc
index ee51d0717b52204f2671f8b3583a8944b7082e9f..96770914d38d1758083131d79b19a21b42c37945 100644 (file)
@@ -230,12 +230,12 @@ enum {
        ID_jobs_open_dcp_in_player,
        ID_view_closed_captions,
        ID_view_video_waveform,
-       ID_view_system_information,
        ID_tools_hints,
        ID_tools_encoding_servers,
        ID_tools_manage_templates,
        ID_tools_check_for_updates,
        ID_tools_send_translations,
+       ID_tools_system_information,
        ID_tools_restore_default_preferences,
        ID_help_report_a_problem,
        /* IDs for shortcuts (with no associated menu item) */
@@ -322,12 +322,12 @@ public:
                Bind (wxEVT_MENU, boost::bind (&DOMFrame::jobs_open_dcp_in_player, this), ID_jobs_open_dcp_in_player);
                Bind (wxEVT_MENU, boost::bind (&DOMFrame::view_closed_captions, this),    ID_view_closed_captions);
                Bind (wxEVT_MENU, boost::bind (&DOMFrame::view_video_waveform, this),     ID_view_video_waveform);
-               Bind (wxEVT_MENU, boost::bind (&DOMFrame::view_system_information, this), ID_view_system_information);
                Bind (wxEVT_MENU, boost::bind (&DOMFrame::tools_hints, this),             ID_tools_hints);
                Bind (wxEVT_MENU, boost::bind (&DOMFrame::tools_encoding_servers, this),  ID_tools_encoding_servers);
                Bind (wxEVT_MENU, boost::bind (&DOMFrame::tools_manage_templates, this),  ID_tools_manage_templates);
                Bind (wxEVT_MENU, boost::bind (&DOMFrame::tools_check_for_updates, this), ID_tools_check_for_updates);
                Bind (wxEVT_MENU, boost::bind (&DOMFrame::tools_send_translations, this), ID_tools_send_translations);
+               Bind (wxEVT_MENU, boost::bind (&DOMFrame::tools_system_information, this),ID_tools_system_information);
                Bind (wxEVT_MENU, boost::bind (&DOMFrame::tools_restore_default_preferences, this), ID_tools_restore_default_preferences);
                Bind (wxEVT_MENU, boost::bind (&DOMFrame::help_about, this),              wxID_ABOUT);
                Bind (wxEVT_MENU, boost::bind (&DOMFrame::help_report_a_problem, this),   ID_help_report_a_problem);
@@ -991,10 +991,10 @@ private:
                _video_waveform_dialog->Show ();
        }
 
-       void view_system_information ()
+       void tools_system_information ()
        {
                if (!_system_information_dialog) {
-                       _system_information_dialog = new SystemInformationDialog (this);
+                       _system_information_dialog = new SystemInformationDialog (this, _film_viewer);
                }
 
                _system_information_dialog->Show ();
@@ -1281,7 +1281,6 @@ private:
                wxMenu* view = new wxMenu;
                add_item (view, _("Closed captions..."), ID_view_closed_captions, NEEDS_FILM);
                add_item (view, _("Video waveform..."), ID_view_video_waveform, NEEDS_FILM);
-               add_item (view, _("System information..."), ID_view_system_information, 0);
 
                wxMenu* tools = new wxMenu;
                add_item (tools, _("Hints..."), ID_tools_hints, NEEDS_FILM);
@@ -1289,6 +1288,7 @@ private:
                add_item (tools, _("Manage templates..."), ID_tools_manage_templates, 0);
                add_item (tools, _("Check for updates"), ID_tools_check_for_updates, 0);
                add_item (tools, _("Send translations..."), ID_tools_send_translations, 0);
+               add_item (tools, _("System information..."), ID_tools_system_information, 0);
                tools->AppendSeparator ();
                add_item (tools, _("Restore default preferences"), ID_tools_restore_default_preferences, ALWAYS);
 
@@ -1539,6 +1539,13 @@ private:
                                Config::instance()->set_nagged(Config::NAG_INITIAL_SETUP, true);
                        }
 
+                       if (running_32_on_64 ()) {
+                               NagDialog::maybe_nag (
+                                       _frame, Config::NAG_32_ON_64,
+                                       _("You are running the 32-bit version of DCP-o-matic on a 64-bit version of Windows.  This will limit the memory available to DCP-o-matic and may cause errors.  You are strongly advised to install the 64-bit version of DCP-o-matic."),
+                                       false);
+                       }
+
                        _frame->Show ();
 
                        if (!_film_to_load.empty() && boost::filesystem::is_directory (_film_to_load)) {
@@ -1562,7 +1569,7 @@ private:
                        }
 
                        signal_manager = new wxSignalManager (this);
-                       Bind (wxEVT_IDLE, boost::bind (&App::idle, this));
+                       Bind (wxEVT_IDLE, boost::bind (&App::idle, this, _1));
 
                        Bind (wxEVT_TIMER, boost::bind (&App::check, this));
                        _timer.reset (new wxTimer (this));
@@ -1652,9 +1659,10 @@ private:
                report_exception ();
        }
 
-       void idle ()
+       void idle (wxIdleEvent& ev)
        {
                signal_manager->ui_idle ();
+               ev.Skip ();
        }
 
        void check ()