wrappers around boost::format using C++17 variadic templates,
replacing the ugly and verbose
(boost::format("template") % arg1 % arg2).str()
syntax.
The wrappers also implictely convert input parameters including the template
from wxString to UTF8.
The new format wrapper has been applied at multiple places as a start,
also some double macros _(L()) with new single macro _L().
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
Fixed return type of std::string translate_utf8() with context
(incorrectly returned wxString, should return std::string).
Fixed double translation of BackgroundSlicingProcess::validate() in Plater.
All requested config values are written into SL1 ini file inside the zip
* TIme.hpp and Time.cpp is now part of libslic3r instead of libslic3r_gui
* Updated time manipulation function: separate timestamp_local_str and timestamp_utc_str
* timestamp_utc_str is used in header_slic3r_generated(). Gcode now contains UTC timestamps
If the user launched Wizard from the menu and checked the reset
checkbox, snapshot was not taken in case no new bundles were
to be installed from resources (ie. most of the time).
Snapshot is now taken as appropriate.
A static symbol Slic3r::SEMVER is introduced, which holds
the running slicer's Semver object.
This is mainly done to make testing updater behaviour
_much_ easier. Additionaly to cleanup some questionable code
(Semver was being parsed multiple times / in multiple places
in the frontend.)
This fixes a problem where old slicer having found newer incompatible bundle
would not report an incompatibility.
The installed index check was performed too early before
bundle compatibility check. This fix moves the installed index check
to the point where a bundle would've been update (as it should be).
entered with Plater::enter_gizmos_stack(), and left with
Plater::enter_gizmos_stack(). Other than that, the 2nd Undo / Redo
stack is transparent to the user of the Plater.
WIP: Currently the Gizmo stack takes a snapshot of the whole scene on
Plater::enter_gizmos_stack(). While it should work, it may be cheaper
to modify the Undo/Redo stack to only take a snapshot of the gizmos
in the Gizmo mode.