# Change Log for LightBurn-v2.0.00-RC-5 ## Changes Since LightBurn-v2.0.00-RC-4 ### Existing Feature Updates - Emblaser Pro updates (#821) - Change Emblaser3 to use new camera lens calibration - Added grayscale support for BSL devices (#826) - : UI pass #2 (DEV-880) - Save background size / shift values with camera settings - Added support for 'week of year' in ISO-8061 (#838) - Remember galvo rotary jog step between runs - Taper Warp now supports inches (#842) - Finally got the language / system locale to play nice together (#843) - Finally got the language / system locale to play nice together - all numeric labels now use locale settings - Added ability to move layers up/down with hotkeys (#847) ### Bug Fixes - Fixed directory creation issue on MacOS. - Fix initilization of device units in device settings - Fixing XTool protocol homing and jogging behavior. - Fixing the ToolModel to return WPOS instead of MPOS in LightBurn - Prevent app hang on close when network Ruida device selected - Prevent app hang on open/close projects when network Ruida device selected - Updated drag string behavior to show both line ends correctly (#831) - Fixed speed output units in Variable Text Cut Setting mode (#832) - Remove Qt version check from Connection_UDP::GetMaxPacketSize - HSpace value messed up alignment (#833) - Baking variable text didn't update shape bounds - don't render shapes with zero prims as a single dot - trace shouldn't crash if given an empty image (#836) - QT bug on importing SVG hex-based colors (#839) - Correctly handle comma vs period numeric separator for different locales - Patterned vector fills could crash the AI file importer (#848) ### Miscellaneous - Implement proper tooltips for all image mode controls (#829) - Warn user if rotary config loaded while using Ruida device (#825) ## Other Changes Since LightBurn-v1.7.08 ### Bug Fixes - ENG.Tool.pos was set to WPOS instead of MPOS (#606) - missing LB_LASER definition - ArtLibrary replace and rename were swapped - XTool gcode output in mm only (#621) - Galvo rotary / continuous marking would freeze because of an incomplete state setting - ToolState (jog speed, dist, etc) weren't being restored properly - Spelling & Grammar fix for Messagebox when attempting to adjust image with pass-through enabled. - Jogging from move/control panel now works in relative and absolute mode (#630) - Prevented Use Selectoion Origin setting being shown when in beginner mode. - Converting float to String missing in Protocol_Gcode_Base::JogStart. - Grouped masks when grouped with the masked image didn't save correctly (#640) - Tabs in grouped shapes were not immediately generated - BSL corfile wasn't being correctly loaded - Make sure Move panel always shows up by default (#643) - Changed the way Message boxes determine which option was selected so the correct result is returned in both Qt5 and Qt6. - Ensure settings dialog always opens on first tab - Virtual Camera on MacOS were crashing DEV-824 - Jogging checks for gcode devices - ShowTwoChoices was configured only for Qt5 responses - Barcode shape was leaking memory - Extreme perspective overhead cameras were breaking new overlay reprojection (#662) - Fixed crash from UCCNC not having a comms thread - Preload sound effects and just trigger them when needed - Live font update while selecting in combo box for Qt6 - Parse GRBL position correctly when reporting in inches. - When parsing a DXF, handle CR/LF in either order, BUT properly handle blank lines (2nd instance is not skipped) - prevent crash when setting freq > 1000kHz on BSL cards - Don't try to remove overlapping lines on offset fills - XTool's parser is broken, so always emit X & Y values when cutting - Ctrl+Click for node edit is more consistent, double-click no longer deselects all, removed some debug output - Fixed settings and cut settings layouts - Multi-action button timer-popup would leave button un-checked if the user cancelled out of the menu - Call ENG.Initialize() after construction to connect signals - Fixed some spacing issues with Device Settings window - fill core_machinecontrol for spindle, coolant, and vacuum (#682) - Lazy fix backup text path orientation so sharing works (#681) - Fixed column spacing for frame dialog - reverted New Device Wizard style setting back to Aero - Added support for AI / PDF files with null objects - Don't allow Trim (scissors) on locked shapes - DXF inline MTEXT height was not applying unit scaling (wrong font height sometimes) - Using cylinder correction with global passes could cause part of the path to be skipped - Dev units were not always getting properly set on first app launch - incorrect jogging behavior in head camera wizard - Enable word-wrap in evaluated label of barcode text, so dialog doesn't widen - extra camera streams were being started unnecessarily - App was crashing when trying to manage saved positions (#703) - App was crashing when trying to manage saved positions without being connected - emblaser was not returning to correct Z-height for head camera scan - Necessary imageformats module was not installed for Qt6 (#716) - lbcli was not using --qt-version option for depends or pre-build (#717) - custom gcode framing was not in constant power mode - framing was sometimes turning off the laser afterwards even though Fire button is pressed - Material Test center value was not saving (#715) - Fixed crash in BSL protocol during Find My Laser - Force galvo grayscale to output per-pixel commands - Emblaser Pro was not reporting position status correctly (#723) - Emblaser Pro protocol was not reporting position status correctly - Show "System Theme" if user has not set a theme. - - optimize shapes was wrapping around on open shapes - Cut Builder path clustering was crashing (fixed / reported on forum) - pressing enter in some camera dialog distance spinboxes would activate nearby buttons - Fix switching between metric and imperial in EasyFloatWidget (#726) - Fix edgecase crash in prim/vert cache loading - UI Style change for; New Device Wizard, USB Device Wizard, Bridge Discovery Wizard to ensure they respect application theme and all text is readable. - Better detection of shared nodes in Trim / Scissor tool (now handles intersections at nodes correctly) - Fixing GRBL error 24 on pause/resume. (#743) - Prevent download from crashing on DNS fail - Pause resume checks were overzealous and causing issues. - Fixing late night bugfix that introduced another bug on pause/resume for GRBL. - FillCameraFPS was crashing, possibly when unusual cameras had no valid modes - Remove unused icon theme system from Qt5 builds of LightBurn and MillMage to prevent application crash on MacOS. - Theming and Icon Recolor bug fixes - Allow device size mismatch to work correctly when imperial dev units are selected (#754) - fix "Disable alllayers" typo (#758) - Allow disabling G53 being emitted in Custom GCode. (#759) - Added missing unit conversion for the GoTo position inputs in the move laser widget. (#763) - Remove null-terminator from strings before using "endswith" - Machine size mismatch logic failed with swapped X/Y axis - Fixing theme related bugs reported in LightBurn 2.0 RC2. - screensaver would pause camera preview in wizards but not resume afterwards - memory leak in camera overlay - camera FPS selection list sometimes had a 0 option, and was not clearing when no camera was selected - Clarifying and updating behavior of the device size mismatch dialog (#768) - Using Go To X=0 Y=0 would not move X/Y coordinates if using non-relative movement. (#769) - Select smaller than shouldn't include locked or hidden shapes - Red-light always on wasn't triggered on connect for BSL devices - Correctly update sizing of Node Edit toolbar - Fixed preview line color visibility. - Doing a crosshair update when pressing the "Get Position" or "Go To" buttons. - Cut settings overscan value now updates correctly as overscan % spinbox value is changed. - Isolated variables when doing a simple command query instead of using the templating for custom gcode. (#778) - Image resampler wasn't handling a couple out-of-bounds cases (#786) - DEV-1187 add ratio2 to copy constructor (#785) - Hide all panels on F12 (#784) - DEV-978 resolve MM crash-on-exit. - Move the tool indicator in the edit window when jogging with buttons and not just keyboard moves. (#792) - Preview color for Traverse/Move does not match previous LightBurn versions. - Fixed issue with saving theme selection on MacOS. - Custom gcode string variables access was incorrect. - When editing an existing virtual array, need to set the shape copy callback - PointIntersectsCurve() had precision issues and could false trigger (#800) - PointIntersectsCurve had precision issues and could false trigger - Attempting to resolve the signing issue again. - Consistency check was firing when running debug builds - Display name of device was getting nuked in wizard when changing other values (#798) - bundle import would warn if the file was created by a later Major Version Number, but not Minor. - DEV-1140 distinguish between ToolState and ToolSettings in movelaserwidget. (#805) - Fixed taper warp parallelogram case, also tripled the speed - Star shapes wouldn't select if grouped and moved (#813) - Keeping the laser fire state while using the Go To button - Adding missing key adjustments for the jogging distance on Z axis - Trim tool could mangle open compound paths - Auto-Join now also tries to close shapes, Close() wasn't setting the "ClosedDirty" flag - Fixing the jogging issues for GCode machines (#782) ### Miscellaneous - Added bundle text to Import Preferences button in devices dialog - Fix zstd license typo - Emblaser Pro changes - Filter out system default serial ports on Mac OS (#616) - Added forced EULA acceptance on application start (#619) - Tool changes will be emitted if tool hash is different if not ATC - Temporarily disable dark theme until UI fixes are implemented. - Fixed typo - Title case consistency (#673) - cleanup Qt lupdate warnings - Display warning to user when configured machine size doesn't match reported machine size - Wrong app name used in crash message - Change Log now automatically downloaded and displayed to the user (#706) - Change Log now automatically downloaded and displayed to the user when a new version is available - Keep track of Imperial vs Metric mode internally (#711) - BSL Config page said EZCad - Allow full GS1 barcode support (#735) - Only allow exporting bundles from devices dialog (#730) - Allow importing bundles from devices dialog - Prevent update notification popup from showing until after new project dialog (#742) - minor tweak to self check - Save Cylinder Correction and Rotary configs to project (#745) - Remove Grbl M3 and LPC as options from Find My Laser (#757) - Remove the Emblaser specific first run popup (#755) - Update references to FTDI driver in installers - Limit installer from running on unsupporrted Windows versions - Added consistency check comments - Emit the entered license key to debug because sometimes it has incorrect characters (#817) ### Infrastructure - Separate files names for each Qt version - Split change log for each app and updated versions (#615) - memory diagnostics - memory diagnostic changes - Cancellables, camera async fixes, driver fixes - Various updates and fixes to language tooling - Added option to fix title case translations in lupdate - adding a few analysis tools for languages - Add retry logic for stupid stupid Apple notarization (#701) - Add language comment analysis command - trying to fix webp format loading for MM (#720) - Only build qt 6.5 except for dev - Fixing job Qt version setup - Fix changelog generation for new tags in type - New Qt caching method - Remove extraneous debugging from CI pipeline - Remove old Qt cache builder - Updated trial extension endpoint URL - Cleanup how Qt build types are determined - Qt changed the installer URLs :( - Current version data now stores fallback installer versions as well as min OS version (#799) - Fixing release-set-current function - Update Qt install to include Qt Creator because it was removed from default ### User Interface Updates - Move devices management tools under Laser/CNC Tools menus (#617) - Material library icons now use theme colors. - Revert Dark theme preview colors to default. ### Code Refactors - Added Shape->GetLayerPriority() function, so less code needs #ifdefs - Use new GetLayerPriority() function to avoid crashes in MM with shared code - QSVector adapted for Qt 6.5 and 6.8 - msvc linker and qt deprecation project options - remove pQCam reference - updated .pro files with Qt6 compatible MacOS build options - patched up ModelShape::GetScene for Qt6 - enabled Qt backfill camera drivers instead of WinRT - cleanup comments prior to push - Using optionals in toolstate instead of float - sync up vision classes from QtCameraTest - add /bigobj to cmake flags to fix C1128 - initial hack at cameracap to support new Vision classes - deviceChange event - added L8 and RGBA frametypes to both WinRT and AVF drivers - HTTP Cameras and mode selection - AV Video driver L8 frame type fixes - QLBFontComboBox::highlighted - compatibility and fixes for Qt5 and MM - reference to AVVisionDeviceSource - initial head mounted camera alignment wizard update - reintegration of QtCameraTest changes - explicit shutdown of camera sources - Formalizes ToolModel, ToolSettings, ToolState. Adds OriginType. - Use OriginType as part of the protocol and correct behavior of jog widgets. - Resume button wasn't always sending the resume command for gcode devices. - Migrated update checker to use Core_Download - framing now goes clockwise - all framing goes through TraceTightFrame now - remove deprecated ShowFrame methods - Material Test classes were still named for galvo even though they are now generic - CameraCap removed old ifdefs and dead branch code - Cleaned up some things as I came across them. ### Existing Feature Updates - Added Groupbox, RadioButton and Spinbox Widgets to ProtocolSettings. - Auto-init sim parameters for galvos, allow "Read from controller" (faked, but good settings) - Tweaked DXF spline simplifier to do less damage to small shapes - added variable power / constant power to XTool protocol - Restore file load was no longer happening at the right time (#659) - Restore file load was no longer happening at the right time. Consolidated code between apps - Improved performance of Warp / Deform by not rebuilding Cuts/Layers with every update - Faster Taper Warp tool update (don't redraw Cuts/Layers constantly) - Don't auto-revert to select mode for Text, add auto-switch to select mode to MM - Cleaned up a bunch of compiler warnings - Cleaned up a bunch of compiler warnings - Allow up to 5000 mm/sec for reverse interval speeds - BSL SDK update, freq limit fix (#699) - Added BSL connection message - typo fix in BSL update - BSL libraries update to stop crash on disconnect - Changes for Emblaser3 - BSL libraries update to fix unplug crash on Mac / Linux - Allow decimals in firmware filename for E3 upload - Removed old API call from BSL proto - Added missing translation context to backup browser - Added missing translation context to backup browser - tweaks to EmblaserPro menu options - Updates to initial EmblaserPro settings - EmblaserPro WIFI connect now functional - Tweaks for Emblaser3 gcode output & menu - Added support for CO2 analog output to BSL protocol - Minor Emblaser wording tweak - minor compilation speedup - Re-ordered windows in the "Window" menu to make more sense - EZCad device isn't "busy" if not connected. - Material test speed limit upped to 15k for galvos - Add support for 2nd laser source to JCZ device - Changed "set laser source" command to streamed version - Detect support for dual-source JCZ auto-switch - Sort material test swatches by "heat" output (#750) - Double click macro in manager to edit. (#762) - Offsetter can now show progress for Offset fills, faster offset sorting - Improved handling for XTool D1 with homing command - Fixed "simple mode" to not suppress galvo features, like alt source on Sculpfun - don't keep empty flattened shapes - Faster deform output for bitmaps - Updated rotary images for Boss lasers (#815) - Node edit now highlights closed paths with a bright green start/end node ### New Features - Qt6 Dark Mode and Cameras (#620) - Dark Mode - dark mode splash screen - Add Has ATC option - Add Has Tool Probe option - Added new expanding (accordion) container widget to allow for UI design with less clutter. - Automatically load the most recent prefs backup if failed to load prefs.ini on startup - Camera Preview and Capture FPS - new CameraPreferencesChanged event - case-insensitive camera ID matching - shut down active cameras when monitor is asleep - display Core or Pro in window title - decouple design units from machine units (#663) - allow setting of units during device creation (#672) - Added support for dragging between Art Libraries (#674) - Added 'Focus Light' button for BSL lasers to enable 2nd focus dot - Force Light Color Scheme for Windows Qt6 and MacOS Qt5 & Qt6 versions - Allow temporary undo/redo in Warp/Deform for movements (#679) - Added a setting to specify you have an RF tube, to disable the "min power == 0" warning. - Setting to revert back to Select mode after drawing a shape (#683) - expanded camera controls - "Choose Camera First" requirement for camera wizards - head camera alignment scaling allowed down to 1% to support microscopes over large beds - apriltag pattern generator for head camera alignment wizard - AprilTag automated head-mounted camera alignment - Reconnect the device after updating machine settings (#705) - new camera calibration process with live apriltag tracking - Application UI theme framework. Enables proper support for dark mode with white icons. - add Send to Laser option for Material Test (#738) - Allow the user to select whether a gcode device should be regularly polled for the tool position - Allow dual laser source in Custom GCode (#760) - camera control preview will now pause when the tab/window is not visible - Emblaser Pro laser focus calibration wizard - Emblaser Pro firmware upload process requires manual reset step ### Language Updates - fixing title case translations - Fix translations that should not have been marked as unfinished - reconcile some mismatched translations - update all languages - Fix wording for rubber band outline DEV-821 - Fix wording in bundle dialogs DEV-861 - Remove incorrect tool tip DEV-870 - Fix capitalization in center finder DEV-942 - Start on adding Ukrainian language - Update translations - Add Ukranian translation - Update translations