diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index b5d56bb542..8cd5ecfc4e 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -127,6 +127,10 @@ bool GUI_App::OnInit() app_config->save(); preset_updater = new PresetUpdater(); + Bind(EVT_SLIC3R_VERSION_ONLINE, [this](const wxCommandEvent &evt) { + app_config->set("version_online", into_u8(evt.GetString())); + app_config->save(); + }); load_language(); diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index 1fd6d3f4a6..d3f54ed15d 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -103,6 +103,8 @@ static Semver get_slic3r_version() return *res; } +wxDEFINE_EVENT(EVT_SLIC3R_VERSION_ONLINE, wxCommandEvent); + struct PresetUpdater::priv { @@ -225,13 +227,9 @@ void PresetUpdater::priv::sync_version() const boost::trim(body); BOOST_LOG_TRIVIAL(info) << boost::format("Got Slic3rPE online version: `%1%`. Sending to GUI thread...") % body; - // FIXME: race condition - -// wxCommandEvent* evt = new wxCommandEvent(version_online_event); -// evt->SetString(body); -// GUI::get_app()->QueueEvent(evt); - GUI::wxGetApp().app_config->set("version_online", body); - GUI::wxGetApp().app_config->save(); + wxCommandEvent* evt = new wxCommandEvent(EVT_SLIC3R_VERSION_ONLINE); + evt->SetString(GUI::from_u8(body)); + GUI::wxGetApp().QueueEvent(evt); }) .perform_sync(); } diff --git a/src/slic3r/Utils/PresetUpdater.hpp b/src/slic3r/Utils/PresetUpdater.hpp index 451e8b2cf5..29ccaef8fd 100644 --- a/src/slic3r/Utils/PresetUpdater.hpp +++ b/src/slic3r/Utils/PresetUpdater.hpp @@ -37,6 +37,8 @@ private: std::unique_ptr p; }; +wxDECLARE_EVENT(EVT_SLIC3R_VERSION_ONLINE, wxCommandEvent); + } #endif