and the "show incompatible profiles" option.
It was not able to select the incompatible Print profile, which is
possible now.
(see Cannot select incompatible printer profile #3715)
When the Printer profile derived from the Prusa3D system profile was
active or a system Prusa3D profile was active, and when the Print profile
with the removed "inherits" field was active (or any other profile
derived from the "-- default --" profile was active), then the filament
selector offered just the profiles with the removed "inherits" field
(or any other profile derived from the "-- default--") profile.
This behavior has been now changed, so that in this scenario the Filament selector
will offer the Prusa3D vendor profiles compatible with the active Print
and Printer profile as well as the user profiles.
Slicer was also changed to keep an incompatible preset selected
at its respective tab if its respective "Red flag" is enabled.
For example, if an incompatible Print preset is selected and a Printer
profile is switched to another one which is not compatible with the active
Print preset that was red already, the active Print preset is
not switched if the Print "Red flag" is active. However, if the Print profile
was compatible before the Printer profile is switched and now the Print
profile becomes incompatible, another compatible Print profile is selected.
A likely bug in wxWidgets was worked around when switching a Print preset
on Plater, if the last item in the Print preset was active and incompatible,
and another Print preset was selected by the user. On Windows, an CBN_EDITCHANGE
is sent just after combo box selection change event and the CBN_EDITCHANGE
holds an index of the combo box item, which will be removed by the 1st event,
therefore leading to an assert in wxWidgets on CBN_EDITCHANGE. The workaround
is to disable processing of CBN_EDITCHANGE on Windows for the Plater
preset selection combo boxes.
which now will be used for preset choosers on sidebar a preset tabs.
+ for BitmapCache class added m_scale used for correct scaling of SVG images on Retina displays
+ some code clearing from unused functions or function's parameters
so that references from user profiles and .3mfs / .amfs
to system profiles are not being lost.
If a system profile has no "renamed_from" profile name assigned,
and the system profile name contains "@", then a profile name
with the "@" is implicitely assumed to be the name, from which this
profile has been renamed.
Step to repro:
1. Select system "Some_preset" preset
2. Make some changes
3. Save preset with "Some_preset - Copy" name.
=> "Some_preset - Copy" is selected, there is/are marked option(s) only different from system preset.
repeate 1-3 steps
=> "Some_preset - Copy" is selected, there is/are marked option(s) different from DEFAULT preset.
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.)
+ 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
Fixed an issue, where deleting a profile did not correctly update
profile dependences, and deleting a profile would not test dirty status
of depending profiles, which would be switched thus user changes would be lost.
Fixed enabling / disabling the --default FFF-- / --default SLA-- profiles
when deleting the last printer profile.
Little refactoring (don't compare by strings but by symbolic names).
Making a copy of a profile - "Copy" suffix is added to a system profile.
Multi Material prints & soluble supports.
Disabled assert testing for the existence of "printer_technology" fields
as it triggers on loading of legacy AMF/3MF files.
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.