Commit Graph

28384 Commits

Author SHA1 Message Date
Derrick
bb62838329 remove duplicate of warning notification for wipe tower and precise z (#12192)
Fix duplicate of confirmation window for prime tower and precise z warning notification

JIRA-23
2026-02-06 17:22:37 +08:00
Derrick
87eba4bc61 Fix extruder name >2 extruder printers (#12190)
Fix for memory access violation when using printers other than bbl printers with >2 extruders.

JIRA-24
2026-02-06 16:55:35 +08:00
SoftFever
4fe58f85f9 Fix Bambu Lab camera feed / Add IsShown() check (#12156) (#12173) 2026-02-06 09:21:26 +08:00
SoftFever
b4fee7dff9 Fix a regression where the login panel is displayed even when the plugin is disabled (#12185)
Update GUI_App to show or hide the login panel based on the "installed_networking" setting.
2026-02-06 09:18:52 +08:00
Valerii Bokhan
04a16dd804 Fix: Free camera panning/rotating fixed (#12174)
Fixes #10266
2026-02-05 19:57:23 +00:00
Ioannis Giannakas
38e2f2003c Update Reduce infill retraction tooltip to include effect on Z-hop (#12184) 2026-02-05 15:10:42 +00:00
Ioannis Giannakas
c3544433c1 Fix printer selection cursor on Mac (#12183) 2026-02-05 13:37:50 +00:00
Argo
cb00543bb2 AMS Filament sync fix for locked Tool 1 & 2 (#12180)
Toolchanger printers with 4 tools were incorrectly treated as dual-nozzle (IDEX-style) printers in AMS Sync. So I was locked to just tool 1/2. 

Adjusted AMS Sync to use dual-nozzle logic only for true 2-nozzle setups (nozzle_nums == 2 and filament_map in {1,2}), and route 3+ tool toolchangers through the generic mapping flow so all tool IDs are handled correctly.

Before: 
<img width="2276" height="1738" alt="image" src="https://github.com/user-attachments/assets/ccebc020-37cf-4af6-8568-a9f331f6c08c" />

After:
<img width="2236" height="1662" alt="image" src="https://github.com/user-attachments/assets/030f49c3-463d-4355-95ba-ba8f95a01ecd" />

Tested on / with:
- Snamaker U1
- ARM macOS
2026-02-05 18:18:59 +08:00
SoftFever
b05e1c5c01 Fix compare dialog alternate background color on windows (#10781)
**PROBLEM**
• Row colors not updating after switching dark mode and opening dialog again
• Fixes https://github.com/SoftFever/OrcaSlicer/issues/9902 and https://github.com/SoftFever/OrcaSlicer/issues/966

**IMPORTANT NOTE**
• Main source of problem: dialog not destroyed after closing

**BEFORE**
<img width="769" height="682" alt="Screenshot-20250918134833" src="https://github.com/user-attachments/assets/dd77696c-ad2d-4de7-aaab-f85dd558dbbe" />

**AFTER**
<img width="757" height="677" alt="Screenshot-20250918134857" src="https://github.com/user-attachments/assets/fd28941d-996d-410f-ab04-b13f1dd0170f" />
2026-02-05 18:04:15 +08:00
Ioannis Giannakas
5fd5749c54 Fix wipe dialogue pointer on mac (#12172) 2026-02-04 14:25:56 +00:00
yw4z
a7ce29c2d6 UI Fixes / Improvements (#12069)
* clone dialog - spin input stuck on selected

* fix advanced toggle label

* fix scrollbar appearing on project page welcome screen

* create slicing section on preferences

* reduce margins on tabs

* bbl part skip dialog

* Update filament_not_mactch.svg

* Update icon_qusetion.svg

* match hyperlink color on notifications

* fix position of notifications on slicing errors

* match background color of BBL > Calibration tab > Sidebar

* match look of BBL sidebars

* match bbl monitor icons

* match multi-device page margins

* bbl > monitor > print control buttons

* fix flush dialog showing text selection on buttons

* Printer network dialog > match combo box width
2026-02-04 11:40:02 +00:00
yw4z
a5c4cc6cad Tool position window Fixes / Improvements (#12068)
* init

* fix fold/unfold button direction

* remove window border

* remove unused icons

* add scaling support

* match libvgcode roles with orca terms

* fix expanding table window

* Update GCodeViewer.cpp

* fix translation support

* fix translations

* fix imgui styles
2026-02-04 11:38:05 +00:00
Rodrigo Faselli
85155d4a64 Small memory optimization for some infills (#12063) 2026-02-03 12:46:31 -03:00
Ian Bassi
9d6622c933 Fix instance preview movement speed (#12154) 2026-02-03 12:46:02 -03:00
Ian Bassi
73f8e3e7be AutoSlice Only on preview Tab (#12153) 2026-02-03 12:45:43 -03:00
Kiss Lorand
7f2625e122 Isolate narrow regions in internal solid surfaces for non-line infill patterns (#12107) 2026-02-03 12:44:56 -03:00
SoftFever
d88fc3a730 Fix Setup Wizard stuck on "Loading..." on Wayland (#12159)
# Description

Fixes the Setup Wizard getting stuck on the "Loading......" screen when
running on Wayland sessions.

**Root Cause:** When OrcaSlicer runs under XWayland (Wayland sessions
with `GDK_BACKEND=x11`), WebKit2GTK's compositing mode can fail
silently, causing the Setup Wizard WebView to freeze or render blank.
The JavaScript signal from C++ (`userguide_profile_load_finish`) either
fails to execute or its rendering result never displays, leaving users
permanently stuck.

**Solution:**
1. Set `WEBKIT_DISABLE_COMPOSITING_MODE=1` environment variable to force
software rendering for WebKit2GTK - this is the same fix used by
BambuStudio
2. Enable the 20-second timeout fallback in `load.js` so the wizard
proceeds automatically even if the C++ → JavaScript communication fails

**Files changed:**
- `src/OrcaSlicer.cpp` - Added `WEBKIT_DISABLE_COMPOSITING_MODE` env var
(4 lines)
- `resources/web/guide/0/load.js` - Enabled timeout fallback (2 lines)

# Screenshots/Recordings/Graphs

N/A - This is a Linux/Wayland-specific fix that addresses a rendering
issue. The visual result is simply that the Setup Wizard proceeds past
"Loading......" as expected.

## Tests

1. **On Wayland session (e.g., GNOME on Wayland):**
- Remove existing config (`~/.config/OrcaSlicer/`) to simulate first
launch
   - Launch OrcaSlicer
- Verify Setup Wizard proceeds past "Loading......" to the actual wizard
page

2. **On X11 session:**
   - Same test as above to verify no regression

3. **Verify env var is set:**
- Check that `WEBKIT_DISABLE_COMPOSITING_MODE=1` is in the process
environment on Linux builds
2026-02-03 23:10:17 +08:00
SoftFever
e6206d4494 Fix hangs when trying to edit printer on Linux (#11714) (#11854)
On linux, some users report that attempting to edit the printer caused
OrcaSlicer to hang.
Fixes #11714
2026-02-03 23:10:02 +08:00
SoftFever
4a3d8c2792 Modularize printer agent architecture and add filament sync for third-party AMS-style systems (#12086)
# Description

This PR lays the groundwork for future OrcaSlicer ↔ printer connectivity
enhancements by modularizing the network agent architecture. It also
adds experimental filament info sync from printers that have a material
station or multi-tool system.

## Architecture Changes

- **Introduce `IPrinterAgent` interface** — an abstraction layer that
allows per-machine printer agent switching at runtime, decoupling
printer communication from the monolithic `NetworkAgent`
- **Introduce `ICloudServiceAgent` interface** — separates cloud service
logic from printer-level communication
- **Extract `OrcaCloudServiceAgent`** — moves Orca cloud service logic
into its own implementation behind `ICloudServiceAgent`
- **Extract `OrcaPrinterAgent`** — wraps the existing BBL printer
communication behind `IPrinterAgent`
- **Add `NetworkAgentFactory`** — factory for creating the appropriate
printer agent per machine
- **Refactor `NetworkAgent`** — slimmed down from monolithic class to a
thinner coordination layer

## New Printer Agents

- **`MoonrakerPrinterAgent`** — Klipper/Moonraker-based printers
- **`QidiPrinterAgent`** — Qidi printers (with Qidi filament box
support)
- **`SnapmakerPrinterAgent`** — Snapmaker printers with filament sync

## Filament Sync (Experimental)

Syncs filament information from printers equipped with AMS-style
material systems or multi-tool changers:
- Qidi printers with Qidi box
- Armored Turtle (AFC) box via Moonraker
- Snapmaker material station

For Qidi printers with Qidi box:
<img width="1200" height="762" alt="Screenshot 2026-01-27 at 20 30 55"
src="https://github.com/user-attachments/assets/155a164f-cd08-40b0-b62b-c3ab7378224e"
/>

Armored Turtle box:
<img width="1135" height="805" alt="Screenshot 2026-01-27 at 20 32 58"
src="https://github.com/user-attachments/assets/50f6618e-eb54-46db-8e01-1197a005fbf0"
/>

# Screenshots/Recordings/Graphs

[filasync.webm](https://github.com/user-attachments/assets/e6bb7f04-8312-4014-b237-6bd3ef792215)

## Tests

<!-- Please describe the tests that you have conducted to verify the
changes made in this PR. -->
2026-02-03 15:42:46 +08:00
SoftFever
2c14a5fd27 Fix Setup Wizard stuck on "Loading..." on Wayland
When running under XWayland (Wayland sessions with GDK_BACKEND=x11),
WebKit2GTK's compositing mode can fail silently, causing the Setup
Wizard WebView to freeze or render blank. This leaves users stuck on
the "Loading......" screen indefinitely.

Changes:
- Set WEBKIT_DISABLE_COMPOSITING_MODE=1 to force software rendering,
  matching the fix used by BambuStudio
- Enable the 20-second timeout fallback in load.js so the wizard
  proceeds even if the C++ -> JavaScript signal fails
2026-02-03 14:47:08 +08:00
SoftFever
a294c686f2 rename agent 2026-02-03 12:01:19 +08:00
SoftFever
4fad476d5f Merge branch 'main' into feature/orca_network_refactor 2026-02-02 23:51:39 +08:00
Noisyfox
7e638b0d77 Fix crash when open AMS 2 humidity popup (#12123) 2026-02-02 23:50:12 +08:00
SoftFever
01a21ed1eb fix an issue the bbl printer not working 2026-02-02 23:48:22 +08:00
SoftFever
671760b9d4 fix UI block issues 2026-02-02 18:12:19 +08:00
SoftFever
aa197a1a6c Fix an issue that sync ams btn is not show/hide after printer agent changes 2026-02-02 12:21:41 +08:00
SoftFever
8abd178f64 Use visible preset lookup for AMS filament fallback to ensure persistence across restarts 2026-02-01 23:54:21 +08:00
SoftFever
3b935de975 Add SnapmakerPrinterAgent with filament sync support
Introduce SnapmakerPrinterAgent as a MoonrakerPrinterAgent subclass
that handles Snapmaker UI -specific filament detection
2026-02-01 21:51:36 +08:00
SoftFever
45c178eb99 Fix active filament preset not matching wizard selection on first run (#12132)
* Fix active filament preset not matching wizard selection on first run

After completing the setup wizard with only a non-PLA filament selected
(e.g. Generic ABS), the active filament preset defaulted to Generic PLA
instead of the user's selection. This happened because load_presets()
falls back to Generic PLA when the initial printer differs from the
preferred printer, and the first_added_filament override was disabled.

Add post-load correction in apply_config() that switches the active
filament to the first compatible wizard-selected filament when the
current active filament is not in the wizard selection. Also fix the
guide JS (22.js, 23.js) to use the filalist attribute for building
the filament array, and add platform-specific build test commands to
CLAUDE.md.

* Replace @System filaments with vendor-specific overrides in wizard

When the wizard selects a generic filament like "Generic ABS @System",
check if a vendor-specific override exists (e.g. BBL "Generic ABS")
and use that instead. This ensures printer-tuned profiles are preferred,
preventing load_installed_filaments from adding unwanted BBL defaults.

When printers from the default bundle are also selected, both variants
are kept since those printers need the @System version.

Also adds diagnostic logging for filament loading in LoadProfileFamily.

* Guard against persisting presets for Default Printer and fix filament override logic

Prevent export_selections from saving stale preset settings for the
built-in "Default Printer" placeholder, which is only the initial state
before a real printer is loaded. Also require a non-default vendor printer
to be selected before replacing @System filaments with vendor-specific
overrides in the wizard, avoiding incorrect filament substitution when
only the default bundle is present.
2026-02-01 21:34:14 +08:00
liutang
9b39c5f3d1 Snapmaker U1: switch wall_generator to arachne (#12121) 2026-02-01 00:10:09 +08:00
SoftFever
586ac42320 Merge branch 'main' into feature/orca_network_refactor 2026-02-01 00:08:11 +08:00
SoftFever
073edc4a1c Make the generic filament the default fallback instead of using filaments sorted alphabetically by name. (#12124) 2026-02-01 00:06:39 +08:00
SoftFever
455b17ebaa Add handling for unknown filament IDs and improve filament type resolution 2026-01-31 19:32:35 +08:00
SoftFever
b4eec3fd96 clean up 2026-01-31 01:04:27 +08:00
SoftFever
efee846d25 badge support 2026-01-31 01:04:21 +08:00
SoftFever
46d43a9fa6 fix badge mark 2026-01-30 16:14:41 +08:00
SoftFever
0107147218 try to fix flatpak 2 2026-01-29 22:28:25 +08:00
SoftFever
1d7b83d399 try to fix flatpak 2026-01-29 19:19:37 +08:00
SoftFever
2e11267ddf fix a crash bug when trying to add a filament after sync ams list 2026-01-29 19:10:44 +08:00
SoftFever
8e7860a090 fix issues with AFC 2026-01-29 15:35:52 +08:00
SoftFever
c6d91baeb3 fix a few bugs 2026-01-28 19:04:56 +08:00
yw4z
0874aabf6f add safe guard 2026-01-28 03:13:51 +03:00
Rodrigo Faselli
67ac5ea43f 3d honeycomb bug fix (with infill combination) improve bridge direction (#12062)
* fill 3d honeycomb bugfix

* fix bridges

Co-Authored-By: tome9111991 <57866234+tome9111991@users.noreply.github.com>

* Fix typo

* cleaning

* Remove bridging angle adjustment for ip3DHoneycomb

* Adjust layer height scaling for infill consistency

* PR comments

---------

Co-authored-by: tome9111991 <57866234+tome9111991@users.noreply.github.com>
2026-01-27 19:12:18 -03:00
SoftFever
7b87292621 fix Windows build 2026-01-27 21:21:44 +08:00
SoftFever
dbfd18a98c Merge branch 'main' into feature/orca_network_refactor 2026-01-27 21:04:14 +08:00
SoftFever
93206074a9 add ninja option for Windows build 2026-01-27 21:02:37 +08:00
SoftFever
8b33e21945 Merge branch 'main' into feature/orca_network_refactor 2026-01-27 20:59:07 +08:00
SoftFever
937acdf7a1 refactor 2026-01-27 17:41:29 +08:00
mrmees
6cea172577 fix: adaptive layer height profile uses uncompensated Z height (#12080)
layer_height_profile_adaptive() was using object_print_z_height()
(shrinkage-compensated) to bound the profile, but
update_layer_height_profile() validates against
object_print_z_uncompensated_max. When shrinkage compensation is
active, the mismatch causes the adaptive profile to be silently
cleared every frame and replaced with flat layers.

Use object_print_z_uncompensated_height() instead, matching both
the validator and the existing layer_height_profile_from_ranges()
implementation which already uses the uncompensated value.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 20:04:21 -03:00
Ian Bassi
f43daed819 Update src/slic3r/GUI/Plater.cpp 2026-01-26 18:30:46 -03:00