Integration of the "cereal" serialization library.
Serialization / deserialization of the DynamicConfig / DynamicPrintConfig.
DynamicPrintConfig serializes ordinal identifiers instead
of the option key strings to conserve space.
Export of the names of the SLA profiles was performed into the config bundle
for SLA profiles, which were nop set. A safe method is now used,
which stores an empty string in such a case.
for FDM, and "[input_filename_base].sl1" for the SLA technology.
This improves the situation of
"Filename creation with variables broken"
https://github.com/prusa3d/PrusaSlicer/issues/1918
where anything after the last dot in the file name is considered
as an extension, therefore the .gcode resp. .sl1 extension is not added.
Now the user gets the output_filename_format filled in with the correct
extension.
Also now if the output_filename_format is empty, the output name
is generated anyway.
profiles after switching the technology from FFF to SLA and vice versa.
The solution is to keep the print / filament / sla print / sla material
settings undefined until the particular technology is activated for
the first time. Then the settings name persists indefinitely even
if all the printes for that particular printer technology are deleted.
+ Added a calculation of a empty bitmaps inside presets in respect to em_unit (to avoid assert)
+ Added scaling for PrintHostDialogs and MsgDialog
+ some code refactoring
Slicer crash when SLA printer is selected and printer profile is changed
First, there was a bug in the preset Tabs, where a "printer_technology"
was incorrectly queried on "print" and "filament"
(or "sla_print" and "sla_material") profiles.
Second, there was an unsafe "printer_technology" getter, which would add
the missing key to the config container when queried for.
When loading a user provided Config Bundle (not a vendor Config Bundle),
profiles of the same name as the system profiles already loaded into Slic3r
will be ignored, while emiting an error message into the log.
Also when loading a user provided Config Bundle, imported vs. overwritten
profiles are reported into the log as well.
template.
Reworked naming of the plater exports to not use the output file name
template, but to derive the file name from the first printable object's name.
Fixed error handling: Reimpemented the Perl's "eval" blocks
as try / catch blocks.