Previous implementation did not use monospace font on Linux. According to a note
from @wavexx in ba7f39a: "wxSYS_ANSI_FIXED_FONT use the same as DEFAULT in wxGtk".
This commit uses the same workaround by actually loading the font from GUI_App.
The issue was handling of the special "default_filament_profile" vector,
which is not being normalized in length to the number of extruders,
as this vector is being shown to the user at the Printer dependencies page,
and we don't want to present empty fields there, if the default filament
profile was not defined in the system preset.
The solution adds a status flag to GUI_App::init_openg and ensures that GUI_App::post_init isn't called before initialization in GUI_App::init_openg is done.
Mark Ejection as failed if the wait() function fails. It seems that it is not simply possible
to retrieve the exit code of the process in that case (although it usually finishes sucessfully).
Problem: Add an object, name it using cyrilic, Slice, click Export: the proposed name is mangled. Affects all platforms, 2.2.0 was fine.
Cause: It is mangled during ASCII folding, which was broken with 28c0880 when it was generalized to be used from the fuzzy matcher.
fold_to_ascii(wchar_t c, char *out) relies on narrowing char = wchar_t assignment, the old one used std::back_insert_iterator<std::wstring>.
It is thus unable to leave a character alone even when it should (it should, right?).
Solution:
1. Typed the fold_to_ascii function so it works on wchar_t only, which should mimic the old behaviour.
2. Changed the respective call in fts_fuzzy_match.h. That function also works with wide char C-strings.
Cleanup:
1. Removed the unused fold_utf8_to_ascii(const char *src) overload to avoid code duplication.
2. Untemplated the fold_to_ascii(wchar_t c, std::back_insert_iterator<std::wstring>& out) function, it was never called with a different type.
3. The function is now static in ASCIIFolding.cpp, nobody else needs to know.
The issue is that opening the wxMessageDialog in GUI_App::check_printer_presets fires wxEVT_IDLE event (on Linux at least).
At that point it is already bound to our lambda which will in turn call post_init prematurely.
The solution is to move the Bind at the very end of the initialization. The post_init that it calls assumes that init has been finished anyway.
Fix some char *foo = "string literal" assignments that
really should be assigned to const char*.
(they also happen to be constexpr, but that only prevents
to assign something later to foo, but does not alter
the char* type).
Signed-off-by: Henner Zeller <h.zeller@acm.org>
This reverts commits:
57ba953 ("PresetUpdater - exceptions reformatted, not throwing an exception")
03028bb ("Improved exception throwing at copy file in preset updater")
If value for "Extrusion Multiplier" is out of range, and "NO" is selected in warning message dialog, then set previous value instead of max limit value
1) Use different wxWidgets call to get current time on Windows vs Unix
for efficiency reasons.
2) Don't call this function multiple times in a single function, it is
both expensive and not correct: One shall work with the same timestamp.
3) Added missing unbind of the new timer.
Fix for issues:
Issue 1:
1. Change "Extrusion multiplier" parameter,
2. Save edited preset.
3. Change "Extrusion multiplier" parameter -> preset wasn't marked as "modified"
Issue 2:
1. Change "Extrusion multiplier" parameter with out of range value
2. Push ENTER for the message dialog
3. Answer "Yes"
4. Same message dialog appears again
or G-code preview if it is marked as Active.
Fixes 3Dconnexion not work directly after importing stl (focus problem ?) #5141
Keep your fingers crossed that it will not break something else.
wxGTK3 HiDPI support seems to emulate what OSX does quite closely,
thus the changes are relatively minimal.
Also fixed an ugly rounding issue when populating the ImGUI font map
with image thumbnails.
Fixes Gtk3 issue on 4k+ screens #4135
Fixes HiDPI screens with Wayland on Fedora 30 cause Plater view to be too small. #3245
The repair can remove some of the triangles, so the custom data would make no sense.
This will hopefully fix#5458
Also, show a notification with a hyperlink to undo just before the repair.
has_undo_snapshot(timestamp) to query whether one can undo to a snapshot
with a specific timestamp. Useful for notifications, that want to Undo
a specific operation, to verify whether such operation is still valid.
on Linux when changing file attributes, as changing file attributes
may fail when writing onto FAT file system, which does not support
some of the common Unix file attributes.
Fix of #5007 - "Reload from disk" causes objects converted to inches to revert to mm
1) Storing and reloading the "source_in_inches" source flag from AMF and 3MF
2) When converting objects with mixed "inches" volumes, do the right thing
and do not convert those that do not need conversion.