Zoom to bed command set to zoom to active bed
Added camera rotation pivot which is updated whenever the active bed changes
SPE-2506 - Follow up of a2873759aba1eb13a31591d9e852be0f1e21786b - Fixed camera position after zoom to bed
- virtual bed shows even when dragging which was already outside
- when loading old-arranged project with more than max number of beds, a virtual bed would still be offered
- loading a project file with multiple beds only showed 2 beds initially
- nonprintable objects are not considered into the bed creation logic
- drag and dropping an object does not change active bed
- shells in preview are now shown correctly when switching between beds
- spacing in x takes into account model size (except during the initial rearrange)
- update volumes outside state after project loading
- highlight of selected bed for default beds
This is where it really gets nasty:
- Switch background_process.m_temp_output_path is now updated when beds are switched, so each Print writes to a different file.
- When switching beds in Preview, there is a cache in GCodeViewer which would mistakenly not load the other preview (happens in case when switching to a bed which is not sliced and back). Bypass this cache when beds are being switched.
- Added a CallAfter logic into GLCanvas3D::select_bed (the central function where beds are switched). It now does the following:
1. Stops the background process
2. Schedules a callafter which then
3. wxYields the event queue (so all events generated as a result of (1) are consumed before active bed is switched.
4. switches active bed
5. fires couple of update functions and events, schedules background process
- When BSProcess is switched to the new bed, it now calls on_slicing_update (in sync). This is to regenerate all slicing error/warning notifications. The on_slicing_update function was updated to be able to process all print(object)steps and objects.
- Sliced info in sidebar did not properly show when switching beds in 3D scene. Added explicit refresh into update_background_process.
- reload preview when beds are switched
- only show one bed in preview
- move the preview so it ends up in the same place as in 3D scene
- move the camera when switching beds in Preview
- Vectorizing Print, SLAPrint and GCodeProcessorResult
- Connect multiple beds to background slicing process
- TODO: A lot of code (notifications, etc.) commented-out.
- create new bed when a volume is dragged into it
- limit maximum number of beds
- keep track of which ModelInstances are on which bed
- show list of beds and allow selecting an active one
- move objects from active bed to the first bed when passing Model to Print::apply (and back)
However, it is still not impossible to select an SLA printer when the object has a modifier.
For this case info dialog will be shown.
+ Model: Deleted model_has_multi_part_objects()
SPE-2547
- Specific to linux.
- If the current config dir is not $HOME/.config dir check the
$HOME/.config dir for previous existing configs.
- Targeted on flatpak where the config dir is configured using
$XDG_CONFIG_HOME and is not in $HOME, where it will trigger
a prompt for config migration.