system call to the command line utility and send out the unmount
wxWidgets event immediately.
Hopefully improves 2.2.0-RC Eject is very slow in Linux (#3795)
This crash was caused by the RemovableDriveManager and 3DConnexion
detection services not being stopped correctly.
The fix executes all the tasks of the MainFrame at the language switch,
that are normally performed on application shut down.
1) On Windows and Linux, the device enumeration now runs at a background
thread, while it ran on the UI thread on idle, which may have been
blocking on some rare Windows setups, see GH #3515#3733#3746#3766
2) On OSX, the device enumeration now relies on OS callback, no
polling is required.
3) Refactored for cleaner interface.
1) On Windows and Linux, polling of removable drives is done at a background
thread, not at a UI thread.
2) On OSX, there is no polling, but a OS notification callback.
3) Refactored for clarity of the RemovableDriveManager interface.
* the editing of extruder color from PresetComboBox,
when incompatible filament preset is selected and red flag is shown.
*OSX specific bug : empty icons for PresetComboBox had non-scaled width
1. "Revert" buttons on the bar don't work for a "Compatible printers" and a "Compatible prints profiles".
And cause a crash if they are pressed in Print(SLA) Settings.
2. A label of a "Compatible printers" option is always black in Filament(Materials) Settings Tab
- Deleted redundant whitespaces before semicolons.
- All "\t" extracted from the phrases (The PhraseApp used to the translations "doesn't see" it, and as a result all translations missed them)
The wxString saga continues. wxWidgets 3.0 don't have the wxString::FromUTF8(const std::string&) overload, we must use the GUI::from_u8 helper
Also wxWidgets 3.0 don't allow to disable wxString->const char* conversion, so calling show_info(wxWindow*, wxString, const char*) was ambiguous
Several includes moved around