diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-01-07 15:06:15 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-01-07 15:06:15 +0000 |
| commit | 4983b57d7ccba4ea0b393cf3a40043c1ed5c6b77 (patch) | |
| tree | 485144028325765093e2268d779ea23eb42eaa38 /src/tools/dcpomatic.cc | |
| parent | 95faa6568854b5f861db07e9b8697169aaceec3c (diff) | |
Basic dialog reporting of manual update checks.
Diffstat (limited to 'src/tools/dcpomatic.cc')
| -rw-r--r-- | src/tools/dcpomatic.cc | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index b69385e24..fcb47f2d1 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -536,8 +536,7 @@ private: void tools_check_for_updates () { - UpdateChecker c; - c.run (); + UpdateChecker::instance()->run (false); } void help_about () @@ -646,10 +645,12 @@ class App : public wxApp film->set_name (boost::filesystem::path (film_to_create).filename().generic_string ()); } - Frame* f = new Frame (_("DCP-o-matic")); - SetTopWindow (f); - f->Maximize (); - f->Show (); + _frame = new Frame (_("DCP-o-matic")); + SetTopWindow (_frame); + _frame->Maximize (); + _frame->Show (); + + UpdateChecker::instance()->StateChanged.connect (boost::bind (&App::update_checker_state_changed, this)); ui_signaller = new wxUISignaller (this); Bind (wxEVT_IDLE, boost::bind (&App::idle, this)); @@ -704,6 +705,33 @@ class App : public wxApp } } + void update_checker_state_changed () + { + switch (UpdateChecker::instance()->state ()) { + case UpdateChecker::YES: + error_dialog ( + _frame, + wxString::Format ( + _("A new version %s of DCP-o-matic is available from http://dcpomatic.com/download"), + std_to_wx (UpdateChecker::instance()->stable()).wx_str () + ) + ); + break; + case UpdateChecker::NO: + if (!UpdateChecker::instance()->startup ()) { + error_dialog (_frame, _("There are no new versions of DCP-o-matic available.")); + } + break; + case UpdateChecker::FAILED: + if (!UpdateChecker::instance()->startup ()) { + error_dialog (_frame, _("The DCP-o-matic download server could not be contacted.")); + } + default: + break; + } + } + + wxFrame* _frame; shared_ptr<wxTimer> _timer; }; |
