Fix an issue that on Linux the project name or model file name was not displayed in titlebar#12706
Conversation
There was a problem hiding this comment.
Pull request overview
Fixes the Linux borderless-window title display regression by ensuring the project/model name (and dirty marker) is propagated to the app’s custom top bar when the system title bar is removed.
Changes:
- Update project title handling so non-macOS platforms set the custom
BBLTopbartitle (fixing Linux title display). - Adjust platform conditionals around
SetTitle()/dirty-state updates to separate macOS behavior. - Update Linux build command documentation in
CLAUDE.md.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
src/slic3r/GUI/Plater.cpp |
Updates title/topbar title propagation for project name and dirty state, especially for Linux CSD/borderless window mode. |
CLAUDE.md |
Updates a documented Linux build command (but currently leaves another Linux build block inconsistent). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ### Building on Linux | ||
| **Always use this command to build the project when testing build issues on Linux.** | ||
| ```bash | ||
| cmake --build build/arm64 --config RelWithDebInfo --target all -- | ||
| cmake --build build --config RelWithDebInfo --target all -- | ||
|
|
There was a problem hiding this comment.
This updates the Linux build command in the second "Building on Linux" section, but there is still an earlier "Building on Linux" block (around lines 23–28) that references build/arm64. Please update/remove the duplicate section so the Linux build instructions are consistent throughout the document.
| wxGetApp().mainframe->SetTitle(title); | ||
| wxGetApp().mainframe->update_title_colour_after_set_title(); | ||
| #else | ||
| wxGetApp().mainframe->SetTitle(title); |
There was a problem hiding this comment.
In update_title_dirty_status() the non-Apple branch sets the wxFrame title to just title (e.g. *Project), which drops the " - OrcaSlicer" suffix set in set_project_name() and also changes Windows behavior now that __WINDOWS__ falls into this branch. This makes the window/taskbar title inconsistent after the dirty flag toggles. Consider keeping the suffix on non-Apple (or restoring a dedicated __WINDOWS__ branch if Windows should keep the previous behavior).
| wxGetApp().mainframe->SetTitle(title); | |
| wxGetApp().mainframe->SetTitle(title + " - OrcaSlicer"); |
* Q2C model and new consumables * Merge local changes with upstream ones * Minor tweaks * Unfix unnecessary line break * Update Qidi X-Max 4 0.4 nozzle.json * Tweak before merging upstream changes * Restore merged changes * Update Plater.cpp * Update Plater.cpp * Update Plater.cpp * update * Fix plurals on some GUI strings * Fix three regressions in the multi-tool extruder tab system: (OrcaSlicer#12680) 1. Dirty flags not showing for extruder options: 2. Crash when switching to non-first extruder tabs: 3. Modifying one extruder's parameter affects other extruders: * Fix crash when slicing multi-material print with wipe tower (OrcaSlicer#12682) The WipeTower2 code path never called construct_mesh(), leaving wipe_tower_mesh_data as std::nullopt. GCode export then dereferenced it unconditionally, triggering an assertion failure / crash. * Move adaptive flowrate to developer mode and clarified tooltip (OrcaSlicer#12688) * Set Adaptive Volumetric Speed as a developer mode setting, and further clarified in the tooltip * Fixed typo * Fix for notifications unable to be interacted after gcode viewer collapsed (OrcaSlicer#12689) JIRA-126 * Fix zoom button tooltip width miscalculation (OrcaSlicer#12692) wx strings to be converted to utf-8 before doing width calculation for consistency. JIRA-127 * Disable filament grouping button logic when when not Bambu H2D (OrcaSlicer#12693) # Description When using the Bambu H2D, users can use Filament Grouping, a button found next to the bed preview. When not on a H2D profile, the button is hidden. However, it remained usable, and clicking an empty space below all the buttons causes the dialog to appear. This PR fixes that by adding a check before the button is registered. Addresses point 9 (focusing on the 2nd bullet) in OrcaSlicer#12684 ## Tests Tried to click on the empty area right below the column of buttons (see the below images) Made sure to have the H2D profile loaded as well, and checked that the dialog still opens for that printer. H2D active <img width="1635" height="949" alt="image" src="https://github.com/user-attachments/assets/da6fb03b-e3c8-4504-ac60-b96ecc6347dc" /> Area to click for the invisible button <img width="935" height="788" alt="image" src="https://github.com/user-attachments/assets/1f001bcf-0224-4922-b5bf-47a95820e536" /> * Fix flushing windows dialog able to move around using trackpad and added esc to close dialog (OrcaSlicer#12694) Added entry to wipingdialog.html css to prevent it from being overscrollable and its position fixed. Added escape button to close dialog event on both javascript and webview events JIRA-136 * Remove leftover Bambu warning caption from dialogs (OrcaSlicer#12696) ### Description A couple of warning dialogs still used a caption containing "**BambuStudio warning**". It is a leftover from the original BambuStudio codebase. ### This PR - removes the explicit caption so the dialogs use the standard application warning title instead. ### Result - removes the remaining Bambu reference while keeping the visible behavior consistent with the rest of the UI. - addresses point 1. of "New ports from Bambu Studio" section from OrcaSlicer#12684 ### Screenshots - **Before:** <img width="1352" height="277" alt="image" src="https://github.com/user-attachments/assets/d107acaa-f159-496a-b14e-93cd149bf355" /> - **After:** <img width="1356" height="278" alt="image" src="https://github.com/user-attachments/assets/e111b5b3-9b3e-4b13-b20d-f98e5173ea16" /> * Added check for esc key to close dialog (OrcaSlicer#12697) Added wx event for esc to close dialog for filament grouping dialog JIRA-139 * Fix conversion to wxstring (OrcaSlicer#12698) Fix obj import dialog encoding for non ASCII letters by making the correct conversion to wxstring JIRA-137 * Update translate CZ (OrcaSlicer#12640) Translation added # Description <!-- > Please provide a summary of the changes made in this PR. Include details such as: > * What issue does this PR address or fix? > * What new features or enhancements does this PR introduce? > * Are there any breaking changes or dependencies that need to be considered? --> # Screenshots/Recordings/Graphs <!-- > Please attach relevant screenshots to showcase the UI changes. > Please attach images that can help explain the changes. --> ## Tests <!-- > Please describe the tests that you have conducted to verify the changes made in this PR. --> * Translate more pt-BR strings (OrcaSlicer#12664) # Description Ditto * Added eSUN Filament PLA Basic, Marble, Matte (OrcaSlicer#12657) # Description <!-- > Please provide a summary of the changes made in this PR. Include details such as: > * What issue does this PR address or fix? > * What new features or enhancements does this PR introduce? > * Are there any breaking changes or dependencies that need to be considered? --> Added eSUN Filament PLA Basic, Marble, Matte to Orca Filament Library <img width="811" height="331" alt="image" src="https://github.com/user-attachments/assets/5cda8b59-cd44-4e32-bae0-d08d2346dd39" /> ## Tests <!-- > Please describe the tests that you have conducted to verify the changes made in this PR. --> ``` ./OrcaSlicer_profile_validator -v eSUN Total loaded vendors: 1 Validation completed successfully ``` * feat: add Creality K2 Support (OrcaSlicer#12662) * feat: add K2 support * fix: remove k2 pro from k2 process json * fix: set correct start gcodes for the nozzles * Update HU language (OrcaSlicer#12686) HU language update * fix: round flush_volumes_matrix values to integers (OrcaSlicer#12672) When flush_multiplier is applied to flush_volumes_matrix values, the result can be a decimal (e.g., 272 * 1.3 = 353.6). Some printer firmware metadata parsers (notably Creality K2) crash when parsing decimal values in flush_volumes_matrix, causing prints to get stuck at "File selected". This fix rounds the multiplied values to integers, ensuring compatibility with firmware that expects integer values in this field. Fixes compatibility with Creality K2 and potentially other Klipper-based printers that parse the CONFIG_BLOCK metadata. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <[email protected]> * Standardize strings (OrcaSlicer#12665) * Standardize view actions * Standardize the term for "first layer" --------- Co-authored-by: SoftFever <[email protected]> * Some QoL tweaks (OrcaSlicer#12700) * 1. Calculate `FilamentTempType` based on `filament_info.json`, with a fallback to the temperature range. 2. Clean up some strings. * Update src/slic3r/GUI/ObjColorDialog.cpp Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Add support for esthetic filament sub-types in Snapmaker Printer Agent (OrcaSlicer#12699) # Description Esthetic filaments such as wood-infused, matte and marble filaments will now be handled by the Snapmaker printer agent so that they could be matched to more appropriate print profiles instead of generic PLA. * update * Fix errors OrcaSlicer_cs.po (OrcaSlicer#12701) * Optimize linux experience (OrcaSlicer#12705) * optimize resize feature on Linux * fix the black screen issue on app startup on Linux * Fixed an issue that Filament Grouping dialog always popup on Linux * Fix an issue that on Linux the project name or model file name was not displayed in titlebar (OrcaSlicer#12706) * optimize resize feature on Linux * fix the black screen issue on app startup on Linux * Fixed an issue that Filament Grouping dialog always popup on Linux * Fix an issue that on Linux the project name or model file name was not displayed in title bar * QoL: Default values in tooltips for Percent, FloatOrPercent, String and Bool options (OrcaSlicer#12508) QoL: Default values in tooltips for Percent, String and Bool options * FIX: hidden Line Type Linux (OrcaSlicer#12364) Fix(GCodeViewer): Resolve z-fighting for wipe, seam, and retract markers using shader depth bias Co-authored-by: SoftFever <[email protected]> * QoL: Fix hotkeys blocked in Prepare view when notification is shown (OrcaSlicer#12715) Fix hotkeys blocked in Prepare view when notification is shown Restore SetFocus() in the GLCanvas3D mouse-entering handler so the canvas reclaims wxWidget keyboard focus whenever the mouse enters it (provided the main window is active). Without this, clicking a sidebar control or a UI update triggered by slicing could leave the canvas without focus, causing hotkeys like Tab to stop working until the user clicked the canvas or dismissed the notification. * Update Qidi X-Max 4 0.4 nozzle.json * Remove duplicate items from actual speed plot (OrcaSlicer#12711) * init * update * Fix: Added a warning if the Hollow base pattern is selected for the non-tree supports (OrcaSlicer#12710) Fixes point 4 of OrcaSlicer#12684 * Calibration dialog Fixes (incorrect validators, scaling issues, UI refinements) (OrcaSlicer#12702) * Update calib_dlg.cpp * match validators * update * add missing linebreak * update * VOLUMIC profils update (OrcaSlicer#12721) * VOLUMIC profils updates * Delete resources/profiles/Volumic/EXO42 IDRE_cover.png * VOLUMIC profils updates * VOLUMIC profils updates * Profils bug fix * VOLUMIC profils updates * Fix SC2 Stage 2 * Update Volumic.json * Update BBLTopbar.cpp * Fixes * update * Fix GIT_COMMIT_HASH not set in Flatpak builds (OrcaSlicer#12725) The env var check was gated inside the .git directory check, so Flatpak builds (which exclude .git from the sandbox) always fell back to "0000000". Lift the env var check to top level and inject the commit hash into the Flatpak manifest via build-options.env. * Feature/flatpak clang llvm21 (OrcaSlicer#12727) * Fix GIT_COMMIT_HASH not set in Flatpak builds The env var check was gated inside the .git directory check, so Flatpak builds (which exclude .git from the sandbox) always fell back to "0000000". Lift the env var check to top level and inject the commit hash into the Flatpak manifest via build-options.env. * Switch Flatpak build to Clang/LLD via LLVM 21 SDK extension - Add org.freedesktop.Sdk.Extension.llvm21 - Bump runtime to GNOME 49 (SDK 25.08) for llvm21 availability * fix build errors and improving build speed for flatpak * fxi more build errors * Update error messages for GNOME Platform and SDK versions * Update OrcaSlicer_ru.po * fix shaky text while resizing * simplify solution * Update Qidi X-Max 4 0.4 nozzle.json (OrcaSlicer#12716) Update Qidi X-Max 4 0.4 nozzle.json * Update BBLTopbar.cpp * fix flatpak build (OrcaSlicer#12738) remove duplicated code * Update CC2 Profiles from elegoo slicer (OrcaSlicer#12215) * Fix CLI segfault (SIGSEGV) when using --info, --slice, or --export-3mf (OrcaSlicer#12719) In CLI mode, PartPlateList is constructed with a NULL plater pointer (OrcaSlicer.cpp:3612). When set_shapes() calls PartPlate::set_shape(), it unconditionally executes render data preparation code that dereferences the null plater through calls like generate_print_polygon() → wxGetApp().plater(), causing a segmentation fault (exit code 139). This adds a null check on m_plater in PartPlate::set_shape() to skip the render-only code block that generates logo triangles, print/exclude polygons, gridlines, icon vertices, and plate name textures. These rendering operations are not needed in CLI mode and this change has no impact on GUI mode where m_plater is always valid. * Feature/fix crash on linux when clicking assemble feature (OrcaSlicer#12739) * fix crash on Linux when clicking Assemble gizmo * some qol changes for dev * Revert "some qol changes for dev" This reverts commit ffe3213. * Update calib_dlg.cpp * Update calib_dlg.cpp * Update OrcaSlicer_ru.po * Add the filament id for the box of the Generic PC * FIX: Divide by zero exception in `InterlockingGenerator` when invalid configuration parameters are used. (fixes bambulab/BambuStudio#9910 ) (cherry picked from commit cdd60ab71f8a3895fcb1345b2ccc2f2f472bf968) * chore: translate comment for ignoring truncating casts warning * Allow cancellation during beam interlocking generation * Disable arc fitting for Qidi processes Qidi printers run Klipper and we don't want arc fitting enabled for these. * Skip top surfaces with non-positive density Add a guard that skips creating fill params for top surfaces when the configured density is less than or equal to zero. This avoids generating surface fills for zero/negative densities and prevents unnecessary processing or potential errors when top surface density is disabled. * Fix crash in DiffPresetDialog::update_tree() on preset selection change (OrcaSlicer#12765) std::map::at() throws std::out_of_range when option.category or "Basic information" is not present in the tab's category_icon_map, crashing the app. Replace with a safe find()-based helper lambda that falls back to an empty string (no icon) when the key is missing. * Fix non-bbl printer filament grouping by mapping all filaments/tools to group 0 (OrcaSlicer#12449, OrcaSlicer#12766) * init * fix compacting when app open with home tab * Flow ratio instead flow rate calib * feat: swap the mmu detection to prefer the more generic moonraker database Happy Hare now writes mmu lane data to the moonraker db similar to AFC, so we can normalize to the one implementation. For now, i've just re-ordered it so that the moonraker db is checked first. I want this because I've actually updated the happy hare data to include more data than we had access to via the "mmu" object. For happy hare we now have access to vendor name, which we can eventually use to further fine tune the auto-matched filament preset. * Fix wipe tower placed outside bed boundary on first slice The wipe tower config position (wipe_tower_x/y) could be outside the plate boundary (e.g. default y=250 on a 200mm printer). No constraint was applied at slice time, so the tower was generated out-of-bounds. * Add wipe_tower_type printer setting to replace vendor-based wipe tower selection Previously, wipe tower behavior was determined by checking if the printer was a QIDI vendor. This introduces a configurable enum (Type 1 / Type 2) so any printer can select its wipe tower implementation. BBL printers remain hardcoded to Type 1. Qidi profiles default to Type 1. * Fix Flatpak missing locale support (OrcaSlicer#12714) Add the localization/ directory to the Flatpak source list so run_gettext.sh can compile .po files into .mo translations. Replace LC_ALL=C.UTF-8 with LC_NUMERIC=C in the entrypoint script to preserve the user's language settings while still preventing decimal-separator parsing issues. * fix crash when opening preference dialog * small tweak of the script to support Mac * Fix PR comment posting for fork contributors by splitting into two workflows The check_profiles workflow used gh pr comment directly, which fails for fork PRs due to read-only GITHUB_TOKEN. Split into artifact upload + workflow_run pattern so comments post with proper write permissions. * Update HU language Update HU language after the adjustments of OrcaSlicer#12681. * small tweak * update * Add FILL3D PLA Turbo filament profile to OrcaFilamentLibrary * Update OrcaSlicer_ru.po * Revert "Fix wipe tower placed outside bed boundary on first slice (OrcaSlicer#12777)" This reverts commit 494601e, reversing changes made to d28e964. * Revert "Fix wipe tower loaded outside of plate boundaries (OrcaSlicer#12191)" This reverts commit e14e186. * revist fixes for wipe tower pos issues * Skip flushing volume validation for multi-tool printers Flushing volumes only apply to SEMM and BBL printers. Multi-tool printers don't perform filament purging between tool changes, so the zero-volume warning was being incorrectly triggered. * check precise_z_height and enable_prime_tower conflicts in print validate * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Extend self-hosted runner support to all platforms * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Revert "Extend self-hosted runner support to all platforms" * CMake: Accept ignored prefixes from build_release_macos.sh Defaults to ignore: /opt/local (MacPorts) /opt/homebrew (Homebrew on ARM) /opt/local (Homebrew on x86) We want to ignore these paths so any dependencies they might contain don't interfere with the build. This fixes OrcaSlicer#10460 * Revert "Revert "Extend self-hosted runner support to all platforms" (OrcaSlicer#12827)" This reverts commit f2eab54, reversing changes made to 7565b27. * fix errors * update cmake to 4.3.x * minor change * skip flatpak arm64 for self hosted runners * tweak * clean * skip flatpak * use clang and lld * use different cache key for linux clang * respect clang flag for all deps * print build time * simplify mac download * Security fix: path traversal in 3MF import (OrcaSlicer#12860) * Update TURKISH translations (OrcaSlicer#12838) * Update TURKISH translations * Update TURKISH translations * Update error Czech translations in OrcaSlicer_cs.po (OrcaSlicer#12641) Thanks * Follow-up for PR OrcaSlicer#12773 (OrcaSlicer#12800) Adapt language files to PR OrcaSlicer#12773 - Language files are adapated for the new msgid from PR OrcaSlicer#12773 - changes from PR OrcaSlicer#12773 applied to APPLE build also * feat: add winget_updater github action (OrcaSlicer#12807) Co-authored-by: SoftFever <[email protected]> * update locale and complete some missing translations for some language(AI) * fixed an issue that some translations are not used * Attempt to fix OrcaSlicer_zh_TW.po (OrcaSlicer#12867) * New de translation (OrcaSlicer#12875) * Aktualisiere deutsche Übersetzungen in der i18n-Datei für bessere Klarheit und Konsistenz * Update German localization for OrcaSlicer - Improved translations for various messages, ensuring clarity and consistency. - Corrected terminology for technical terms such as "flow ratio" and "emboss text object." - Adjusted phrasing for better readability and grammatical accuracy. - Removed redundant or unclear phrases to streamline user experience. - Added new entries for warnings and notifications related to printer operations. * typo * update flatpak app id and add migration code (OrcaSlicer#12879) * update flatpak app id and add migration code * tweak some text * Optimised for the Artillery M1 Pro printer (OrcaSlicer#12885) * Optimised for the Artillery M1 Pro printer * tidy up --------- Co-authored-by: SoftFever <[email protected]> * Set exclude objects to enabled by default to support dynamic MBL (OrcaSlicer#12869) Set exclude objects to enabled by default to support dynamic mesh bed leveling. * Add Anet A8 Plus (OrcaSlicer#12792) * Add Anet A8 Plus support because the folks in OrcaSlicer didn't * Fix the structure also import the orca_printer file to get the process * asdsadasd * tidy up and bump profile version (OrcaSlicer#12889) * tidy up and bump profile version * fix error * tidy up * fix * tide up more * fix errors * fix more errors --------- Co-authored-by: HYzd766 <[email protected]> Co-authored-by: HYzd766 <[email protected]> Co-authored-by: Felix14_v2 <[email protected]> Co-authored-by: yw4z <[email protected]> Co-authored-by: Alexandre Folle de Menezes <[email protected]> Co-authored-by: SoftFever <[email protected]> Co-authored-by: Sabriel-Koh <[email protected]> Co-authored-by: Derrick <[email protected]> Co-authored-by: Kiss Lorand <[email protected]> Co-authored-by: Jakub Hencl <[email protected]> Co-authored-by: Schildkroet <[email protected]> Co-authored-by: Olof Larsson <[email protected]> Co-authored-by: Claude <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: gaaat98 <[email protected]> Co-authored-by: Rodrigo Faselli <[email protected]> Co-authored-by: Valerii Bokhan <[email protected]> Co-authored-by: tome9111991 <[email protected]> Co-authored-by: VOLUMIC <[email protected]> Co-authored-by: TheLegendTubaGuy <[email protected]> Co-authored-by: Niccolo <[email protected]> Co-authored-by: Max Paperno <[email protected]> Co-authored-by: Bent Hillerkus <[email protected]> Co-authored-by: Noisyfox <[email protected]> Co-authored-by: TheLegendTubaGuy <[email protected]> Co-authored-by: Branden Cash <[email protected]> Co-authored-by: kisslorand <[email protected]> Co-authored-by: julianramirezarango-source <[email protected]> Co-authored-by: Felix14_v2 <[email protected]> Co-authored-by: Kevin J. Lynagh <[email protected]> Co-authored-by: GlauTech <[email protected]> Co-authored-by: Alessio Tudisco <[email protected]> Co-authored-by: Heiko Liebscher <[email protected]> Co-authored-by: liuyingmo <[email protected]> Co-authored-by: liutang <[email protected]> Co-authored-by: Ezzeldin Ahmed <[email protected]>
On Windows, opening a model file while OrcaSlicer is already running could fail when single-instance mode was enabled. The second launch correctly detected that another instance already existed, but it could no longer find the running main window to forward the file-open request. As a result, the new process exited and the file was dropped. This happened because the existing-instance lookup depended on the native window title containing "OrcaSlicer". After the titlebar change from OrcaSlicer#12706, the title may contain only the project name, so the running instance was no longer discoverable that way. Fix this by identifying the existing main window through stable window properties instead of title text: - require the expected wxWidgets window class - require the instance hash properties to exist - match against the current instance hash This restores forwarding of externally opened files to the already-running instance without depending on the current titlebar text.
On Windows, opening a model file while OrcaSlicer is already running could fail when single-instance mode was enabled. The second launch correctly detected that another instance already existed, but it could no longer find the running main window to forward the file-open request. As a result, the new process exited and the file was dropped. This happened because the existing-instance lookup depended on the native window title containing "OrcaSlicer". After the titlebar change from OrcaSlicer#12706, the title may contain only the project name, so the running instance was no longer discoverable that way. Fix this by identifying the existing main window through stable window properties instead of title text: - require the expected wxWidgets window class - require the instance hash properties to exist - match against the current instance hash This restores forwarding of externally opened files to the already-running instance without depending on the current titlebar text.
On Windows, opening a model file while OrcaSlicer is already running could fail when single-instance mode was enabled. The second launch correctly detected that another instance already existed, but it could no longer find the running main window to forward the file-open request. As a result, the new process exited and the file was dropped. This happened because the existing-instance lookup depended on the native window title containing "OrcaSlicer". After the titlebar change from OrcaSlicer#12706, the title may contain only the project name, so the running instance was no longer discoverable that way. Fix this by identifying the existing main window through stable window properties instead of title text: - require the expected wxWidgets window class - require the instance hash properties to exist - match against the current instance hash This restores forwarding of externally opened files to the already-running instance without depending on the current titlebar text.
On Windows, opening a model file while OrcaSlicer is already running could fail when single-instance mode was enabled. The second launch correctly detected that another instance already existed, but it could no longer find the running main window to forward the file-open request. As a result, the new process exited and the file was dropped. This happened because the existing-instance lookup depended on the native window title containing "OrcaSlicer". After the titlebar change from OrcaSlicer#12706, the title may contain only the project name, so the running instance was no longer discoverable that way. Fix this by identifying the existing main window through stable window properties instead of title text: - require the expected wxWidgets window class - require the instance hash properties to exist - match against the current instance hash This restores forwarding of externally opened files to the already-running instance without depending on the current titlebar text.
* Q2C model and new consumables * Merge local changes with upstream ones * Minor tweaks * Unfix unnecessary line break * Update Qidi X-Max 4 0.4 nozzle.json * Tweak before merging upstream changes * Restore merged changes * Update Plater.cpp * Update Plater.cpp * Update Plater.cpp * update * Fix plurals on some GUI strings * Fix three regressions in the multi-tool extruder tab system: (OrcaSlicer#12680) 1. Dirty flags not showing for extruder options: 2. Crash when switching to non-first extruder tabs: 3. Modifying one extruder's parameter affects other extruders: * Fix crash when slicing multi-material print with wipe tower (OrcaSlicer#12682) The WipeTower2 code path never called construct_mesh(), leaving wipe_tower_mesh_data as std::nullopt. GCode export then dereferenced it unconditionally, triggering an assertion failure / crash. * Move adaptive flowrate to developer mode and clarified tooltip (OrcaSlicer#12688) * Set Adaptive Volumetric Speed as a developer mode setting, and further clarified in the tooltip * Fixed typo * Fix for notifications unable to be interacted after gcode viewer collapsed (OrcaSlicer#12689) JIRA-126 * Fix zoom button tooltip width miscalculation (OrcaSlicer#12692) wx strings to be converted to utf-8 before doing width calculation for consistency. JIRA-127 * Disable filament grouping button logic when when not Bambu H2D (OrcaSlicer#12693) # Description When using the Bambu H2D, users can use Filament Grouping, a button found next to the bed preview. When not on a H2D profile, the button is hidden. However, it remained usable, and clicking an empty space below all the buttons causes the dialog to appear. This PR fixes that by adding a check before the button is registered. Addresses point 9 (focusing on the 2nd bullet) in OrcaSlicer#12684 ## Tests Tried to click on the empty area right below the column of buttons (see the below images) Made sure to have the H2D profile loaded as well, and checked that the dialog still opens for that printer. H2D active <img width="1635" height="949" alt="image" src="https://github.com/user-attachments/assets/da6fb03b-e3c8-4504-ac60-b96ecc6347dc" /> Area to click for the invisible button <img width="935" height="788" alt="image" src="https://github.com/user-attachments/assets/1f001bcf-0224-4922-b5bf-47a95820e536" /> * Fix flushing windows dialog able to move around using trackpad and added esc to close dialog (OrcaSlicer#12694) Added entry to wipingdialog.html css to prevent it from being overscrollable and its position fixed. Added escape button to close dialog event on both javascript and webview events JIRA-136 * Remove leftover Bambu warning caption from dialogs (OrcaSlicer#12696) ### Description A couple of warning dialogs still used a caption containing "**BambuStudio warning**". It is a leftover from the original BambuStudio codebase. ### This PR - removes the explicit caption so the dialogs use the standard application warning title instead. ### Result - removes the remaining Bambu reference while keeping the visible behavior consistent with the rest of the UI. - addresses point 1. of "New ports from Bambu Studio" section from OrcaSlicer#12684 ### Screenshots - **Before:** <img width="1352" height="277" alt="image" src="https://github.com/user-attachments/assets/d107acaa-f159-496a-b14e-93cd149bf355" /> - **After:** <img width="1356" height="278" alt="image" src="https://github.com/user-attachments/assets/e111b5b3-9b3e-4b13-b20d-f98e5173ea16" /> * Added check for esc key to close dialog (OrcaSlicer#12697) Added wx event for esc to close dialog for filament grouping dialog JIRA-139 * Fix conversion to wxstring (OrcaSlicer#12698) Fix obj import dialog encoding for non ASCII letters by making the correct conversion to wxstring JIRA-137 * Update translate CZ (OrcaSlicer#12640) Translation added # Description <!-- > Please provide a summary of the changes made in this PR. Include details such as: > * What issue does this PR address or fix? > * What new features or enhancements does this PR introduce? > * Are there any breaking changes or dependencies that need to be considered? --> # Screenshots/Recordings/Graphs <!-- > Please attach relevant screenshots to showcase the UI changes. > Please attach images that can help explain the changes. --> ## Tests <!-- > Please describe the tests that you have conducted to verify the changes made in this PR. --> * Translate more pt-BR strings (OrcaSlicer#12664) # Description Ditto * Added eSUN Filament PLA Basic, Marble, Matte (OrcaSlicer#12657) # Description <!-- > Please provide a summary of the changes made in this PR. Include details such as: > * What issue does this PR address or fix? > * What new features or enhancements does this PR introduce? > * Are there any breaking changes or dependencies that need to be considered? --> Added eSUN Filament PLA Basic, Marble, Matte to Orca Filament Library <img width="811" height="331" alt="image" src="https://github.com/user-attachments/assets/5cda8b59-cd44-4e32-bae0-d08d2346dd39" /> ## Tests <!-- > Please describe the tests that you have conducted to verify the changes made in this PR. --> ``` ./OrcaSlicer_profile_validator -v eSUN Total loaded vendors: 1 Validation completed successfully ``` * feat: add Creality K2 Support (OrcaSlicer#12662) * feat: add K2 support * fix: remove k2 pro from k2 process json * fix: set correct start gcodes for the nozzles * Update HU language (OrcaSlicer#12686) HU language update * fix: round flush_volumes_matrix values to integers (OrcaSlicer#12672) When flush_multiplier is applied to flush_volumes_matrix values, the result can be a decimal (e.g., 272 * 1.3 = 353.6). Some printer firmware metadata parsers (notably Creality K2) crash when parsing decimal values in flush_volumes_matrix, causing prints to get stuck at "File selected". This fix rounds the multiplied values to integers, ensuring compatibility with firmware that expects integer values in this field. Fixes compatibility with Creality K2 and potentially other Klipper-based printers that parse the CONFIG_BLOCK metadata. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <[email protected]> * Standardize strings (OrcaSlicer#12665) * Standardize view actions * Standardize the term for "first layer" --------- Co-authored-by: SoftFever <[email protected]> * Some QoL tweaks (OrcaSlicer#12700) * 1. Calculate `FilamentTempType` based on `filament_info.json`, with a fallback to the temperature range. 2. Clean up some strings. * Update src/slic3r/GUI/ObjColorDialog.cpp Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Add support for esthetic filament sub-types in Snapmaker Printer Agent (OrcaSlicer#12699) # Description Esthetic filaments such as wood-infused, matte and marble filaments will now be handled by the Snapmaker printer agent so that they could be matched to more appropriate print profiles instead of generic PLA. * update * Fix errors OrcaSlicer_cs.po (OrcaSlicer#12701) * Optimize linux experience (OrcaSlicer#12705) * optimize resize feature on Linux * fix the black screen issue on app startup on Linux * Fixed an issue that Filament Grouping dialog always popup on Linux * Fix an issue that on Linux the project name or model file name was not displayed in titlebar (OrcaSlicer#12706) * optimize resize feature on Linux * fix the black screen issue on app startup on Linux * Fixed an issue that Filament Grouping dialog always popup on Linux * Fix an issue that on Linux the project name or model file name was not displayed in title bar * QoL: Default values in tooltips for Percent, FloatOrPercent, String and Bool options (OrcaSlicer#12508) QoL: Default values in tooltips for Percent, String and Bool options * FIX: hidden Line Type Linux (OrcaSlicer#12364) Fix(GCodeViewer): Resolve z-fighting for wipe, seam, and retract markers using shader depth bias Co-authored-by: SoftFever <[email protected]> * QoL: Fix hotkeys blocked in Prepare view when notification is shown (OrcaSlicer#12715) Fix hotkeys blocked in Prepare view when notification is shown Restore SetFocus() in the GLCanvas3D mouse-entering handler so the canvas reclaims wxWidget keyboard focus whenever the mouse enters it (provided the main window is active). Without this, clicking a sidebar control or a UI update triggered by slicing could leave the canvas without focus, causing hotkeys like Tab to stop working until the user clicked the canvas or dismissed the notification. * Update Qidi X-Max 4 0.4 nozzle.json * Remove duplicate items from actual speed plot (OrcaSlicer#12711) * init * update * Fix: Added a warning if the Hollow base pattern is selected for the non-tree supports (OrcaSlicer#12710) Fixes point 4 of OrcaSlicer#12684 * Calibration dialog Fixes (incorrect validators, scaling issues, UI refinements) (OrcaSlicer#12702) * Update calib_dlg.cpp * match validators * update * add missing linebreak * update * VOLUMIC profils update (OrcaSlicer#12721) * VOLUMIC profils updates * Delete resources/profiles/Volumic/EXO42 IDRE_cover.png * VOLUMIC profils updates * VOLUMIC profils updates * Profils bug fix * VOLUMIC profils updates * Fix SC2 Stage 2 * Update Volumic.json * Update BBLTopbar.cpp * Fixes * update * Fix GIT_COMMIT_HASH not set in Flatpak builds (OrcaSlicer#12725) The env var check was gated inside the .git directory check, so Flatpak builds (which exclude .git from the sandbox) always fell back to "0000000". Lift the env var check to top level and inject the commit hash into the Flatpak manifest via build-options.env. * Feature/flatpak clang llvm21 (OrcaSlicer#12727) * Fix GIT_COMMIT_HASH not set in Flatpak builds The env var check was gated inside the .git directory check, so Flatpak builds (which exclude .git from the sandbox) always fell back to "0000000". Lift the env var check to top level and inject the commit hash into the Flatpak manifest via build-options.env. * Switch Flatpak build to Clang/LLD via LLVM 21 SDK extension - Add org.freedesktop.Sdk.Extension.llvm21 - Bump runtime to GNOME 49 (SDK 25.08) for llvm21 availability * fix build errors and improving build speed for flatpak * fxi more build errors * Update error messages for GNOME Platform and SDK versions * Update OrcaSlicer_ru.po * fix shaky text while resizing * simplify solution * Update Qidi X-Max 4 0.4 nozzle.json (OrcaSlicer#12716) Update Qidi X-Max 4 0.4 nozzle.json * Update BBLTopbar.cpp * fix flatpak build (OrcaSlicer#12738) remove duplicated code * Update CC2 Profiles from elegoo slicer (OrcaSlicer#12215) * Fix CLI segfault (SIGSEGV) when using --info, --slice, or --export-3mf (OrcaSlicer#12719) In CLI mode, PartPlateList is constructed with a NULL plater pointer (OrcaSlicer.cpp:3612). When set_shapes() calls PartPlate::set_shape(), it unconditionally executes render data preparation code that dereferences the null plater through calls like generate_print_polygon() → wxGetApp().plater(), causing a segmentation fault (exit code 139). This adds a null check on m_plater in PartPlate::set_shape() to skip the render-only code block that generates logo triangles, print/exclude polygons, gridlines, icon vertices, and plate name textures. These rendering operations are not needed in CLI mode and this change has no impact on GUI mode where m_plater is always valid. * Feature/fix crash on linux when clicking assemble feature (OrcaSlicer#12739) * fix crash on Linux when clicking Assemble gizmo * some qol changes for dev * Revert "some qol changes for dev" This reverts commit ffe3213. * Update calib_dlg.cpp * Update calib_dlg.cpp * Update OrcaSlicer_ru.po * Add the filament id for the box of the Generic PC * FIX: Divide by zero exception in `InterlockingGenerator` when invalid configuration parameters are used. (fixes bambulab/BambuStudio#9910 ) (cherry picked from commit cdd60ab71f8a3895fcb1345b2ccc2f2f472bf968) * chore: translate comment for ignoring truncating casts warning * Allow cancellation during beam interlocking generation * Disable arc fitting for Qidi processes Qidi printers run Klipper and we don't want arc fitting enabled for these. * Skip top surfaces with non-positive density Add a guard that skips creating fill params for top surfaces when the configured density is less than or equal to zero. This avoids generating surface fills for zero/negative densities and prevents unnecessary processing or potential errors when top surface density is disabled. * Fix crash in DiffPresetDialog::update_tree() on preset selection change (OrcaSlicer#12765) std::map::at() throws std::out_of_range when option.category or "Basic information" is not present in the tab's category_icon_map, crashing the app. Replace with a safe find()-based helper lambda that falls back to an empty string (no icon) when the key is missing. * Fix non-bbl printer filament grouping by mapping all filaments/tools to group 0 (OrcaSlicer#12449, OrcaSlicer#12766) * init * fix compacting when app open with home tab * Flow ratio instead flow rate calib * feat: swap the mmu detection to prefer the more generic moonraker database Happy Hare now writes mmu lane data to the moonraker db similar to AFC, so we can normalize to the one implementation. For now, i've just re-ordered it so that the moonraker db is checked first. I want this because I've actually updated the happy hare data to include more data than we had access to via the "mmu" object. For happy hare we now have access to vendor name, which we can eventually use to further fine tune the auto-matched filament preset. * Fix wipe tower placed outside bed boundary on first slice The wipe tower config position (wipe_tower_x/y) could be outside the plate boundary (e.g. default y=250 on a 200mm printer). No constraint was applied at slice time, so the tower was generated out-of-bounds. * Add wipe_tower_type printer setting to replace vendor-based wipe tower selection Previously, wipe tower behavior was determined by checking if the printer was a QIDI vendor. This introduces a configurable enum (Type 1 / Type 2) so any printer can select its wipe tower implementation. BBL printers remain hardcoded to Type 1. Qidi profiles default to Type 1. * Fix Flatpak missing locale support (OrcaSlicer#12714) Add the localization/ directory to the Flatpak source list so run_gettext.sh can compile .po files into .mo translations. Replace LC_ALL=C.UTF-8 with LC_NUMERIC=C in the entrypoint script to preserve the user's language settings while still preventing decimal-separator parsing issues. * fix crash when opening preference dialog * small tweak of the script to support Mac * Fix PR comment posting for fork contributors by splitting into two workflows The check_profiles workflow used gh pr comment directly, which fails for fork PRs due to read-only GITHUB_TOKEN. Split into artifact upload + workflow_run pattern so comments post with proper write permissions. * Update HU language Update HU language after the adjustments of OrcaSlicer#12681. * small tweak * update * Add FILL3D PLA Turbo filament profile to OrcaFilamentLibrary * Update OrcaSlicer_ru.po * Revert "Fix wipe tower placed outside bed boundary on first slice (OrcaSlicer#12777)" This reverts commit 494601e, reversing changes made to d28e964. * Revert "Fix wipe tower loaded outside of plate boundaries (OrcaSlicer#12191)" This reverts commit e14e186. * revist fixes for wipe tower pos issues * Skip flushing volume validation for multi-tool printers Flushing volumes only apply to SEMM and BBL printers. Multi-tool printers don't perform filament purging between tool changes, so the zero-volume warning was being incorrectly triggered. * check precise_z_height and enable_prime_tower conflicts in print validate * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Extend self-hosted runner support to all platforms * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Revert "Extend self-hosted runner support to all platforms" * CMake: Accept ignored prefixes from build_release_macos.sh Defaults to ignore: /opt/local (MacPorts) /opt/homebrew (Homebrew on ARM) /opt/local (Homebrew on x86) We want to ignore these paths so any dependencies they might contain don't interfere with the build. This fixes OrcaSlicer#10460 * Revert "Revert "Extend self-hosted runner support to all platforms" (OrcaSlicer#12827)" This reverts commit f2eab54, reversing changes made to 7565b27. * fix errors * update cmake to 4.3.x * minor change * skip flatpak arm64 for self hosted runners * tweak * clean * skip flatpak * use clang and lld * use different cache key for linux clang * respect clang flag for all deps * print build time * simplify mac download * Security fix: path traversal in 3MF import (OrcaSlicer#12860) * Update TURKISH translations (OrcaSlicer#12838) * Update TURKISH translations * Update TURKISH translations * Update error Czech translations in OrcaSlicer_cs.po (OrcaSlicer#12641) Thanks * Follow-up for PR OrcaSlicer#12773 (OrcaSlicer#12800) Adapt language files to PR OrcaSlicer#12773 - Language files are adapated for the new msgid from PR OrcaSlicer#12773 - changes from PR OrcaSlicer#12773 applied to APPLE build also * feat: add winget_updater github action (OrcaSlicer#12807) Co-authored-by: SoftFever <[email protected]> * update locale and complete some missing translations for some language(AI) * fixed an issue that some translations are not used * Attempt to fix OrcaSlicer_zh_TW.po (OrcaSlicer#12867) * New de translation (OrcaSlicer#12875) * Aktualisiere deutsche Übersetzungen in der i18n-Datei für bessere Klarheit und Konsistenz * Update German localization for OrcaSlicer - Improved translations for various messages, ensuring clarity and consistency. - Corrected terminology for technical terms such as "flow ratio" and "emboss text object." - Adjusted phrasing for better readability and grammatical accuracy. - Removed redundant or unclear phrases to streamline user experience. - Added new entries for warnings and notifications related to printer operations. * typo * update flatpak app id and add migration code (OrcaSlicer#12879) * update flatpak app id and add migration code * tweak some text * Optimised for the Artillery M1 Pro printer (OrcaSlicer#12885) * Optimised for the Artillery M1 Pro printer * tidy up --------- Co-authored-by: SoftFever <[email protected]> * Set exclude objects to enabled by default to support dynamic MBL (OrcaSlicer#12869) Set exclude objects to enabled by default to support dynamic mesh bed leveling. * Add Anet A8 Plus (OrcaSlicer#12792) * Add Anet A8 Plus support because the folks in OrcaSlicer didn't * Fix the structure also import the orca_printer file to get the process * asdsadasd * tidy up and bump profile version (OrcaSlicer#12889) * tidy up and bump profile version * fix error * tidy up * fix * tide up more * fix errors * fix more errors * bump version to 2.3.2 --------- Co-authored-by: HYzd766 <[email protected]> Co-authored-by: HYzd766 <[email protected]> Co-authored-by: Felix14_v2 <[email protected]> Co-authored-by: yw4z <[email protected]> Co-authored-by: Alexandre Folle de Menezes <[email protected]> Co-authored-by: SoftFever <[email protected]> Co-authored-by: Sabriel-Koh <[email protected]> Co-authored-by: Derrick <[email protected]> Co-authored-by: Kiss Lorand <[email protected]> Co-authored-by: Jakub Hencl <[email protected]> Co-authored-by: Schildkroet <[email protected]> Co-authored-by: Olof Larsson <[email protected]> Co-authored-by: Claude <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: gaaat98 <[email protected]> Co-authored-by: Rodrigo Faselli <[email protected]> Co-authored-by: Valerii Bokhan <[email protected]> Co-authored-by: tome9111991 <[email protected]> Co-authored-by: VOLUMIC <[email protected]> Co-authored-by: TheLegendTubaGuy <[email protected]> Co-authored-by: Niccolo <[email protected]> Co-authored-by: Max Paperno <[email protected]> Co-authored-by: Bent Hillerkus <[email protected]> Co-authored-by: Noisyfox <[email protected]> Co-authored-by: TheLegendTubaGuy <[email protected]> Co-authored-by: Branden Cash <[email protected]> Co-authored-by: kisslorand <[email protected]> Co-authored-by: julianramirezarango-source <[email protected]> Co-authored-by: Felix14_v2 <[email protected]> Co-authored-by: Kevin J. Lynagh <[email protected]> Co-authored-by: GlauTech <[email protected]> Co-authored-by: Alessio Tudisco <[email protected]> Co-authored-by: Heiko Liebscher <[email protected]> Co-authored-by: liuyingmo <[email protected]> Co-authored-by: liutang <[email protected]> Co-authored-by: Ezzeldin Ahmed <[email protected]> Co-authored-by: Claude Code <[email protected]>
* Q2C model and new consumables * Merge local changes with upstream ones * Minor tweaks * Unfix unnecessary line break * Update Qidi X-Max 4 0.4 nozzle.json * Tweak before merging upstream changes * Restore merged changes * Update Plater.cpp * Update Plater.cpp * Update Plater.cpp * update * Fix plurals on some GUI strings * Fix three regressions in the multi-tool extruder tab system: (OrcaSlicer#12680) 1. Dirty flags not showing for extruder options: 2. Crash when switching to non-first extruder tabs: 3. Modifying one extruder's parameter affects other extruders: * Fix crash when slicing multi-material print with wipe tower (OrcaSlicer#12682) The WipeTower2 code path never called construct_mesh(), leaving wipe_tower_mesh_data as std::nullopt. GCode export then dereferenced it unconditionally, triggering an assertion failure / crash. * Move adaptive flowrate to developer mode and clarified tooltip (OrcaSlicer#12688) * Set Adaptive Volumetric Speed as a developer mode setting, and further clarified in the tooltip * Fixed typo * Fix for notifications unable to be interacted after gcode viewer collapsed (OrcaSlicer#12689) JIRA-126 * Fix zoom button tooltip width miscalculation (OrcaSlicer#12692) wx strings to be converted to utf-8 before doing width calculation for consistency. JIRA-127 * Disable filament grouping button logic when when not Bambu H2D (OrcaSlicer#12693) # Description When using the Bambu H2D, users can use Filament Grouping, a button found next to the bed preview. When not on a H2D profile, the button is hidden. However, it remained usable, and clicking an empty space below all the buttons causes the dialog to appear. This PR fixes that by adding a check before the button is registered. Addresses point 9 (focusing on the 2nd bullet) in OrcaSlicer#12684 ## Tests Tried to click on the empty area right below the column of buttons (see the below images) Made sure to have the H2D profile loaded as well, and checked that the dialog still opens for that printer. H2D active <img width="1635" height="949" alt="image" src="https://github.com/user-attachments/assets/da6fb03b-e3c8-4504-ac60-b96ecc6347dc" /> Area to click for the invisible button <img width="935" height="788" alt="image" src="https://github.com/user-attachments/assets/1f001bcf-0224-4922-b5bf-47a95820e536" /> * Fix flushing windows dialog able to move around using trackpad and added esc to close dialog (OrcaSlicer#12694) Added entry to wipingdialog.html css to prevent it from being overscrollable and its position fixed. Added escape button to close dialog event on both javascript and webview events JIRA-136 * Remove leftover Bambu warning caption from dialogs (OrcaSlicer#12696) ### Description A couple of warning dialogs still used a caption containing "**BambuStudio warning**". It is a leftover from the original BambuStudio codebase. ### This PR - removes the explicit caption so the dialogs use the standard application warning title instead. ### Result - removes the remaining Bambu reference while keeping the visible behavior consistent with the rest of the UI. - addresses point 1. of "New ports from Bambu Studio" section from OrcaSlicer#12684 ### Screenshots - **Before:** <img width="1352" height="277" alt="image" src="https://github.com/user-attachments/assets/d107acaa-f159-496a-b14e-93cd149bf355" /> - **After:** <img width="1356" height="278" alt="image" src="https://github.com/user-attachments/assets/e111b5b3-9b3e-4b13-b20d-f98e5173ea16" /> * Added check for esc key to close dialog (OrcaSlicer#12697) Added wx event for esc to close dialog for filament grouping dialog JIRA-139 * Fix conversion to wxstring (OrcaSlicer#12698) Fix obj import dialog encoding for non ASCII letters by making the correct conversion to wxstring JIRA-137 * Update translate CZ (OrcaSlicer#12640) Translation added # Description <!-- > Please provide a summary of the changes made in this PR. Include details such as: > * What issue does this PR address or fix? > * What new features or enhancements does this PR introduce? > * Are there any breaking changes or dependencies that need to be considered? --> # Screenshots/Recordings/Graphs <!-- > Please attach relevant screenshots to showcase the UI changes. > Please attach images that can help explain the changes. --> ## Tests <!-- > Please describe the tests that you have conducted to verify the changes made in this PR. --> * Translate more pt-BR strings (OrcaSlicer#12664) # Description Ditto * Added eSUN Filament PLA Basic, Marble, Matte (OrcaSlicer#12657) # Description <!-- > Please provide a summary of the changes made in this PR. Include details such as: > * What issue does this PR address or fix? > * What new features or enhancements does this PR introduce? > * Are there any breaking changes or dependencies that need to be considered? --> Added eSUN Filament PLA Basic, Marble, Matte to Orca Filament Library <img width="811" height="331" alt="image" src="https://github.com/user-attachments/assets/5cda8b59-cd44-4e32-bae0-d08d2346dd39" /> ## Tests <!-- > Please describe the tests that you have conducted to verify the changes made in this PR. --> ``` ./OrcaSlicer_profile_validator -v eSUN Total loaded vendors: 1 Validation completed successfully ``` * feat: add Creality K2 Support (OrcaSlicer#12662) * feat: add K2 support * fix: remove k2 pro from k2 process json * fix: set correct start gcodes for the nozzles * Update HU language (OrcaSlicer#12686) HU language update * fix: round flush_volumes_matrix values to integers (OrcaSlicer#12672) When flush_multiplier is applied to flush_volumes_matrix values, the result can be a decimal (e.g., 272 * 1.3 = 353.6). Some printer firmware metadata parsers (notably Creality K2) crash when parsing decimal values in flush_volumes_matrix, causing prints to get stuck at "File selected". This fix rounds the multiplied values to integers, ensuring compatibility with firmware that expects integer values in this field. Fixes compatibility with Creality K2 and potentially other Klipper-based printers that parse the CONFIG_BLOCK metadata. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <[email protected]> * Standardize strings (OrcaSlicer#12665) * Standardize view actions * Standardize the term for "first layer" --------- Co-authored-by: SoftFever <[email protected]> * Some QoL tweaks (OrcaSlicer#12700) * 1. Calculate `FilamentTempType` based on `filament_info.json`, with a fallback to the temperature range. 2. Clean up some strings. * Update src/slic3r/GUI/ObjColorDialog.cpp Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Add support for esthetic filament sub-types in Snapmaker Printer Agent (OrcaSlicer#12699) # Description Esthetic filaments such as wood-infused, matte and marble filaments will now be handled by the Snapmaker printer agent so that they could be matched to more appropriate print profiles instead of generic PLA. * update * Fix errors OrcaSlicer_cs.po (OrcaSlicer#12701) * Optimize linux experience (OrcaSlicer#12705) * optimize resize feature on Linux * fix the black screen issue on app startup on Linux * Fixed an issue that Filament Grouping dialog always popup on Linux * Fix an issue that on Linux the project name or model file name was not displayed in titlebar (OrcaSlicer#12706) * optimize resize feature on Linux * fix the black screen issue on app startup on Linux * Fixed an issue that Filament Grouping dialog always popup on Linux * Fix an issue that on Linux the project name or model file name was not displayed in title bar * QoL: Default values in tooltips for Percent, FloatOrPercent, String and Bool options (OrcaSlicer#12508) QoL: Default values in tooltips for Percent, String and Bool options * FIX: hidden Line Type Linux (OrcaSlicer#12364) Fix(GCodeViewer): Resolve z-fighting for wipe, seam, and retract markers using shader depth bias Co-authored-by: SoftFever <[email protected]> * QoL: Fix hotkeys blocked in Prepare view when notification is shown (OrcaSlicer#12715) Fix hotkeys blocked in Prepare view when notification is shown Restore SetFocus() in the GLCanvas3D mouse-entering handler so the canvas reclaims wxWidget keyboard focus whenever the mouse enters it (provided the main window is active). Without this, clicking a sidebar control or a UI update triggered by slicing could leave the canvas without focus, causing hotkeys like Tab to stop working until the user clicked the canvas or dismissed the notification. * Update Qidi X-Max 4 0.4 nozzle.json * Remove duplicate items from actual speed plot (OrcaSlicer#12711) * init * update * Fix: Added a warning if the Hollow base pattern is selected for the non-tree supports (OrcaSlicer#12710) Fixes point 4 of OrcaSlicer#12684 * Calibration dialog Fixes (incorrect validators, scaling issues, UI refinements) (OrcaSlicer#12702) * Update calib_dlg.cpp * match validators * update * add missing linebreak * update * VOLUMIC profils update (OrcaSlicer#12721) * VOLUMIC profils updates * Delete resources/profiles/Volumic/EXO42 IDRE_cover.png * VOLUMIC profils updates * VOLUMIC profils updates * Profils bug fix * VOLUMIC profils updates * Fix SC2 Stage 2 * Update Volumic.json * Update BBLTopbar.cpp * Fixes * update * Fix GIT_COMMIT_HASH not set in Flatpak builds (OrcaSlicer#12725) The env var check was gated inside the .git directory check, so Flatpak builds (which exclude .git from the sandbox) always fell back to "0000000". Lift the env var check to top level and inject the commit hash into the Flatpak manifest via build-options.env. * Feature/flatpak clang llvm21 (OrcaSlicer#12727) * Fix GIT_COMMIT_HASH not set in Flatpak builds The env var check was gated inside the .git directory check, so Flatpak builds (which exclude .git from the sandbox) always fell back to "0000000". Lift the env var check to top level and inject the commit hash into the Flatpak manifest via build-options.env. * Switch Flatpak build to Clang/LLD via LLVM 21 SDK extension - Add org.freedesktop.Sdk.Extension.llvm21 - Bump runtime to GNOME 49 (SDK 25.08) for llvm21 availability * fix build errors and improving build speed for flatpak * fxi more build errors * Update error messages for GNOME Platform and SDK versions * Update OrcaSlicer_ru.po * fix shaky text while resizing * simplify solution * Update Qidi X-Max 4 0.4 nozzle.json (OrcaSlicer#12716) Update Qidi X-Max 4 0.4 nozzle.json * Update BBLTopbar.cpp * fix flatpak build (OrcaSlicer#12738) remove duplicated code * Update CC2 Profiles from elegoo slicer (OrcaSlicer#12215) * Fix CLI segfault (SIGSEGV) when using --info, --slice, or --export-3mf (OrcaSlicer#12719) In CLI mode, PartPlateList is constructed with a NULL plater pointer (OrcaSlicer.cpp:3612). When set_shapes() calls PartPlate::set_shape(), it unconditionally executes render data preparation code that dereferences the null plater through calls like generate_print_polygon() → wxGetApp().plater(), causing a segmentation fault (exit code 139). This adds a null check on m_plater in PartPlate::set_shape() to skip the render-only code block that generates logo triangles, print/exclude polygons, gridlines, icon vertices, and plate name textures. These rendering operations are not needed in CLI mode and this change has no impact on GUI mode where m_plater is always valid. * Feature/fix crash on linux when clicking assemble feature (OrcaSlicer#12739) * fix crash on Linux when clicking Assemble gizmo * some qol changes for dev * Revert "some qol changes for dev" This reverts commit ffe3213. * Update calib_dlg.cpp * Update calib_dlg.cpp * Update OrcaSlicer_ru.po * Add the filament id for the box of the Generic PC * FIX: Divide by zero exception in `InterlockingGenerator` when invalid configuration parameters are used. (fixes bambulab/BambuStudio#9910 ) (cherry picked from commit cdd60ab71f8a3895fcb1345b2ccc2f2f472bf968) * chore: translate comment for ignoring truncating casts warning * Allow cancellation during beam interlocking generation * Disable arc fitting for Qidi processes Qidi printers run Klipper and we don't want arc fitting enabled for these. * Skip top surfaces with non-positive density Add a guard that skips creating fill params for top surfaces when the configured density is less than or equal to zero. This avoids generating surface fills for zero/negative densities and prevents unnecessary processing or potential errors when top surface density is disabled. * Fix crash in DiffPresetDialog::update_tree() on preset selection change (OrcaSlicer#12765) std::map::at() throws std::out_of_range when option.category or "Basic information" is not present in the tab's category_icon_map, crashing the app. Replace with a safe find()-based helper lambda that falls back to an empty string (no icon) when the key is missing. * Fix non-bbl printer filament grouping by mapping all filaments/tools to group 0 (OrcaSlicer#12449, OrcaSlicer#12766) * init * fix compacting when app open with home tab * Flow ratio instead flow rate calib * feat: swap the mmu detection to prefer the more generic moonraker database Happy Hare now writes mmu lane data to the moonraker db similar to AFC, so we can normalize to the one implementation. For now, i've just re-ordered it so that the moonraker db is checked first. I want this because I've actually updated the happy hare data to include more data than we had access to via the "mmu" object. For happy hare we now have access to vendor name, which we can eventually use to further fine tune the auto-matched filament preset. * Fix wipe tower placed outside bed boundary on first slice The wipe tower config position (wipe_tower_x/y) could be outside the plate boundary (e.g. default y=250 on a 200mm printer). No constraint was applied at slice time, so the tower was generated out-of-bounds. * Add wipe_tower_type printer setting to replace vendor-based wipe tower selection Previously, wipe tower behavior was determined by checking if the printer was a QIDI vendor. This introduces a configurable enum (Type 1 / Type 2) so any printer can select its wipe tower implementation. BBL printers remain hardcoded to Type 1. Qidi profiles default to Type 1. * Fix Flatpak missing locale support (OrcaSlicer#12714) Add the localization/ directory to the Flatpak source list so run_gettext.sh can compile .po files into .mo translations. Replace LC_ALL=C.UTF-8 with LC_NUMERIC=C in the entrypoint script to preserve the user's language settings while still preventing decimal-separator parsing issues. * fix crash when opening preference dialog * small tweak of the script to support Mac * Fix PR comment posting for fork contributors by splitting into two workflows The check_profiles workflow used gh pr comment directly, which fails for fork PRs due to read-only GITHUB_TOKEN. Split into artifact upload + workflow_run pattern so comments post with proper write permissions. * Update HU language Update HU language after the adjustments of OrcaSlicer#12681. * small tweak * update * Add FILL3D PLA Turbo filament profile to OrcaFilamentLibrary * Update OrcaSlicer_ru.po * Revert "Fix wipe tower placed outside bed boundary on first slice (OrcaSlicer#12777)" This reverts commit 494601e, reversing changes made to d28e964. * Revert "Fix wipe tower loaded outside of plate boundaries (OrcaSlicer#12191)" This reverts commit e14e186. * revist fixes for wipe tower pos issues * Skip flushing volume validation for multi-tool printers Flushing volumes only apply to SEMM and BBL printers. Multi-tool printers don't perform filament purging between tool changes, so the zero-volume warning was being incorrectly triggered. * check precise_z_height and enable_prime_tower conflicts in print validate * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Extend self-hosted runner support to all platforms * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Revert "Extend self-hosted runner support to all platforms" * CMake: Accept ignored prefixes from build_release_macos.sh Defaults to ignore: /opt/local (MacPorts) /opt/homebrew (Homebrew on ARM) /opt/local (Homebrew on x86) We want to ignore these paths so any dependencies they might contain don't interfere with the build. This fixes OrcaSlicer#10460 * Revert "Revert "Extend self-hosted runner support to all platforms" (OrcaSlicer#12827)" This reverts commit f2eab54, reversing changes made to 7565b27. * fix errors * update cmake to 4.3.x * minor change * skip flatpak arm64 for self hosted runners * tweak * clean * skip flatpak * use clang and lld * use different cache key for linux clang * respect clang flag for all deps * print build time * simplify mac download * Security fix: path traversal in 3MF import (OrcaSlicer#12860) * Update TURKISH translations (OrcaSlicer#12838) * Update TURKISH translations * Update TURKISH translations * Update error Czech translations in OrcaSlicer_cs.po (OrcaSlicer#12641) Thanks * Follow-up for PR OrcaSlicer#12773 (OrcaSlicer#12800) Adapt language files to PR OrcaSlicer#12773 - Language files are adapated for the new msgid from PR OrcaSlicer#12773 - changes from PR OrcaSlicer#12773 applied to APPLE build also * feat: add winget_updater github action (OrcaSlicer#12807) Co-authored-by: SoftFever <[email protected]> * update locale and complete some missing translations for some language(AI) * fixed an issue that some translations are not used * Attempt to fix OrcaSlicer_zh_TW.po (OrcaSlicer#12867) * New de translation (OrcaSlicer#12875) * Aktualisiere deutsche Übersetzungen in der i18n-Datei für bessere Klarheit und Konsistenz * Update German localization for OrcaSlicer - Improved translations for various messages, ensuring clarity and consistency. - Corrected terminology for technical terms such as "flow ratio" and "emboss text object." - Adjusted phrasing for better readability and grammatical accuracy. - Removed redundant or unclear phrases to streamline user experience. - Added new entries for warnings and notifications related to printer operations. * typo * update flatpak app id and add migration code (OrcaSlicer#12879) * update flatpak app id and add migration code * tweak some text * Optimised for the Artillery M1 Pro printer (OrcaSlicer#12885) * Optimised for the Artillery M1 Pro printer * tidy up --------- Co-authored-by: SoftFever <[email protected]> * Set exclude objects to enabled by default to support dynamic MBL (OrcaSlicer#12869) Set exclude objects to enabled by default to support dynamic mesh bed leveling. * Add Anet A8 Plus (OrcaSlicer#12792) * Add Anet A8 Plus support because the folks in OrcaSlicer didn't * Fix the structure also import the orca_printer file to get the process * asdsadasd * tidy up and bump profile version (OrcaSlicer#12889) * tidy up and bump profile version * fix error * tidy up * fix * tide up more * fix errors * fix more errors * bump version to 2.3.2 --------- Co-authored-by: HYzd766 <[email protected]> Co-authored-by: HYzd766 <[email protected]> Co-authored-by: Felix14_v2 <[email protected]> Co-authored-by: yw4z <[email protected]> Co-authored-by: Alexandre Folle de Menezes <[email protected]> Co-authored-by: SoftFever <[email protected]> Co-authored-by: Sabriel-Koh <[email protected]> Co-authored-by: Derrick <[email protected]> Co-authored-by: Kiss Lorand <[email protected]> Co-authored-by: Jakub Hencl <[email protected]> Co-authored-by: Schildkroet <[email protected]> Co-authored-by: Olof Larsson <[email protected]> Co-authored-by: Claude <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: gaaat98 <[email protected]> Co-authored-by: Rodrigo Faselli <[email protected]> Co-authored-by: Valerii Bokhan <[email protected]> Co-authored-by: tome9111991 <[email protected]> Co-authored-by: VOLUMIC <[email protected]> Co-authored-by: TheLegendTubaGuy <[email protected]> Co-authored-by: Niccolo <[email protected]> Co-authored-by: Max Paperno <[email protected]> Co-authored-by: Bent Hillerkus <[email protected]> Co-authored-by: Noisyfox <[email protected]> Co-authored-by: TheLegendTubaGuy <[email protected]> Co-authored-by: Branden Cash <[email protected]> Co-authored-by: kisslorand <[email protected]> Co-authored-by: julianramirezarango-source <[email protected]> Co-authored-by: Felix14_v2 <[email protected]> Co-authored-by: Kevin J. Lynagh <[email protected]> Co-authored-by: GlauTech <[email protected]> Co-authored-by: Alessio Tudisco <[email protected]> Co-authored-by: Heiko Liebscher <[email protected]> Co-authored-by: liuyingmo <[email protected]> Co-authored-by: liutang <[email protected]> Co-authored-by: Ezzeldin Ahmed <[email protected]>
Fix Windows single-instance file handoff On Windows, opening a model file while OrcaSlicer is already running could fail when single-instance mode was enabled. The second launch correctly detected that another instance already existed, but it could no longer find the running main window to forward the file-open request. As a result, the new process exited and the file was dropped. This happened because the existing-instance lookup depended on the native window title containing "OrcaSlicer". After the titlebar change from #12706, the title may contain only the project name, so the running instance was no longer discoverable that way. Fix this by identifying the existing main window through stable window properties instead of title text: - require the expected wxWidgets window class - require the instance hash properties to exist - match against the current instance hash This restores forwarding of externally opened files to the already-running instance without depending on the current titlebar text.
commit 3533c70 Merge: 82aaf31 83179d5 Author: Ioannis Giannakas <[email protected]> Date: Sat May 16 07:40:44 2026 +0100 Merge branch 'main' into toolchange-order commit 83179d5 Author: Francesco Palmarini <[email protected]> Date: Sat May 16 08:37:16 2026 +0200 Make flushing volumes dialog resizable (OrcaSlicer#13663) commit fb5296a Author: Allyn Malventano <[email protected]> Date: Sat May 16 02:24:26 2026 -0400 fix: register enable_filament_dynamic_map and has_filament_switcher config options (OrcaSlicer#13623) fix(printconfig): register enable_filament_dynamic_map and has_filament_switcher options PR OrcaSlicer#13388 (X2D Support) added import/export for these options in bbs_3mf.cpp but never registered them in PrintConfig.cpp. Loading any .3mf containing these keys throws UnknownOptionException at PartPlate.cpp:6153 when config->apply() looks up the missing definition. commit 74f2bec Author: RobertKuszmar <[email protected]> Date: Fri May 15 23:20:43 2026 -0700 Fix PrinterWebView only clear deferred url on success (OrcaSlicer#11508) * Fix only clear deferred url on success * add comments --------- Co-authored-by: Ioannis Giannakas <[email protected]> Co-authored-by: yw4z <[email protected]> commit 1555fc9 Author: Justin Levine <[email protected]> Date: Fri May 15 18:40:36 2026 -0700 docs(readme): update logo credit GitHub username (OrcaSlicer#13680) commit 2f74413 Author: Ian Bassi <[email protected]> Date: Fri May 15 20:44:33 2026 -0300 Updates for printer covers (OrcaSlicer#13660) * Remove border for X2D image * RatRig improvement * Update Elegoo Centauri_cover.png * Update Kingroon KLP1_cover.png * Update FlyingBear Reborn3_cover.png * Update Folgertech FT-6_cover.png * Update Snapmaker J1_cover.png * flashforge c5 * RatRir diagonal * FlashForge perspective * Update Orca Arena X1 Carbon_cover.png * Update Tiertime UP310 Pro_cover.png * Update Folgertech i3_cover.png * Update FlyingBear Ghost 6_cover.png * Update Lulzbot Taz 4 or 5_cover.png * Update Snapmaker J1_cover.png * Revert "Update Orca Arena X1 Carbon_cover.png" This reverts commit a6e0f59. * Update Orca Arena X1 Carbon_cover.png * Update Elegoo Centauri_cover.png * Update Tiertime UP310 Pro_cover.png * Update Snapmaker J1_cover.png * Update Bambu Lab X2D_cover.png * flashforge creator * Update Snapmaker U1_cover.png * Update Folgertech FT-6_cover.png * Update Kingroon KLP1_cover.png * Update Folgertech i3_cover.png * LH stinger * Update Lulzbot Taz 4 or 5_cover.png * flyingbear * LH Stinger * deltamaker * ratrig * Update Generic Repetier Printer_cover.png --------- Co-authored-by: yw4z <[email protected]> commit b3bb860 Author: yw4z <[email protected]> Date: Fri May 15 20:12:30 2026 +0300 UI fixes / improvements (OrcaSlicer#12513) * bbl device selector search box * align file and more menus with its button * fix multiline inputbox border color on windows * fix multiline inputbox border color on windows * preferences: use content width on combobox dropdowns * about: match version text size on macOS * msg dialog improvements * fix canvas menu overlapping with sliced plates toolbar * bbl bind dialog button placement * bbl color picker * Update StepMeshDialog.cpp * drop file dialog * drop dialog revert fonts * revert windows multiline border * Update StepMeshDialog.cpp * update * Flushing Volumes: match style of combobox * fix hyperlink color on canvas notifications * fix possible issues with shared profiles notification commit d614917 Author: Francesco Palmarini <[email protected]> Date: Fri May 15 19:09:31 2026 +0200 Fix H2D LAN print job routing (OrcaSlicer#13662) commit 4154785 Author: Ocraftyone <[email protected]> Date: Fri May 15 11:45:39 2026 -0400 Speed up encoding check (OrcaSlicer#10873) Update encoding check commit 2167378 Author: SoftFever <[email protected]> Date: Fri May 15 19:45:24 2026 +0800 Enhancement: eliminate UI freeze during cloud preset sync on startup (OrcaSlicer#13673) fix: eliminate UI freeze during cloud preset sync on startup Move synchronous HTTP calls off the main thread in GUI_App::start_sync_user_preset(): - Call scan_orphaned_info_files() and process_delete_presets() in the background sync thread instead of the UI thread, so their HTTP DELETE calls don't block startup. - Call reload_settings() directly from the background thread instead of via CallAfter, so get_user_presets() (HTTP GET) and load/save_user_presets (file I/O) run off the main thread. - Guard update_side_preset_ui() and app_config->save() with is_main_thread_active() / CallAfter so they're safe when called from a worker thread. - Simplifiy finishFn lambdas: the progress-dialog case only destroys the dialog; the no-dialog case is a no-op. commit cf0dfd1 Author: yw4z <[email protected]> Date: Fri May 15 05:03:17 2026 +0300 Clarify Create nozzle for existing printer (OrcaSlicer#11773) * Update CreatePresetsDialog.cpp * add information for existing nozzles commit 4088824 Author: Eldenroot <[email protected]> Date: Fri May 15 03:58:45 2026 +0200 CLI: add layer_height and sparse_infill_density and wall_loops into result (OrcaSlicer#13001) * CLI: add layer_height into result cherry pick bambulab/BambuStudio@0b857b4 * add sparse_infill_density and wall_loops cherry pick bambulab/BambuStudio@ea9b205 commit 23e6d84 Author: Ocraftyone <[email protected]> Date: Thu May 14 21:57:41 2026 -0400 Bump Devcontainer Ubuntu Version (OrcaSlicer#12252) Bump ver commit 3471b24 Author: yw4z <[email protected]> Date: Fri May 15 04:57:12 2026 +0300 Fix: Font rendering pixelated when cleartype disabled (OrcaSlicer#12201) init commit 6852845 Author: SoftFever <[email protected]> Date: Fri May 15 09:52:19 2026 +0800 fixed an logic error when adjust logging level commit 82aaf31 Author: Ian Bassi <[email protected]> Date: Thu May 14 21:09:53 2026 -0300 Update PrintConfig.cpp commit a46e846 Author: Ian Bassi <[email protected]> Date: Mon May 11 19:59:35 2026 -0300 Improve descriptions commit 6e3dab8 Author: Ian Bassi <[email protected]> Date: Mon May 11 19:29:40 2026 -0300 Use fallback PrintConfig and support cyclic ordering Add fallback to obtain PrintConfig from the PrintObject when m_print_config_ptr is null in both handle_dontcare_extruder overloads, and update checks to use the local print_config. Initialize m_print_config_ptr in the ToolOrdering constructor from the PrintObject. In reorder_extruders_for_minimum_flush_volume, introduce use_cyclic_ordering and adjust the get_custom_seq lambda to consider layer_filaments when cyclic ordering is enabled (sorting and converting filaments to 1-based indices). These changes prevent null dereferences and enable cyclic toolchange ordering based on per-layer filament data. commit dabce09 Author: Ian Bassi <[email protected]> Date: Mon May 11 18:31:42 2026 -0300 Add toolchange ordering option (Optimized/Cyclic). Adapted from prusa3d/PrusaSlicer@517954e#diff-6a6d0a3d3ce08babafde7b52f3743d7b9b599df0bd1b62b3a962e3096c311a8e commit ecc53d9 Author: Hyiger <[email protected]> Date: Thu May 14 10:06:52 2026 -0700 Fix LAN printing crashes and hangs on Bambu H2D (OrcaSlicer#13296) Two related fixes for LAN printing with newer Bambu networking plugins: 1. FileTransferUtils: guard against missing ft_tunnel_* symbols The eMMC tunnel constructor calls ft_tunnel_create / ft_tunnel_set_status_cb without checking if the plugin exported them. Older plugins (e.g. 01.10.01.01) don't have these symbols, so the calls dereference null and crash when sending a print. Now throw a clear exception so callers can fall back gracefully. 2. PrintJob: disable eMMC print path by default Plugin 02.03.00.62's eMMC tunnel code hangs indefinitely at the upload phase (30%) on Bambu H2D, blocked inside the plugin waiting on a future that never resolves. Cancel doesn't work because the plugin doesn't check cancel_fn during the wait. The plain FTP path works reliably. Default to try_emmc_print=false; opt-in via AppConfig setting "disable_emmc_print" = "0". Also wrap the eMMC tunnel creation in try/catch so a missing-plugin exception cleanly falls back to FTP instead of killing the worker thread. Co-authored-by: hyiger <[email protected]> Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]> Co-authored-by: SoftFever <[email protected]> commit d14819e Author: Kiss Lorand <[email protected]> Date: Thu May 14 19:59:19 2026 +0300 Fix air filtration settings hidden on printers that support that feature (OrcaSlicer#13384) Enable air filtration support in affected system printer profiles Some system printer profiles that support air filtration had the feature incorrectly disabled in the printer settings. This caused the related filament settings to be hidden, making the feature unavailable to users even though it is supported by the printer. Enable "support_air_filtration" in affected system printer profiles and bump profile version thus forcing Orca to refresh cached settings. This ensures air filtration settings are visible and usable on printers that support the feature. commit 69594fa Author: Kiss Lorand <[email protected]> Date: Thu May 14 19:57:52 2026 +0300 Fix Windows file handoff when single-instance mode is enabled (OrcaSlicer#12944) Fix Windows single-instance file handoff On Windows, opening a model file while OrcaSlicer is already running could fail when single-instance mode was enabled. The second launch correctly detected that another instance already existed, but it could no longer find the running main window to forward the file-open request. As a result, the new process exited and the file was dropped. This happened because the existing-instance lookup depended on the native window title containing "OrcaSlicer". After the titlebar change from OrcaSlicer#12706, the title may contain only the project name, so the running instance was no longer discoverable that way. Fix this by identifying the existing main window through stable window properties instead of title text: - require the expected wxWidgets window class - require the instance hash properties to exist - match against the current instance hash This restores forwarding of externally opened files to the already-running instance without depending on the current titlebar text. commit 291b34a Author: Kiss Lorand <[email protected]> Date: Thu May 14 19:50:20 2026 +0300 Hide some non-applicable settings for tree supports to prevent confusion (OrcaSlicer#12367) Hide tree support parameters not in use - hide independent support layer height for organic tree support - hide threshold overlap for tree supports Co-authored-by: SoftFever <[email protected]> commit 26e6216 Author: Kiss Lorand <[email protected]> Date: Thu May 14 19:48:23 2026 +0300 Fix stale keyboard refresh and auto-resize flicker of speed profile window in Preview tab (OrcaSlicer#12707) * Fix speed popup refresh and sizing in Preview Fix two UX issues in the Preview actual speed profile popup. Keyboard-driven horizontal slider changes could leave the popup visually stale until a later input event, which made keyboard navigation feel delayed. Also, the speed-profile popup could briefly render at an incorrect height before resizing on the next frame. This change makes keyboard slider updates explicitly request a follow-up frame, so refresh no longer depends on incidental mouse activity. It also removes auto-resize from ToolPositionTableWnd and sizes the popup before begin() each frame. The popup height is computed from plot height, table rows, and window paddings, then clamped to at least the height of the adjacent ToolPosition window. The popup width is now computed from translated header text and padding terms, with a 16:9-derived minimum for a more stable appearance. The width is cached for the session and recalculated when UI scale changes. Result: - keyboard navigation updates reliably - popup no longer shows the transient wrong-height first draw - sizing is more stable across scale and localization * Fix ToolPosition window also + other fixes * Fix compile error when ENABLE_ACTUAL_SPEED_DEBUG disabled IMGUI_DEFINE_MATH_OPERATORS is needed even if ENABLE_ACTUAL_SPEED_DEBUG is not enabled * Guard seam fallback vertex index in GCodeViewer commit 700292f Author: Kiss Lorand <[email protected]> Date: Thu May 14 19:46:05 2026 +0300 Fix: Right Edge of G-code Viewer Legend Rows Not Interactive (OrcaSlicer#11899) Fix legend hover hit-testing Fix GCode viewer legend where the eye icon and right edge don’t respond to hover/click unless you click slightly left (works after switching view types unless the vertical slide is used). commit d2ca5d3 Author: Kiss Lorand <[email protected]> Date: Thu May 14 19:44:40 2026 +0300 Fix hybrid tree first-layer support base behavior and expose density setting (OrcaSlicer#13454) Fix hybrid tree first-layer support base flow and UI consistency Fix incorrect first-layer generation for hybrid tree supports. The support base on the first layer used brim flow instead of support material flow, which could lead to incorrect extrusion behavior and wrong material usage in multi-material prints. Additionally, spacing and density for the regular support part were not consistently derived from the actual first-layer support flow when first-layer and regular line widths differed. Hybrid-specific behavior is clarified: - first-layer expansion applies only to the regular support part - tree-only regions keep their existing behavior The first-layer support pattern is aligned with normal and organic tree supports to ensure consistent and meaningful density behavior. Also make first-layer support expansion and density settings visible whenever supports are enabled, as density was already affecting hybrid supports but was hidden in the UI. commit dd8cb89 Author: Francesco Palmarini <[email protected]> Date: Thu May 14 18:41:04 2026 +0200 Fix freeze after hiding sync popup (OrcaSlicer#13657) Avoid calling Show() on the main frame when it is already visible from BaseTransparentDPIFrame::on_hide(). On GTK this can re-enter size/layout handling after filament sync and leave the UI unresponsive. commit 9c5f33f Author: Ian Bassi <[email protected]> Date: Thu May 14 12:55:55 2026 -0300 Fix Filament for Features (OrcaSlicer#13607)
Description
Fixes #12636
Screenshots/Recordings/Graphs
Tests