to help with detecting "not changed" event when taking
Undo/Redo snapshot or synchronizing with the back-end.
Converted layer height profile and supports / seam painted areas
to the same timestamp controlled structure.
Steps to the reproduce a crash:
1. In SLA mode add some object with several instances
2. Slice
3. Back to 3Dview scene, select all using Ctrl+A
4. Press "Delete"
- PresetCombpBoxes are extracted to the separate file.
- All preset icons are moved to the PresetComboBox from Preset and PresetBundle
- First "steps" to add physical printers to the printers list on the sidebar.
+ Added a check of the printer technology inside can_merge_to_multipart_object() => suppress merge for the SLA printing
+ clear MainFrame.cpp from unused commented code
Fix compilation on Windows
Fix array subscript out of range error in MarchingSquares
Fix normals of mesh constructed from slices
Improve performance of mesh construction from slices
+ Fixed wrong update of selection in object and scene, when change selection in ObjectList after editing of values in Height range modifiers.
Repro:
1. Add 2 objects
2. Add Height range modifiers for one of them
3. Select range
4. Edit some of values
5. Select other object.
Expected behavior:
1. Edited value is saved
2. New object is selected in object list and on the 3D scene_selection
Real behavior:
1. New object is selected in object list and on the 3D scene_selection
But:
2. Every next selection in object list has no update on the scene or "temporary" panel
3. Selection from the scene updates selection in ObjectList
But:
4. Next editing of layer range and press "Enter" causes a crash
to avoid a column narrowing after a recreating of an application caused by a language changing)
+ Fix related to a bug, reported in #3617, about wrong placement of a "Purging volumes" button
translated to the some languages
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.