Commit Graph

17499 Commits

Author SHA1 Message Date
Allyn Malventano
b0c1887f40 fix: persist user-selected preview view mode after first load (#13625)
fix: apply smart preview defaults per extruder count session

- Track last extruder count (1=single, 2+=multi) instead of boolean flag
- Apply appropriate default (ColorPrint/FeatureType) when count changes
- User selections persist within same extruder count
- Symmetric behavior: both single and multi actively apply defaults
- Delete duplicate dead code block (uncommented TODO scaffolding)

Behavior:
- First slice (any type) → appropriate default
- User changes view → persists on re-slice
- Switch single→single or multi→multi → persists
- Switch single↔multi → appropriate default applies
2026-06-16 22:15:00 +08:00
SoftFever
14d2dfdd4c Fix test errors by guarding against null dereference of wxTheApp in OrcaCloudServiceAgent::compute_fallback_path() and skipping file persistence when no fallback path is available. 2026-06-15 14:29:30 +08:00
yw4z
8c0b89bc8a Launch troubleshoot center with clicking to dev button (#14178)
* init

* show tooltip for dev mode
2026-06-14 18:55:40 +08:00
Ian Chua
2abfa512ef feat: notification where there is an update available for subscribed presets (#14121)
* feat: notification where there is an update available for subscribed presets

* add tracking set for updates available
2026-06-14 18:30:42 +08:00
raistlin7447
5fafbb59fc Revive the disabled fff_print test suite (#14196)
* Fix null-deref and arranger bugs that gate headless slicing tests

export_gcode dereferenced a null result out-param, enum serialization
dereferenced a null keys_map, and get_arrange_polys left bed_idx unseeded so
the arranger dropped items. All only affect the headless test/CLI path.

* Fix the headless test harness and add G-code test helpers

Use the real arranger, fix temp-file handling with an RAII guard, and add
layers_with_role / max_z for inspecting sliced G-code.

* Re-enable the Model construction test

* Re-enable SupportMaterial tests and add an enforced-support test

* Re-enable and extend PrintObject layer-height and perimeter tests

* Re-enable Print skirt, brim, and solid-surface tests

* Re-enable and extend PrintGCode tests

Un-hide the basic scenario (dead-key fixes, reframes, trimmed trivia) and add
initial-layer-height, sequential-order, and null-result export tests.

* Re-enable and reframe the skirt/brim tests

Detect skirt/brim by G-code role comment instead of a sentinel speed, and
resolve the previously-unfinished skirt-enclosure test.

* Replace the stale lift()/unlift() test with a z_hop test

* Delete the stub and broken Flow tests
2026-06-14 17:42:53 +08:00
Myself
abb4eddb9c Fix CrealityPrint uploads with non-ASCII filenames (#13833)
Fix Creality upload URLs for encoded filenames
2026-06-14 16:23:52 +08:00
yw4z
9bcee518f8 Filament list improvements (Filament counter & Auto unfold & Scroll to end of list on changes) (#14158)
* Update Plater.cpp

* filament counter
2026-06-14 12:04:34 +08:00
yw4z
5f8b48473a Show printer name on titlebar of printer section while its folded (#14148) 2026-06-13 20:45:42 +08:00
Ian Bassi
6bb7903b97 Spanish update + Desc update (#14165) 2026-06-11 22:07:05 -03:00
foXaCe
d641ca598a i18n(fr): fix untranslated UI strings, extract hardcoded ones, complete French catalog (#14164) 2026-06-11 17:10:31 -03:00
SoftFever
15f330641c Add Microsoft Store MSIX package build (#14142)
* docs: add MSIX Store build design spec

* docs: update MSIX spec (PFN deep link, .drc, Associate tab) and add implementation plan

* ci: add MSIX logo asset generator and generated assets

* ci: fix MSIX asset rendering edge bleed (PixelOffsetMode) and make output order deterministic

* ci: add MSIX AppxManifest template

* ci: add MSIX packaging script

* ci: make build_msix.ps1 stage-only exit dot-source safe

* ci: build MSIX Store package in Windows job

* ci: run MSIX pack after existing Windows uploads and keep it out of release downloads

* feat: add MSIX packaged-context detection helpers

* fix: resolve MSIX package APIs dynamically to keep Win7 loadable

* feat: suppress self-update in MSIX Store build

* feat: suppress runtime file associations in MSIX Store build

* feat: keep version check in MSIX build, point update dialog at the Store

The update check is notification-only (OrcaSlicer never auto-downloads),
so the Store build keeps checking for new versions instead of skipping
the check. What changes when packaged is the new-version dialog: the
Download button is hidden, the info text asks the user to update from
the Microsoft Store, and the hyperlink / wxID_YES action opens the Store
product page instead of the GitHub release page.

* docs: align spec verification plan with Store-redirect updater behavior

* feat: default MSIX identity to the reserved Partner Center values

* feat: render MSIX logos full-bleed from the gradient-circle SVG

* feat: point update dialog Download button at the Store in MSIX builds

* feat: link Associate tab to Windows Default Apps settings in MSIX builds

* docs: align spec with review-driven logo, dialog and Associate-tab changes

* clearn up
2026-06-11 23:56:16 +08:00
Noisyfox
06eefe7c1e Make sure mouse position is updated before hit test (#14139) 2026-06-11 02:47:33 +08:00
Ian Chua
847807adac fix: tombstone resolution for 409 status code with error code -3 (#14116)
* fix: tombstone resolution for 409 status code with error code -3

* fix: add resolution for undefined conflicts

* fix: generate setting id if it is empty for 409 tombstone

* fix: force push empty setting_id preset on 409 tombstone

* clearner solution
2026-06-10 22:23:12 +08:00
wujie
3be36bdea4 Fix Elegoo CC2 layer stats G-code and missing Giga preset renamed_from (#14136)
* 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.

* fix(profiles,elegoo): resolve renamed presets and CC2 SET_PRINT_STATS_INFO G-code

Resolve legacy preset names through renamed_from when validating presets and loading external projects. Add missing renamed_from aliases for Elegoo Giga process and OrcaFilamentLibrary filaments. Combine TOTAL_LAYER and CURRENT_LAYER in one SET_PRINT_STATS_INFO command on Centauri Carbon 2 (ECC2), Centauri (EC), and Centauri Carbon (ECC) 0.4 nozzle profiles.

* chore(profiles): bump Elegoo and OrcaFilamentLibrary profile versions

Refresh installed profile bundles after renamed_from aliases, CC2 SET_PRINT_STATS_INFO G-code, and Preset.cpp renamed preset resolution fixes.
2026-06-10 21:38:39 +08:00
Rodrigo Faselli
6d9ab28e2d Revert "skirt before brims (combine brim bugfix)" (#14131) 2026-06-09 20:25:34 -03:00
Rodrigo Faselli
38ea91a6bb skirt before brims (combine brim bugfix) (#14126) 2026-06-09 17:14:30 -03:00
SoftFever
445bcdfa00 Fix/orca auth network glitch logout (#14110)
* fix(auth): don't log out of Orca cloud on transient token-refresh failures
2026-06-09 02:34:25 +08:00
yw4z
ff51abc69b Improve incremental compile speed on windows (#12881)
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
2026-06-08 11:30:10 -03:00
SoftFever
f3a5c169c9 Fix user preset load crash from inconsistent per-variant vector sizes (#14106)
* Fix user preset load crash from inconsistent per-variant vector sizes
2026-06-08 22:13:00 +08:00
Kiss Lorand
bd41eebba9 Fix junction deviation and jerk settings behavior (#14004)
* Fix junction deviation and jerk settings behavior

Process settings now follow the selected printer's junction deviation
configuration. When machine_max_junction_deviation is enabled,
default_junction_deviation is shown and jerk settings are hidden. When
junction deviation is disabled, jerk settings are restored and
default_junction_deviation is hidden.

Fix a validation issue where junction deviation mismatch warnings could
be reported even when machine_max_junction_deviation was set to 0.
Warnings now apply only when junction deviation is active and point
directly to default_junction_deviation.

Also simplify Motion ability page visibility checks by reusing local
firmware-flavor booleans.

* GUI tweak

- separate Junction Deviation segment
- JD and Jerk stay visible
2026-06-08 20:27:37 +08:00
SoftFever
1e1d9cbaf8 Fix crash on printer switch from stale filament/extruder indices (#14103)
Switching to a printer with fewer filaments (e.g. H2D -> X2D) threw
std::out_of_range in check_filament_printable. Clear stale per-volume
extruder config on count shrink and bound-check filament indices at the
read sites.
2026-06-08 18:57:52 +08:00
SoftFever
0d586b28c4 Fix handy model menu failing in RelWithDebInfo (#14102)
* Fix handy model menu failing in RelWithDebInfo; replace pointer-compared labels with a data table
2026-06-08 17:16:54 +08:00
Kiss Lorand
8a64a5dd55 Fix organic tree support bottom interface layer number fallback (#14095)
- fix organic tree support bottom interface layer number fallback when "Same as top" is used
2026-06-08 15:48:49 +08:00
Kiss Lorand
a1897873ab Follow-up for PR #14069 (#14092)
- release the smoothing absolute hard limit of PR #14069
-  fix organic tree root mesh generation for buildplate roots
2026-06-08 15:46:19 +08:00
SoftFever
41ff0f976c Fixed an issue that "Z contouring" is not translatable 2026-06-08 00:36:53 +08:00
SoftFever
02abe78074 Complete Zh_CN translations and a minor locale fix 2026-06-08 00:06:45 +08:00
SoftFever
10a1b17381 Feature/fix profile variants issus (#14084)
* add print variant validation

* fix one profile error

* fix more prifiles
2026-06-07 17:46:53 +08:00
spr0u
ff4147ede3 fix: stuck hover state after opening printer preset dialog (#14082)
* fix: stuck hover state after opening printer preset dialog
2026-06-07 15:24:17 +08:00
Argo
2a08bf026f Bugfix: VFA calibration disables input shaping (Marlin 2) (#14079)
VFA calibration does not disable input shaping anymore
2026-06-07 14:12:44 +08:00
Kiss Lorand
454b6c0045 Fix crashing if slicing with non organic tree support (#14074)
Fix non organic tree support crashing

Fix Orca crashing during slicing if non organic tree support is used
2026-06-07 13:31:52 +08:00
spr0u
236a8f3941 fix: misc issues in step import dialog (#14067)
fix mesh count cancellation flag using uninitialized memory
fix initial waiting text being truncated
2026-06-07 13:30:13 +08:00
Kiss Lorand
4d86f5c250 Fix organic tree smoothing drift and layer mapping (#14069) 2026-06-07 13:28:58 +08:00
SoftFever
fcfadf0e8c Creality K-series support: LAN discovery + CFS filament sync + filament profiles (#13752)
## Summary

Adds end-to-end Creality K-series (K2 / K2 Plus / K2 Pro) host support
to OrcaSlicer in a single bundle, per [@SoftFever's request to
consolidate](https://github.com/OrcaSlicer/OrcaSlicer/pull/13752#issuecomment-4560837450)
the previously stacked PRs. Three logically separable features, all
gated on `host_type=crealityprint`:

1. **LAN auto-discovery** — `Browse...` in the Physical Printer dialog
now finds K-series printers on the local network via a DNS-SD
meta-browser (per-device-unique service names
`_Creality-<MAC>._udp.local.`). Other host types unchanged.
2. **CFS filament sync** — `CrealityPrintAgent` (inheriting
`MoonrakerPrinterAgent`) queries the K-series WebSocket on `:9999` for
`boxsInfo`, maps loaded CFS slots to Orca filament presets, and
populates the Sidebar via the standard `fetch_filament_info` →
`build_ams_payload` path. Matches the shape of `MoonrakerPrinterAgent` /
`QidiPrinterAgent` / `SnapmakerPrinterAgent` per [the earlier review
feedback](https://github.com/OrcaSlicer/OrcaSlicer/pull/13752#discussion_r3278574545).
3. **K-series filament profiles** — system profiles for CR-PLA / CR-PETG
/ CR-ABS / CR-Silk / CR-TPU / CR-Nylon / CR-Wood / Hyper PLA / etc. on
K2 / K2 Plus / K2 Pro nozzle sizes (imported from CrealityPrint v7.1.0+,
normalised to OrcaSlicer profile conventions).

The previous stack base (#13291, *CrealityPrint as host type*, by
@imammedo) is **also bundled into this PR** since it's currently
conflicting with main and not moving. Happy to extract it back out if
@imammedo's PR is preferred to land first for attribution — let me know.

## What this PR is *not*

- **No new UI surfaces.** All three features hook into existing UI
(Browse button, Sidebar sync icon, filament dropdowns).
- **No phone-home / telemetry.** No Hark Tech endpoints, no licence
checks, no opt-in dialogs. Pure upstream feature work.
- **No K-series-specific Device tab.** Embedded WebView falls back to
Fluidd/Mainsail on `:4408`, same shape as the existing Moonraker
integration.

## Screenshots

Captured against a K2 Combo (F021, firmware v1.1.260206) on the v4 test
build:

| | |
|---|---|
| ![Discovery
dialog](https://harktech.co.uk/tools/orca-k2/screenshots/orca-k2-discovery-dialog.png)
| **Discovery dialog** — `Browse...` flow on a `host_type=crealityprint`
printer. Click → ~5–10 s LAN scan → K2 found with model + hostname + IP.
|
| ![Filament sidebar populated from
CFS](https://harktech.co.uk/tools/orca-k2/screenshots/orca-k2-cfs-sync-filaments.png)
| **CFS filament sync** — Sidebar after clicking the sync icon: 4 slots
populate with the real loaded CFS spools (3× Hyper PLA + 1× CR-Silk). |
| ![Device tab showing
Mainsail](https://harktech.co.uk/tools/orca-k2/screenshots/orca-k2-device-tab-mainsail.png)
| **Device tab** — Mainsail loaded into the embedded WebView for
`host_type=crealityprint`, mid-print state visible. |

## What's added

### LAN discovery
- **`deps_src/mdns/`** — vendors
[mjansson/mdns](https://github.com/mjansson/mdns) (public domain) plus
Creality's `cxmdns` C++ wrapper from CrealityPrint v7.1.1 (AGPL-3.0,
compatible with OrcaSlicer's AGPL-3.0). Attribution in
`deps_src/mdns/NOTICE.md`.
- **`Utils/CrealityHostDiscovery.{hpp,cpp}`** — synchronous DNS-SD scan
+ per-host `GET /info` probe. Maps model codes `F008` / `F012` / `F021`
→ K2 Plus / K2 Pro / K2.
- **`GUI/CrealityDiscoveryDialog.{hpp,cpp}`** — modal `wxDialog` showing
Model / Hostname / IP for each discovered host.
- **`src/slic3r/CMakeLists.txt`** — adds `Iphlpapi.lib` and `Ws2_32.lib`
to `libslic3r_gui`'s MSVC link line (needed by `GetAdaptersAddresses` +
Winsock2 calls in vendored `mdns.c`).

### CFS filament sync
- **`Utils/CrealityPrintAgent.{hpp,cpp}`** — inherits
`MoonrakerPrinterAgent`, overrides `fetch_filament_info()` to query the
K-series WS protocol on `:9999`, build `AmsTrayData`, and call inherited
`build_ams_payload()`. No printer-specific code lives outside the agent.
- K2 Plus slot-state parser handles the three documented slot states
(`0` empty / `1` manually entered / `2` RFID-tagged) per [DaviBe92's
reverse-engineering docs](https://github.com/DaviBe92/k2-websocket-re).

### K-series filament profiles
- ~110 profile JSONs under `resources/profiles/Creality/filament/`
covering K2 / K2 Plus / K2 Pro × 0.2 / 0.4 / 0.6 / 0.8 nozzle combos ×
CR-PLA / CR-PETG / CR-ABS / CR-Silk / CR-TPU / CR-Nylon / CR-Wood /
Hyper PLA / Hyper PETG-GF / Hyper PLA-CF / etc.
- Imported from CrealityPrint v7.1.0; normalised to OrcaSlicer profile
conventions (tabs not spaces, no `{if !multicolor_method}` wrappers,
`filament_vendor: ["Creality"]` on Creality Generic profiles).

## Tester confirmations on the v4 test build

| Printer | Firmware | Result | Reporter |
|---|---|---|---|
| K2 Pro | v1.1.5.5 / CFS v1.4.2 |  LAN discovery on #13752 test build
|
[@Requiem-MH](https://github.com/OrcaSlicer/OrcaSlicer/pull/13752#issuecomment-4495235225)
|
| K2 Pro | v1.1.5.5 / CFS v1.4.2 |  CFS sync across 1-CFS, 2-CFS,
partial, full configurations |
[@Requiem-MH](https://github.com/OrcaSlicer/OrcaSlicer/pull/13744#issuecomment-4495230061)
|
| K2 Plus | v1.1.5.2 / CFS v1.2.2 |  Slot-state fix resolves the
partial-sync regression |
[@DaviBe92](https://github.com/OrcaSlicer/OrcaSlicer/pull/13744#issuecomment-4499425852)
|
| K2 Plus | v1.1.5.5 / CFS v1.4.2 |  All slots syncing correctly after
fix |
[@swilsonnc](https://github.com/OrcaSlicer/OrcaSlicer/pull/13744#issuecomment-4503273127)
|
| K2 Plus | (Reddit u/TrainAss) |  Both PLA + PETG slots populated
correctly |
[@TrainAss](https://github.com/OrcaSlicer/OrcaSlicer/pull/13744#issuecomment-4503401664)
|
| K1C | (latest stock) |  `boxsInfo` payload format compatible (4 slots
of generic PETG) |
[@JoveYu](https://github.com/OrcaSlicer/OrcaSlicer/pull/13744#issuecomment-4519036448)
|

## Known follow-ups (out of scope)

- **Snapmaker U1 regression**
([@TrainAss](https://github.com/OrcaSlicer/OrcaSlicer/pull/13744#issuecomment-4529350262)):
the v3 build also happened to sync filament from his U1; v4 regressed
this. The refactor only touches `htCrealityPrint`-gated code so this is
likely incidental — needs his config + logs to diagnose. Will follow up
in a separate issue once this lands.
- **Native Device tab for K-series**: deferred. Current Mainsail WebView
shim covers the common case.
- **#13581 (@hamham999) profile overlap**: confirmed minimal code
conflict (zero), profile-file overlap of ~204 files. Whichever PR lands
second rebases off the other.

## Test plan

- [x] Linux build clean on commit `<UPDATED AFTER BUILD>` (LXC 104, GCC
12, cmake)
- [x] MSVC link clean (manual VS 2026 / MSVC 14.51 build)
- [x] End-to-end on real hardware: K2 Combo, K2 Pro, K2 Plus, K1C
- [x] `host_type ≠ htCrealityPrint` paths unchanged — Bonjour fires for
OctoPrint, Flashforge picker fires for Flashforge, Moonraker / Qidi /
Snapmaker agents unchanged
- [x] Profile-validation CI green (was a separate Elegoo test-fixture
failure on main, not introduced by this PR)

Signed-off-by: Igor Mammedov <niallain@gmail.com>
Co-authored-by: Igor Mammedov <niallain@gmail.com>
Co-authored-by: grant0013 <grant@harktech.co.uk>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: hamham999 <hamham999@users.noreply.github.com>
Co-authored-by: Alys Andreollo <3528187+alysandreollo@users.noreply.github.com>
2026-06-07 13:16:50 +08:00
SoftFever
ffb55c5710 use DialogButtons 2026-06-07 13:12:51 +08:00
Alys Andreollo
5aa3c76c36 feat(CrealityPrint): add support for SPARKX i7 (F022)
Works directly with existing code, just adding the identifiers to the
arrays.
2026-06-06 23:27:38 +00:00
yw4z
97dcae6c6e Troubleshoot Center Dialog (#12416)
* init

* update translations

* clarify warning for rebuild

* auto fill issue field on github with gathered system information

* add detection for linux package type

* fix build errors

* update

* update

* improve reading windows version

* add multi file support for zip and use timestamp on exported zip name

* fix errors

* fix errorz

* fix URL encoding

* fix CPU info

* use home or desktop as default location

* fix distro name on flatpak

* improve detecting local build on linux

* check package type on all platforms

* optimize margins

* improve monitor detection

* add support for adding text file to zip and add system info on export

* exclude user related info from config

* improve exporting profile info

* fix linux monitor info

* update

* update detecting monitor info

* Update TroubleshootDialog.cpp

* Update TroubleshootDialog.cpp

* Update TroubleshootDialog.cpp

* revert scaling and resolution detection for linux

* include project file to zip and notify after saving zip successfully saved

* improve monitor info on mac

* update

* improve packing selection menu

* update

* Update TroubleshootDialog.cpp

* Update TroubleshootDialog.cpp

* Update TroubleshootDialog.cpp

* Update TroubleshootDialog.cpp

* update

* update

* make hash clickable

* fix compatible process counting

* export profiles overview instead copying to clipboard

* auto restart app after cleaning system folder

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2026-06-06 23:44:39 +08:00
Chris Djali
e9bc8628fc Fix mDNS on Windows machines with multiple network adapters (#13993)
ws2_32 (Winsock2) and wsock32 (Winsock) are not supposed to be used in the same application.
boost::asio requires ws2_32, but wxWidgets uses wsock32.
Which gets used depends on the order they appear in the link command, as they both define the same symbols, but with different behaviour.
ws2_32 is backwards-compatible with wsock32, so wxWidgets won't be negatively affected by linking with the newer version, and prior to c228ab2da1, that's what happened.
That commit reordered how some libraries were passed to the linker, so swapped the order of these two, breaking mDNS and causing https://github.com/OrcaSlicer/OrcaSlicer/issues/13969
2026-06-06 23:33:51 +08:00
Alexander
1bbf8b64f4 Fix Arachne duplicate extrusion caused by bead count mismatch (#14031)
* Add test for Arachne duplicate wall segment detection

Add test cases that reproduce an issue where Arachne generates
duplicate/coinciding extrusion segments at certain min_bead_width settings.

Test configuration:
- Profile: 0.28mm Extra Draft @BBL X1C (0.4mm nozzle, 0.28mm layer)
- outer_wall_line_width: 0.42mm, inner_wall_line_width: 0.45mm
- wall_loops: 2, precise_outer_wall: enabled
- Test polygon: outer rectangle (0,0)-(20,20) with inner cutout (0.5,0.5)-(19.5,19.5)
  This creates a 0.5mm wide frame around the perimeter.

Results:
- 50% min_bead_width (0.20mm): FAILS - detects 4 duplicate segments (all 4 sides)
- 60% min_bead_width (0.24mm): PASSES - no duplicates

At 50%, Arachne generates two separate closed loops that share all 4 edges
of the inner square. At 60%, Arachne generates a single closed loop.

SVG output is exported to /tmp/opencode/ for visual debugging.

* Fix Arachne duplicate extrusion caused by bead count mismatch

WideningBeadingStrategy::compute() used optimal_width (inner wall width)
to determine if a thin wall should produce a single bead. However,
getOptimalBeadCount() uses optimal_width_outer (outer wall width) via
RedistributeBeadingStrategy to decide the bead count.

This inconsistency caused situations where getOptimalBeadCount() returned
2 beads, but compute() produced only 1 bead at full thickness. The single
bead was then generated for both inner and outer contours, resulting in
duplicate extrusion paths.

Fix: Use getTransitionThickness(1) instead of optimal_width. This method
returns the exact threshold for the 1-to-2 bead transition, ensuring
consistency between bead count calculation and bead generation.

Reproduces with: 50% min_bead_width, 0.42mm outer wall, 0.45mm inner wall,
0.5mm polygon inset creating ~0.38mm wall thickness.

Fixes #13917

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-06-06 22:55:37 +08:00
spr0u
e87625e023 fix: freezing caused by dynamically hidden printer edit button (#14010)
* fix: freezing caused by dynamically hidden printer edit button

* track hover state of individual widgets
2026-06-06 20:39:40 +08:00
Ioannis Giannakas
9446030079 Linux: opt-in X11 workaround via GDK_BACKEND to enable Device tab HW accel on single monitor setups (#14039)
* Linux compositing - retain old code and make switchable via #if statement

* Make option settable via env variable/.desktop file

* undo accidental empty row delete
2026-06-06 19:09:13 +08:00
SoftFever
e23cfd4c7b Merge branch 'main' into pr/grant0013/13752 2026-06-06 17:14:33 +08:00
packerlschupfer
a529f8c473 Print Host: add Moonraker (Klipper) host type (#13991)
OrcaSlicer currently ships an "Octo/Klipper" host type that maps to the
OctoPrint REST endpoints (api/version, api/files/local). It works for
Klipper setups that run Moonraker with the OctoPrint-emulation plugin,
but native Moonraker — and Moonraker-compatible firmwares like the
Prusa-Firmware-Buddy buddy-klipper fork — speak a different shape:
distinct paths, JSON body for /printer/print/start, {"result":...}
envelope. There's no host type for that today.

Add a new Moonraker class deriving from PrintHost. Endpoints used,
matching the Moonraker spec:

- GET  /server/info                      — connection test, reads
                                            result.klippy_state
- GET  /server/files/roots               — storage-picker dropdown
                                            (returns roots with 'w'
                                            permission); gracefully
                                            degrades if absent
- POST /server/files/upload (multipart)  — upload (form fields:
                                            file, root)
- POST /printer/print/start (json)       — {"filename":"<path>"}; the
                                            filename is whatever the
                                            upload response returned
                                            in result.item.path, so any
                                            server-side rename
                                            (collision suffix etc.) is
                                            respected. JSON body is
                                            built via property_tree
                                            write_json so exotic
                                            characters in the path are
                                            properly escaped.

Auth: X-Api-Key header, only when printhost_apikey is non-empty
(Moonraker can be configured to require it but doesn't by default).
HTTP Basic / Digest are not part of the Moonraker spec and are not
sent.

Storage root is read from upload_data.storage with "gcodes" as the
fallback default, so the existing storage-picker plumbing in
PrintHostDialogs lights up automatically once enumerable roots are
returned.

UI: registers as the "Moonraker (Klipper)" entry under host_type;
selectable via the existing Physical Printer dialog (sidebar's
connection button on the printer card).

Verified against a Prusa-Firmware-Buddy buddy-klipper fork (firmware
identifies as moonraker_version "0.8.0-prusalink-shim"): /server/info
test, multipart upload to /server/files/upload, and JSON
/printer/print/start all work end-to-end. The existing "Octo/Klipper"
entry is left untouched so users currently relying on Moonraker's
OctoPrint-emulation plugin keep working.
2026-06-06 11:12:42 +08:00
Ioannis Giannakas
d5638273c6 Fix row spacing in objects list (#14053)
* Fix row spacing in objects list on MacOS
* Update for windows and linux
* Update row height for a more compact look while maintaining some spacing
2026-06-06 01:23:34 +03:00
foXaCe
57535f30ba i18n(fr): complete French translation to 100% + extract 3DPrinterOS dialog (#14037)
i18n(fr): complete French translation and extract 3DPrinterOS dialog

Translation (localization/i18n/fr/OrcaSlicer_fr.po):
- Translate 222 missing strings and revise 23 fuzzy entries (vouvoiement)
- Quality review of the existing catalog: fix 42 entries
  - "supported" calque -> "pris en charge" (physical sense -> "soutenu")
  - accented capitals (Emission -> Émission, Editer -> Modifier)
  - "cryptage" -> "chiffrement"; "initiés" -> "lancés"; "impacté" -> "affecté"
  - "basé sur" rephrased contextually; ASCII "..." -> "…" in FR strings
- Result: 0 untranslated, 0 fuzzy; placeholders preserved; msgfmt clean

Extraction (3DPrinterOS upload dialog, src/slic3r/Utils/3DPrinterOS.cpp):
- Wrap 9 hardcoded user-facing strings in _L()
- Align the radio-label comparison on _L() so the show/hide logic
  keeps working once the label is translated
- Add the file to localization/i18n/list.txt for gettext extraction
- Add the 7 new msgids to OrcaSlicer.pot and translate them in fr.po

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-06-06 02:11:00 +08:00
Ioannis Giannakas
1ec574bcbb Fix color swatch not updating when a different coloured filament is selected. (#14038)
* Fix color swatch not updating when a different coloured filament is selected.

* Address review comment
2026-06-06 02:01:51 +08:00
Ian Bassi
f4d34219b8 New FFF Wiki links (#14057) 2026-06-05 11:29:17 -03:00
ExPikaPaka
412eb13239 Retry preset migration when login warmup 401 blocks cloud check (#14049) 2026-06-05 21:25:45 +08:00
anjis
1469576dec Fix connection issues with CC2 on Linux (#14024) 2026-06-05 21:15:52 +08:00
Ian Bassi
ea35b9ce68 Divided filament for features (#14042)
* Implement legacy key handling to address possible profile issues following semantic change of per feature filaments

* Reimport base

* Fix inner wall

* Profiles update

---------

Co-authored-by: igiannakas <ioannis@my-spot.co.uk>
2026-06-05 20:45:43 +08:00
Kiss Lorand
6667266b44 Fix tree support interfaces and edge filling (#14040)
Fix tree support interfaces

Fix:
  - non-organic tree support interfaces printing in air
  - organic tree interface missing
2026-06-05 20:39:54 +08:00