Commit Graph

29205 Commits

Author SHA1 Message Date
Kiss Lorand
9be51dc3e6 Fix division by zero in organic tree support generation (#13936) 2026-05-29 18:09:47 -03:00
Ian Chua
00ead43e5a fix: temporary wxstring going out of scope causing crash on linux (#13925) 2026-05-29 15:49:36 +08:00
Jingxi-Polymaker
f3de971914 Add more Polymaker filament presets (#13858)
* add new presets

* fix inhernce

* fix rename

* update

* apply fix

* update index
2026-05-29 15:46:41 +08:00
Ian Bassi
948e88a1dd Fix + Support 'Default' filament option (index 0) (#13887)
* Support 'Default' filament option (index 0)

Treat filament index 0 as the new "Default" (use active object/part filament) instead of using 1. Update config defaults and tooltips for wall/sparse/solid infill filament options (min/default -> 0, tooltip explains "Default"). Adjust normalization and propagation logic to respect explicit feature overrides and only apply base extruder when feature values are zero; only copy sparse->solid infill when sparse > 0. Introduce FeatureFilamentOverrideMask and clamp_feature_filament_to_valid to resolve and clamp feature filaments. Update UI lists and selection behavior to expose a "Default" entry and handle zero-based indices in PartPlate and Plater.

* enable_filament_for_features option

Co-Authored-By: LixNix <105106115+lixnix@users.noreply.github.com>

* \n

* Allow wipe_tower_filament to equal nozzle count

Relax the assertion in Print::extruders to permit wipe_tower_filament == config().nozzle_diameter.size(). The configuration value is 1-based and the code subtracts 1 when pushing the extruder index, so equality should be valid and selecting the last nozzle should not trigger an assertion.

* Revert "Allow wipe_tower_filament to equal nozzle count"

This reverts commit 2c976574327a8bcdc74a1b296bf1aaff7752a94e.

* Revert "enable_filament_for_features option"

This reverts commit 01c13baeddb8e26793f752deab788ee4d086975b.

* Migrate legacy feature filament defaults

Add migration logic to convert legacy feature filament selections from 1 to 0 for older 3mf files. Introduces a local migrate_legacy_feature_filament_defaults lambda in src/OrcaSlicer.cpp and src/slic3r/GUI/Plater.cpp that scans keys (wall_filament, sparse_infill_filament, solid_infill_filament, support_filament, support_interface_filament) on configs/objects/volumes, updates values, counts conversions and logs the result. Also adds a Semver check for "2.4.0-dev" in OrcaSlicer to trigger the migration for files older than that version. This preserves expected default filament selections when loading older project files.

* Update OrcaSlicer.cpp

* Extract migration helper to ConfigMigrations

Centralize legacy feature-filament default migration by moving the duplicated lambda into ConfigMigrations::migrate_legacy_feature_filament_defaults (src/libslic3r/Config.cpp) and declaring it in Config.hpp. Update OrcaSlicer.cpp and slic3r/GUI/Plater.cpp to call the new function instead of inline lambdas. The helper converts specific feature filament keys (wall_filament, sparse_infill_filament, solid_infill_filament, support_filament, support_interface_filament) from int 1 to 0 and returns the count of conversions to avoid duplicated migration logic.

* Remove DynamicFilamentList1Based and consolidate lists

Delete the specialized DynamicFilamentList1Based struct and its global instance. Update Choice registrations to use the single dynamic_filament_list for wall, sparse_infill and solid_infill filaments, and remove the extra update call for the removed instance. This consolidates filament choice handling and removes duplicated logic in Plater.cpp.

* move it

* fix objects

* Update Config.hpp

* Update profiles
2026-05-29 10:54:26 +08:00
TheLegendTubaGuy
6b0f06dba7 Remove hardcoded Qidi Max 4 input shaper (#13864) 2026-05-28 20:25:09 -03:00
Ian Bassi
7a0fb4228f Slow down for curled perimeters Desc fix (#13918) 2026-05-28 17:15:21 -03:00
TheLegendTubaGuy
d95f95b8d3 Fix Kobra 3 Max bed exclusion zones (#13879) 2026-05-29 00:26:34 +08:00
Mitchell Mashburn
d29193fb48 Fix naming of re:3D cover pictures to match printer model. (#13907)
* Fix naming of cover pictures to match printer model.

* Rename buildplate textures.
2026-05-29 00:25:47 +08:00
mrmees
28c88a4a51 Fix built-in placeholders missing from custom G-code and output filenames (#13892)
* fix: restore version placeholder in custom G-code

PlaceholderParser sets "version" in its constructor, but Print::apply() calls clear_config() which wipes it. Unlike timestamp/user (restored during G-code export), version was never restored, so [version]/{version} threw "Variable does not exist" in custom G-code while working in output filenames.

Re-set version after both clear_config() calls so it resolves everywhere.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix: resolve timestamp and user placeholders in File header G-code

file_start_gcode is processed via print.placeholder_parser() directly, before the G-code parser integration copy that restores timestamp/user. As a result {timestamp}, {year}..{second} and {user} threw "Variable does not exist" in the File header G-code field while working in Machine start/end G-code.

Inject fresh timestamp and user into the file_start_gcode config so they resolve, matching the other custom G-code fields.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix: expose initial_extruder and extruded_*_total placeholders in output filenames

PrintStatistics exposed initial_tool (not its documented alias initial_extruder) and total_weight/extruded_volume (not the documented extruded_weight_total/extruded_volume_total). Filename formats using the missing names failed with "not a variable name".

Add the missing aliases to PrintStatistics::config() and placeholders().

Fixes #12436

Fixes #10708

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 22:29:16 +08:00
SoftFever
195ef0676b Revert "Add indentation check to profile workflow (#13417)" 2026-05-28 22:27:54 +08:00
mrmees
4f4683cf9c Fix total_toolchanges placeholder being 0 without a wipe tower (#13895)
* fix: populate total_toolchanges without a wipe tower

total_toolchanges is documented as available while change_filament_gcode (and the wipe-tower toolchange flow) is evaluated, but it was sourced only from WipeTowerData::number_of_toolchanges, which stays -1 (clamped to 0) when no wipe tower is generated. Manual filament swaps and toolchanger/IDEX setups without a wipe tower therefore always saw total_toolchanges = 0 in custom G-code and output filenames, despite real tool changes occurring -- breaking the placeholder's documented contract.

Add a tool-ordering fallback: when number_of_toolchanges < 0, count tool changes from the print's tool ordering (the transitions in the per-layer extruder sequence). Wipe-tower prints are untouched -- number_of_toolchanges >= 0 still wins -- so their reported count does not change.

Limitation: sequential (by-object) prints without a wipe tower leave Print::tool_ordering() empty, so total_toolchanges stays 0 there (unchanged from before).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 22:09:15 +08:00
Ioannis Giannakas
b598df8b3b Disable slowdown for curled perimeters as a default setting. Expand tooltip with tuning recommendations. (#13870) 2026-05-28 20:50:44 +08:00
DeathKhan
1eaf3f71d5 fix(ElegooLink): pass printer SN to CC2 device panel URL (#13878)
* fix(ElegooLink): pass printer SN to CC2 device panel URL

The CC2 panel subscribes to MQTT topics keyed by the printer serial number.
Without sn= in the URL it uses a wrong hardcoded fallback SN, subscribes to
the wrong topics, and shows Offline permanently even though the printer is
reachable.

- Cache the SN in elegoo_cc2_test() (already fetches it, was discarding it)
- Look up cache in get_print_host_webui(); fall back to a short LAN HTTP
  call on first use before the test has run
- Append sn= to the panel URL
- Clear the wrong hardcoded fallback SN/IP from the panel bundle
- Add a small synchronous boot script to the panel that fetches the SN
  from the printer before the bundle reads URLSearchParams, as a fallback
  for unpatched binaries

* fix(ElegooLink): persist CC2 serial number in AppConfig dev_sn section

Store the printer SN under [dev_sn] keyed by normalized print_host after
a successful connection test or system/info fetch. Reuse it on later
sessions before hitting the network, matching how access_code is keyed by
dev_id for other LAN printers.

* fix(ElegooLink): answer get_sn IPC instantly from dev_sn cache

The CC2 panel always calls get_sn with a 10s timeout. Remove the HTTP
fallback from get_sn() and resolve IPC from dev_sn/memory only so Device
tab load is not blocked after sn= is already in the URL.

* fix(ElegooLink): skip get_sn IPC when URL already has sn

The CC2 device panel calls get_sn with a 10s timeout on every MQTT
connect even when Orca passes sn= in the query string. Use the URL
serial immediately and only fall back to IPC when it is missing.

* refactor(ElegooLink): resolve CC2 SN via PrintHost::get_sn in GUI

Drop the ElegooLink.hpp include from PrinterWebViewHandler; the webview
IPC handler uses the existing PrintHost virtual instead. Keep CC2 serial
lookup helpers file-local in ElegooLink.cpp and share them between
get_sn() and get_print_host_webui().

* chore: drop redundant <memory> include in PrinterWebViewHandler

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-28 19:45:03 +08:00
SoftFever
9ac0cb16d4 ci: dedupe profile-validation PR comments, clean up on success 2026-05-28 19:05:51 +08:00
Noisyfox
a78d3299bd Fix crash when you have custom profile set to multi-extruder but the base printer is semm (#13896) 2026-05-28 18:11:36 +08:00
SoftFever
1e025dbf3c fix: allow unchecking URL association in Preferences (#13884) (#13899)
Wire the existing disassociate_url path into the Associate-tab
checkbox so users can revert prusaslicer/bambustudio/cura
registrations they previously enabled.
2026-05-28 18:01:41 +08:00
SoftFever
92c5d94b6e privacy: disable Bambu cloud telemetry before DLL start() (#13898)
* privacy: disable Bambu cloud telemetry before DLL start()
2026-05-28 17:57:11 +08:00
d4not
83525f64c9 fix: prevent CPU-spin in Sidebar leave handler on inactive Wayland workspace (#13897)
When the OrcaSlicer window is on an inactive Hyprland (or any Wayland
compositor that keeps surfaces mapped while hidden) workspace, GTK
keeps delivering synthetic leave-notify events to the printer-preset
row. The wxEVT_LEAVE_WINDOW handler at Plater.cpp:1855 calls
wxFindWindowAtPoint(), which walks the entire wxWidgets window tree
calling IsShown() / gtk_widget_get_child_visible() on each widget,
then Hide()s the edit button and triggers a Layout() of the parent
panel. The Hide()+Layout() re-fires more leave events, creating a
feedback loop that pegs a CPU core at 100% indefinitely.

GDB attached to a frozen process confirmed the main thread stuck in:

  wxFindWindowAtPoint (recursing through widget tree)
    -> wxWindow::IsShown
      -> gtk_widget_get_child_visible
  ...
  Sidebar::Sidebar(Plater*)::$_14   <- the leave handler lambda
  wxEvtHandler::SafelyProcessEvent
  wxGTKImpl::WindowLeaveCallback
  gtk_main_do_event
  ...

IsShownOnScreen() can't be used as a guard here because GTK on Wayland
reports widgets as visible even when the toplevel surface is on an
inactive workspace (see existing comment at Plater.cpp:9304).

Fix: state-based short-circuit. If btn_edit_printer is already hidden,
the handler has no transition to perform - skip the expensive tree walk
and the Hide()+Layout() that would re-trigger the feedback loop. After
the first leave event, every subsequent leave event is O(1).

Refs:
- #12387 (open issue with matching setup: Arch + Hyprland + RTX 3060 + Bambu A1)
- #11196 (introduced the hover-edit-button feature in Nov 2025)
2026-05-28 14:20:41 +08:00
Mitchell Mashburn
ab9ad9e844 Update re:3D profiles. (#13750)
* Update/add re:3D profiles.

* Fix encoding issue with UTF-8 BOM

* Change spaces to tabs.

* Fix alignment-based space indentation issues.

* Test: rename_from property

* Test 2: rename_from property

* Test 3: use 'renamed' instead of 'rename'

* Add renamed property for each conflicting profile.

* Revert to optimized assets improved on [#13149](https://github.com/OrcaSlicer/OrcaSlicer/pull/13149)
2026-05-28 12:08:19 +08:00
Ian Chua
820344e56e fix: load 3mf project after sync (#13834)
# Description

Resolves https://github.com/OrcaSlicer/OrcaSlicer/issues/13830

The issue was that when OrcaSlicer was open with a 3mf file, the project
is first loaded, then when the sync finishes, it overrides the project
settings. This occurs when are working on a 3mf file and you click the
sync presets button as well.

The fix was to snapshot the current state of the settings, and then
restore whatever was marked as dirty to it's original state, preserving
the 3mf project settings.

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-05-28 10:34:09 +08:00
Mariano Dupont
109c189ac4 Add Flashforge Adventurer 5 series local send workflow with IFS mapping (#12991)
* Add Flashforge AD5X local send dialog, IFS mapping, and LAN discovery

* Refine Flashforge AD5X IFS dialog behavior

* Refine Flashforge IFS slot selection dialog

* Fix Flashforge printer selection and print mapping

* Use 3MF for Flashforge local uploads

* Generalize Flashforge local API handling

* Handle Flashforge local API IFS support more robustly

* Use selected plate filament info for Flashforge IFS mapping

* Fix Flashforge current-plate mapping and widget sizing

* Improve Flashforge IFS contrast and color matching

* Fix Flashforge legacy plate export and upload naming

Resolve PLATE_CURRENT_IDX before the legacy send-to-printhost path calls send_gcode so single-plate Flashforge 3MF exports target the selected plate instead of leaking the sentinel into export_3mf.

Sanitize Flashforge upload names in one shared utility reused by both the dialog and the backend client. This keeps the UI-visible filename and the actual uploaded filename consistent and replaces printer-problematic characters such as '=' without scattering Flashforge-specific logic through the generic Plater flow.

* Keep Flashforge upload filename sanitization in the backend only

Drop the PrintHostSendDialog API changes and keep filename sanitization inside the Flashforge backend paths that actually talk to the printer. This keeps the generic send dialog flow untouched while still normalizing problematic upload names for both serial and local API uploads.

* Only use the Flashforge IFS dialog for local API uploads

* Use reported Flashforge IFS support without model fallback

* Remove unused Flashforge slot uniqueness tracking

* Include <array> for Flashforge discovery message
2026-05-27 23:03:44 +08:00
anjis
e5f43e6dd5 Fix ScriptMessageHandler invalidation after RemoveAllUserScripts on Windows. (#13829) 2026-05-27 22:59:43 +08:00
wujie
1da0c9d999 Sync Elegoo profiles (#13790)
* Sync Elegoo profiles from ElegooSlicer

Update vendor Elegoo.json, filament/machine/process trees, and OrcaFilamentLibrary
Elegoo entries. Align machine default material names with existing filament preset names.

* feat: expose filament_name for G-code export filename format

Derive from filament_settings_id for the first active extruder and strip the suffix after @, matching ElegooSlicer so filename_format can use {filament_name}.

* chore: reorder Elegoo entries in OrcaFilamentLibrary

Group Elegoo @base profiles and bump library version to 02.03.02.62.

* sync OrcaFilamentLibrary.json with Elegoo filament profiles

* fix: clean up Elegoo process renamed_from for profile validation

Add single renamed_from only where preset names changed from legacy Orca
names; remove duplicate Rapid @System library entries that conflicted with
ECC2 vendor presets.

* fix(profiles): add missing Elegoo renamed_from for profile validation

CI custom-preset tests still inherit legacy Orca preset names that no
longer exist after the Elegoo bundle update. Add renamed_from on process,
Neptune 4 machines, OrcaFilamentLibrary filaments, and Giga profiles so
inherits resolve again, without changing print parameters.
2026-05-27 22:58:39 +08:00
Kuzuri
9338425c46 Fix Snapmaker U1 "Print by Object" collisions (#13854)
Update Snapmaker U1 (0.4 nozzle).json

Updated Snapmaker U1 0.4 nozzle "change_filament_gcode" and "machine_end_gcode" to fix the issue of collisions when using "Print by Object"
2026-05-27 22:29:40 +08:00
Frenshape
1028603a83 Add Point3 return type getters for first and last point to ExtrusionEntity (#13855)
Fix compile error in Debug mode. Adds getters for Point3 types in ExtrusionEntity

ZAA changed ExtrusionPath::polyline from Polyline to Polyline3, preserving the existing interfaces by converting first_point and last_point to return a Point copy constructed from the underlying Point3 type.

ExtrusionLoop::validate function was not updated and is broken in debug configurations as it's currently comparing Point to Point3

This change promotes ExtrusionPath::first_point3/last_point3 to the ExtrusionEntity base class as a  pure virtual function, implements them on derived classes, and fixes ExtrusionLoop::validate
2026-05-27 22:07:15 +08:00
SoftFever
943c78a299 Fix nozzle diameter mismatch error in manual calibration (#13882) 2026-05-27 20:42:56 +08:00
Clifford
d365cec6cf Fix nozzle diameter guards for printers that don't report nozzle info (#13255)
Fix nozzle diameter guards for printers that don't report nozzle info (#13236)

PR #12814 changed DevNozzle::m_diameter default from 0.4f to 0.0f to
mean "unknown" when firmware doesn't push nozzle info, and guarded two
call sites in SelectMachine.cpp. PR #13330 introduced
DevExtderSystem::NozzleDiameterMatchesOrUnknown() and adopted it in
get_printer_preset / CalibUtils / CalibrationWizardPresetPage. A few
reachable sites were still left out and now report "mismatch" / fail
silently for every non-BBL printer (Klipper/Moonraker, RRF, Marlin,
etc.) that doesn't push BBL nozzle data.

The most visible symptom: the "Sync filament colors from AMS" button on
Moonraker printers with AMS/AFC silently does nothing, because
get_printer_preset() couldn't find a matching system preset (fixed in
#13330, but the lookup-string sites below kept the bug visible
elsewhere).

Apply NozzleDiameterMatchesOrUnknown at the two remaining comparison
sites:

  src/slic3r/GUI/Plater.cpp
    - file-load printer-mismatch dialog — don't prompt on every load
    - on_select_preset sync_extruder_list gate — skip 0.0 extruders

For the three filament-lookup string-builder sites, fall back to the
currently-selected printer preset's nozzle diameter so the dropdown
isn't empty when firmware hasn't reported a diameter:

  src/slic3r/GUI/AMSMaterialsSetting.cpp (Popup + on_select_filament)
  src/slic3r/GUI/CaliHistoryDialog.cpp (get_all_filaments)

Also remove the dead SyncAmsInfoDialog::is_same_nozzle_diameters method
surfaced while auditing the affected sites — it was introduced
2024-12-30 in commit ad79ed6d93 ("ENH:add SyncAmsInfoDialog",
cherry-picked from Bambu's internal branch) but a caller was never
wired up on the OrcaSlicer side. Dead since introduction.

Fixes #13236
Refs #12814 #13330

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-27 20:41:15 +08:00
Ioannis Giannakas
925ed6693a Fix bridges appearing on top surfaces when "Extra bridge layers" is enabled. Threading fixes for extra bridge layers and lightning infill. (#13860)
* Fix data race in extra bridge layer generation causing spurious bridges on top surfaces
* Guard second bridge layer against top most surfaces
* CoPilot review comments & lighting infill threading fix.
2026-05-27 10:46:57 +01:00
dremc
170b748fd1 Add DREMC materials profiles such as PLA, ABS, ASA filament profiles (#13783)
* Create DREMC PLA+ @base.json

* Create DREMC

* Delete resources/profiles/OrcaFilamentLibrary/filament/DREMC

* Create

* Delete resources/profiles/OrcaFilamentLibrary/filament/dremc directory

* Delete resources/profiles/OrcaFilamentLibrary/filament/DREMC

* Create DREMC PLA+ @base.json

* Added Initial DREMC Profiles

* Update OrcaFilamentLibrary.json

* Update OrcaFilamentLibrary.json

* Update DREMC PPA-CF @base.json

* Add files via upload

* Replace Space with Indentation

* Update OrcaFilamentLibrary.json

* Fixed ID Duplication Issue

* Update OrcaFilamentLibrary.json

Fixed Formatting/Ordering

* Update OrcaFilamentLibrary.json

Fixed Formatting

* Update OrcaFilamentLibrary.json

* Update OrcaFilamentLibrary.json

* Add files via upload

* Add files via upload

* Update DREMC ASA CF @base.json

* Update DREMC ASA GF @base.json

* remove duplicated profiles

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-27 13:00:24 +08:00
Noisyfox
4c2b7871ae Fix display of non-ascii orca cloud user name (#13856) 2026-05-26 09:30:39 -03:00
Ian Bassi
d5b072fddf OrcaSliced Handy Model (#13727)
* Ad Colourful Orca Handy model

* Model

Co-Authored-By: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
Co-Authored-By: yw4z <yw4z@outlook.com>

* Autoarrange after import

* Multifile import

* Current

* Cleaned

* Update Colourful_Orca.3mf

* Cleaning

* Update Orca cube v2 to DRC and autoarrange

* Rename orca to OrcaSliced

---------

Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
Co-authored-by: yw4z <yw4z@outlook.com>
2026-05-26 17:19:34 +08:00
Kiss Lorand
885a2d6b4c HU language tweak (#13841)
Hu language tweak

Typo, semantics, grammar adjustments.
2026-05-26 17:17:55 +08:00
Kiss Lorand
f443461c0c Fix overhang preview ignoring support threshold fallbacks when angle set to 0 (#12650)
* Fix overhang preview not using fallbacks when angle is 0

The overhang visualization in Preview ("show overhangs based on support settings")
used the raw `support_threshold_angle` value from the configuration.

When `support_threshold_angle` was set to 0, Orca internally falls back to:
- 30° for tree supports
- an angle derived from `support_threshold_overlap` for normal supports

However, the preview logic ignored these fallbacks and used the raw value (0°),
leading to incorrect overhang highlighting that did not match the actual
support generation behavior.

This patch computes the effective overhang threshold used for preview:

• If `support_threshold_angle > 0`, use it directly
• If `support_threshold_angle == 0` and tree supports are used, fall back to 30°
• If `support_threshold_angle == 0` and normal supports are used, derive the
  equivalent angle from `support_threshold_overlap`, `layer_height`, and the
  external perimeter width.

The function now returns `normal_z` directly so the preview uses the same
effective slope threshold as the support generator.

As a result, the overhang highlight in Preview now correctly matches the
supports that will actually be generated.

* Apply Copilot suggestions
2026-05-26 17:17:19 +08:00
Ian Chua
6fa84f3cff Merge branch 'main' into fix/load-3mf-after-sync 2026-05-26 10:56:29 +08:00
Ian Chua
2ce4f2afc2 save and restore 3mf settings after sync 2026-05-26 10:55:11 +08:00
Rodrigo Faselli
84ee00f00b Add Fill_multiline to GUI_Factories.cpp (#13852)
Add multiline to gui_factories.cpp
2026-05-25 23:41:25 -03:00
Ian Bassi
034216c880 Optimized gyroid link fix (#13839) 2026-05-25 13:28:35 -03:00
Noisyfox
c49437241a Fix issue that filament group popup is dismissed too quickly on macOS (#13837) 2026-05-26 00:09:21 +08:00
Alexandre Folle de Menezes
b133377732 Improve e complement the pt-BR translation (#13823) 2026-05-25 12:18:30 +08:00
Kiss Lorand
ce7ac0f372 HU language update (#13825) 2026-05-25 12:18:03 +08:00
Heiko Liebscher
47250ff185 localization(de): fill in missing German translations (#13819)
- Translate 18 previously untranslated strings in OrcaSlicer_de.po
- Covers cloud errors, context menu, sync presets, loading states, and UI labels
2026-05-25 12:17:28 +08:00
Robert J Audas
bb058ea483 Bump printers version.txt to propagate X2D (N6.json) to existing users (#13806)
PR #13388 added resources/printers/N6.json for X2D support but did not
bump resources/printers/version.txt. PresetUpdater only copies files
from the install's resources/printers/ to the user's data_dir/printers/
when the resources version is newer than the user's stored version, so
every existing install stays at 02.00.00.29 and never receives N6.json.

At runtime, json_diff::load_compatible_settings("N6", "") reads from
data_dir/printers/N6.json; the silent file-missing failure leaves
is_support_bed_leveling, is_support_pa_calibration, and
SupportCalibrationNozzleOffset at their defaults, hiding the Bed
Leveling and Nozzle Offset Calibration checkboxes in the Send Print
Job dialog for the X2D.

Bumping the patch version triggers the existing propagation logic on
next startup.

Fixes #13780
Fixes #13794

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 18:12:14 +08:00
SoftFever
b16865f94a attemp to enhance network share experience for flatpak (#13809)
* attemp to enhance network share  experience for flatpak
2026-05-23 17:15:47 +08:00
SoftFever
5c37bd1724 fix flatpak crash on start issue (#13808)
fix flatpak crash issues
2026-05-23 16:19:26 +08:00
yw4z
203f3446a4 Fix glitches around TextInput & ComboBox controls after scrolling on scaled displays (#13805)
Update StaticBox.cpp

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-23 11:24:12 +08:00
SoftFever
df41a9b36f Feature/update flatpak 2.4 (#13799)
* update flatpak to reflect recent deps changes as well as upgrade runtime to 50

* support building from worktree
2026-05-22 23:52:36 +08:00
SoftFever
fa82c32e9c Fixes a possible null dereference in DeviceManager::check_pushing() when the selected machine is missing or stale during timer refresh. (#13802)
* Fix selected-machine null deref in device pushing check
2026-05-22 23:52:00 +08:00
Zuhaib Siddique
8896237d40 Ignore SIGPIPE at startup to prevent crashes on dropped printer connections (#13788)
Ignore SIGPIPE at startup to prevent crash on dropped printer connection

Writing to a closed printer network socket raised SIGPIPE, whose default
action terminated the whole process (exit 141, no crash report). Set
SIGPIPE to SIG_IGN once at main() entry (POSIX only) so such writes return
EPIPE to the existing networking error handling instead of killing the app.

Fixes #13787
2026-05-22 22:18:53 +08:00
Ian Chua
aae719c4b1 fix: detached presets not showing up (#13793)
* fix: detached presets not showing up

* slightly better code clarity

* remove cloud_prefix
2026-05-22 19:05:28 +08:00
yw4z
c5330a6355 Mode button fixes / improvements (#13795)
* init

* update thumb color
2026-05-22 19:04:03 +08:00