Hand-apply bd7102b476c631b1fa9067f18ce938d86073f6c8; single-file hashes.
[dcpomatic.git] / src / wx / wx_util.cc
index 23a85534a2123fbbad1fb58c8ec5e1f43b52618c..0119799d26aaa3d0c8ff17dde466169877d6fd78 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
 
     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<string ()> 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<string ()> 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"));