X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fwx_util.cc;h=0119799d26aaa3d0c8ff17dde466169877d6fd78;hb=ff96cc9c9e33fbe9dea02ea2d397144f9c9ac8c9;hp=23a85534a2123fbbad1fb58c8ec5e1f43b52618c;hpb=fb86361c31c35d7df3dede7b40e4b60e2e7f9c1a;p=dcpomatic.git diff --git a/src/wx/wx_util.cc b/src/wx/wx_util.cc index 23a85534a..0119799d2 100644 --- a/src/wx/wx_util.cc +++ b/src/wx/wx_util.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2014 Carl Hetherington + Copyright (C) 2012-2015 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -117,50 +117,6 @@ std_to_wx (string s) return wxString (s.c_str(), wxConvUTF8); } -int const ThreadedStaticText::_update_event_id = 10000; - -/** @param parent Parent for the wxStaticText. - * @param initial Initial text for the wxStaticText while the computation is being run. - * @param fn Function which works out what the wxStaticText content should be and returns it. - */ -ThreadedStaticText::ThreadedStaticText (wxWindow* parent, wxString initial, function fn) - : wxStaticText (parent, wxID_ANY, initial) -{ - Bind (wxEVT_COMMAND_TEXT_UPDATED, boost::bind (&ThreadedStaticText::thread_finished, this, _1), _update_event_id); - _thread = new thread (bind (&ThreadedStaticText::run, this, fn)); -} - -ThreadedStaticText::~ThreadedStaticText () -{ - _thread->interrupt (); - _thread->join (); - delete _thread; -} - -/** Run our thread and post the result to the GUI thread via AddPendingEvent */ -void -ThreadedStaticText::run (function fn) -try -{ - wxCommandEvent ev (wxEVT_COMMAND_TEXT_UPDATED, _update_event_id); - ev.SetString (std_to_wx (fn ())); - GetEventHandler()->AddPendingEvent (ev); -} -catch (...) -{ - /* Ignore exceptions; marginally better than the program quitting, but - only marginally. - */ -} - -/** Called in the GUI thread when our worker thread has finished */ -void -ThreadedStaticText::thread_finished (wxCommandEvent& ev) -{ - SetLabel (ev.GetString ()); - Finished (); -} - string string_client_data (wxClientData* o) { @@ -193,7 +149,7 @@ void checked_set (wxSpinCtrlDouble* widget, double value) { /* XXX: completely arbitrary epsilon */ - if (fabs (widget->GetValue() - value) < 1e-16) { + if (fabs (widget->GetValue() - value) > 1e-16) { widget->SetValue (value); } } @@ -280,6 +236,14 @@ dcpomatic_setup_i18n () locale->AddCatalogLookupPathPrefix (POSIX_LOCALE_PREFIX); #endif +#ifdef DCPOMATIC_LINUX + /* We have to include the wxWidgets .mo in our distribution, + so we rename it to avoid clashes with any other installation + of wxWidgets. + */ + locale->AddCatalog (wxT ("dcpomatic-wxstd")); +#endif + locale->AddCatalog (wxT ("libdcpomatic-wx")); locale->AddCatalog (wxT ("dcpomatic"));