Commit Graph
181 Commits
Author SHA1 Message Date
HanifKoh 84657ff11e Add Missing Includes Across the Remaining Sources and Tests (#16071)
* Ignore Clipper, libpng, mcut and Boost.Polygon Internals in clang-tidy

Each only works through a wrapper or umbrella header: libslic3r/clipper.hpp or clipper_z.hpp configure Clipper before including it, png.h pulls in libpng's config headers, and Boost.Polygon's headers only compile through polygon.hpp or voronoi.hpp.

* Ignore minilzo's Config Headers in clang-tidy

lzoconf.h and lzodefs.h are internal to minilzo.h, which is what the code includes.

* Add Missing Includes Across the Remaining Sources and Tests

Covers src/slic3r/Utils, src/slic3r/plugin, src/slic3r/Config, src/libvgcode, src/dev-utils, src/OrcaSlicer.cpp and tests/, the directories left after src/slic3r/GUI and src/libslic3r. Generated with clang-tidy misc-include-cleaner. libvgcode's own headers are included by relative path as in the rest of that library, and Catch2 and pybind11 with angle brackets as elsewhere in the repo.

* Make the GUI and Test Headers Compile on Their Own

Each now includes, or forward-declares, what it uses instead of relying on what its includers happened to include first. Headers that only compile on one platform, or that nothing built includes, are left alone.

* Keep Windows and nanosvg Setup Ahead of the Added Includes

OrcaSlicer.cpp and several tests set _WIN32_WINNT, WIN32_LEAN_AND_MEAN or NOMINMAX before including Windows.h, and the profile validator defines NANOSVG_IMPLEMENTATION before any libslic3r header. The added includes had landed above those blocks, which broke the Windows build.

* Add the GUI Includes the First Pass Missed

Covers headers that only became editable once they compiled on their own, and wx symbols whose suggested header changed as the clang-tidy ignore list grew after the src/slic3r/GUI pass.

* Keep the Added Test Includes Below the NOMINMAX Guard

test_marchingsquares.cpp and test_texture_displacement.cpp had includes inside #ifndef NOMINMAX, which the tests inherit as defined on Windows from libslic3r, so those were skipped there. .clang-tidy also ignores the MSVC STL and UCRT internals, Boost.Multiprecision's fwd.hpp and CPython's Windows include directory, as in #16068.
2026-10-03 13:45:21 +08:00
HanifKoh 1a5f91d727 Add Missing Includes Across src/slic3r/GUI (#16048)
* Add Missing Includes Across src/slic3r/GUI

Every GUI source and header now directly includes the headers declaring what it uses, rather than relying on the precompiled header or transitive includes. Generated with clang-tidy misc-include-cleaner, plus one hand edit making CalibrationPanel.hpp self-contained.

* Drop the OS-Specific Includes Added Outside Their Platform Guards

GLib, GTK, D-Bus and POSIX headers are only used inside platform #if blocks, which already include them. Added unconditionally at the top of the file they broke the Windows build.

* Add the clang-tidy Configuration That Generated These Includes

Only misc-include-cleaner's missing-include check, with the headers it must never suggest: per-platform, internal and OS-specific ones that would break other platforms or are not meant to be included directly.

* Match Windows Paths in the clang-tidy Ignore List

Header paths use backslashes on Windows, so every / in a pattern is now [/\\]. The Windows SDK headers are ignored alongside the other OS-specific ones, and the list is one pattern per line. Suggested by @raistlin7447 from a Windows clang-cl run.
2026-10-02 14:56:56 +08:00
Kris Austin 0b6bbd85bd build: clear 75 warnings - hidden base overloads (#15542) 2026-09-06 11:08:57 -03:00
Kris Austin 142c63ab0e build: clear 143 -Woverloaded-virtual warnings in GUI widgets (#15377) 2026-08-26 19:14:30 -03:00
SoftFever bd854c5ce5 Fix AMS settings icon clipping on macOS 2026-07-19 18:36:52 +08:00
SoftFever 50abe02f18 Make AMS trays read-only in laser mode and add the gradient fill helper 2026-07-17 05:06:09 +08:00
SoftFever 7265a2fbfe Resync the AMS control and item widgets 2026-07-17 04:30:45 +08:00
Noisyfox 246f2d32bf Merge branch 'main' into dev/ams-heat
# Conflicts:
#	src/libslic3r/Preset.cpp
#	src/libslic3r/PrintConfig.hpp
#	src/slic3r/GUI/DeviceCore/CMakeLists.txt
#	src/slic3r/GUI/DeviceCore/DevDefs.h
#	src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp
#	src/slic3r/GUI/DeviceCore/DevFilaSystem.h
#	src/slic3r/GUI/DeviceCore/DevUtilBackend.cpp
#	src/slic3r/GUI/DeviceCore/DevUtilBackend.h
#	src/slic3r/GUI/DeviceManager.cpp
#	src/slic3r/GUI/DeviceManager.hpp
#	src/slic3r/GUI/SelectMachine.cpp
#	src/slic3r/GUI/SelectMachine.hpp
2026-07-14 10:10:19 +08:00
SoftFever 0d31325df0 feat: Filament Track Switch (H2-series O2L-FTS) support
The Filament Track Switch (H2-series accessory, product code O2L-FTS) feeds
every AMS to both extruders through a two-track switch. Port full support
across the device layer, project config, and GUI.

Device / config:
- Model the switch-aware AMS binding (the set of extruders an AMS can feed
  and which input track A/B feeds it), switch readiness, the O2L-FTS firmware
  module, and the fun2 capability bit for checking a slice against installed
  hardware.
- Register has_filament_switcher and enable_filament_dynamic_map as project
  config that persists with the project and restores from a saved 3mf, and
  force both back to false on every project/printer/CLI load path. Live
  device sync is the only thing that sets them true.

GUI:
- Sidebar sync activates the switch from live device state, attributes each
  AMS to the extruder its input track feeds, shows a floating status icon
  (ready / not-calibrated), and surfaces a one-time tip / not-calibrated
  warning.
- Send dialog gains a non-blocking slice-vs-hardware mismatch warning and a
  blocking error when a slice needs dynamic nozzle mapping but the switch is
  missing or not set up.
- AMS load/unload guards, AMS-view routing glyph + un-calibrated banner +
  hidden external-spool road, and mapping-popup external-spool lockout.
- Filament pickers collapse the per-extruder split into a single deduplicated
  "AMS filaments" group with a smart-assign toggle when the switch is ready.
- Firmware-upgrade panel lists the O2L-FTS accessory and its version.
- Device-provided filament-change steps (ams.cfs) drive the change-step
  display when firmware sends them, including the three switch steps.
- "Load current filament" asks which extruder to feed via a
  FeedDirectionDialog when the switch is calibrated.

Inert without the accessory: every path is gated on the switch being
installed (MQTT aux bit 29, default off) or ready, both project flags default
false, and the per-extruder AMS attribution is byte-identical, so AMS state,
the send/load UI, and sliced g-code are unchanged for every printer that does
not report a Filament Track Switch.
2026-07-09 18:57:05 +08:00
Noisyfox f713c7ae49 Make sure codes uses same structure/naming/position as BambuStudio
for easier code comparasion & porting in the future
2026-07-07 17:07:40 +08:00
Noisyfox b2827cb9fa feat: wire AMS humidity click to open AMSDryControl dialog
For N3F and N3S AMS types, clicking the humidity indicator
now opens the full drying control dialog instead of the popup.
2026-07-07 14:36:52 +08:00
Ian Bassi 514ab02525 Localizations refactor (#14254) 2026-06-18 09:13:51 -03:00
SoftFever 1065d85dbc Fix wxEXPAND | wxALIGN_* sizer flag conflicts for wxWidgets 3.2+
wxWidgets 3.2+ asserts on invalid sizer flag combinations where
wxEXPAND (which fills the entire space in the secondary direction)
is combined with wxALIGN_* flags (which are meaningless when expanding).
Remove the conflicting wxALIGN_* flags from all 112 occurrences across
21 files, keeping wxEXPAND and any non-conflicting flags intact.
2026-03-24 20:50:44 +08:00
Alexandre Folle de Menezes d54adafdaa Grammar and spelling fixes on GUI strings (#12410) 2026-03-03 17:36:42 -03:00
yw4z 00ff06a5d3 Match button styles on whole UI and fixes for button class (#11233)
* init

* web buttons

* Bind Dialog & Fix states

* update

* update

* Update common.css

* objcolordialog

* privacy update dialog

* Update CaliHistoryDialog.cpp

* Update MultiMachineManagerPage.cpp

* Update AMSControl.cpp

* TipsDialog

* Update AMSMaterialsSetting.cpp

* extrusion calibration

* Update UpdateDialogs.cpp

* recenterdialog

* update

* Update Calibration.cpp

* update

* update

* update

* fix

* update

* ReleaseNote

* update

* update

* fix remember checkbox position

* add comments
2025-12-18 12:14:56 +00:00
xin.zhang 9d73426c0a ENH: remove Remove unnecessary restrictions when Load or Unload
JIRA: [STUDIO-14269]
Change-Id: I1663f664d7e3248fa3be29f6040247c0ab3b03c4
(cherry picked from commit 79689556eb247240cf57323706411d3d9f6116a5)
2025-10-28 15:29:58 +08:00
xin.zhang 491100a9d2 ENH: support AMS switching for A series; clean class AMSSetting
jira: [STUDIO-14068] [STUDIO-14330]
Change-Id: I6281fbf56f3bf406ef28103998790a2a98c3f5c0
(cherry picked from commit 8ee02ec73076691c482ea6d089a49ea1c99ad10c)
2025-10-28 15:29:55 +08:00
Noisyfox a9c0490c68 Update color 2025-10-05 16:02:17 +08:00
xin.zhang bdf413fb58 FIX: incorrect display of AMS humidity
JIRA: [STUDIO-13742]
Change-Id: I25c26282c48faa05ab07dbb0cdbf5147bf475ccd
(cherry picked from commit 971afb8365c955c2562bb5c2d7a8effdc2b625ce)
2025-10-02 17:07:21 +08:00
xin.zhang 4a787f6ff8 ENH: clean codes about device
JIRA: [STUDIO-13609]
Change-Id: I591de7033360b9570600006cfbce2148a8d031d5
(cherry picked from commit e9c774be8f4c89b8dafa14ef56913612fb68bd0c)
2025-10-02 09:30:48 +08:00
yongfang.bian 2f18d25a2d FIX:clear wxwidgets asset
jira: nojia
Change-Id: I8ba2849afa07bc162a55b326c3d9a45150243ac3
(cherry picked from commit 96ba14c86d3cf180eeb585185d31bcb5d5db7415)
2025-09-30 14:34:08 +08:00
xin.zhang 0721078177 ENH: update humidity display for AMS-1
JIRA: [STUDIO-13195]
Change-Id: I7abcdf821b7ead2cf4a8605ecd95011e74f5dc6b
(cherry picked from commit 1c1d34ff7e3fea4492ba07e238ca171e28eb0a3b)
2025-09-30 11:19:59 +08:00
xin.zhang 0bbd563a79 ENH: Add label if the button can not be used
jira: [STUDIO-12929]
Change-Id: Ia4026282a44fd1a83a4292d7a7d11d43ed035db6
(cherry picked from commit e65755a474bc36bee0f22b7a6fb9c7eb5f86be65)
2025-09-28 15:00:22 +08:00
xin.zhang 33891e4ddc FIX: use wxDialog instead
jira: [STUDIO-12440]
Change-Id: I812e401fa46ba803bfc27b5c498b9d576e663173
(cherry picked from commit f02ef821166abf133036835575f6c71a39faa350)
2025-09-24 13:12:55 +08:00
xin.zhang 2bbd4f89f8 FIX: check if the filament is unknown
jira: [STUDIO-12085]
Change-Id: Ibf40d7a5106a40385aff5c769e5b7e5cdb866de0
(cherry picked from commit 012b6f2395d66b7b1bdafa3e851ca4b2f874eb23)
2025-09-23 09:21:03 +08:00
tao wang bb74ca8b63 ENH:supports new fields for flag3
jira:[none]

Change-Id: I013c7b843f3f7d5156a8d209572da2bc078e9191
(cherry picked from commit 106d9865c3e569b95519ae9bd9193d10bd991d1a)
2025-09-21 13:47:56 +08:00
tao wang 426b5900ee ENH:compatible with AMS exist flag
jira:[none]

Change-Id: I6afeafe0676eded86f83838576d67233f50ee509
(cherry picked from commit a182fa1aa4a3bdd32c4ccfa26adcd92a9f1cca37)
2025-09-21 13:47:51 +08:00
xin.zhang f9a7f056e9 FIX: use different ext image for different machine
jira: [STUDIO-11133]
Change-Id: Ice69b4f33317e23a2c2d7b8fbdfc94402b4bba28
(cherry picked from commit a67acd8f0ced49052cfe0c4b01a5bf159b046e85)
2025-09-20 15:30:14 +08:00
tao wang 947e034b14 ENH:fix X&P printer displaying incorrect N3S
jira:[none]

Change-Id: I15b30e3f45b060b696e7dd2ab4617a7835e9e6c9
(cherry picked from commit 8cb358305c341074418fc8d75c260b0cb6bc661b)
2025-09-18 10:56:27 +08:00
xin.zhang 581af2c433 FIX: update is_info_ready function
jira: [STUDIO-10608]
Change-Id: I068969223e54b1fa2056a0acc80bef87d167942c
(cherry picked from commit 44e068e705742b37513d2ce65c18a41007d4b7d8)
2025-09-17 23:08:31 +08:00
xin.zhang 6632db0758 FIX: update the image size
jira: [STUDIO-10732]
Change-Id: Ib4d55b911740cef079f38cd497d40a29ae3b1031
(cherry picked from commit 0ffcd9cc13ce7bbc1f6f96a09647e2f6afa112b1)
2025-09-17 23:08:20 +08:00
xin.zhang 03ea48c6b4 FIX: update the extruder image in status panel
jira: [STUDIO-10732]
Change-Id: I5437c4ef1538f0022f97c7ef7fb40ec2242328ed
(cherry picked from commit f5c49c89a80e508a442440218b068446d1e9e797)
2025-09-17 23:06:54 +08:00
xin.zhang 385c8a36a1 FIX: update the time shown; keep the val update while popup
jira: [STUDIO-9268]
Change-Id: I0b743ddb0ae479f9baad6239f68861a199681cda
(cherry picked from commit e1bc737d1cbc1dcf79ceecf9ed301a4a02590d5a)
2025-09-17 17:38:35 +08:00
xin.zhang 8ccd7b0cc6 FIX: make the AMS Preview area able to scroll
jira: [STUDIO-10502]
Change-Id: Ia720caa529636070b0ea2772fbe0f552b02e7060
(cherry picked from commit 6ec477b595fa12298571788ddfac51e06b33ac81)
2025-09-17 15:49:42 +08:00
xin.zhang d557b8e35b FIX: The humidity popup with humidity_percent/temperature/dry_time
jira: [STUDIO-9268]
Change-Id: Ic6e923ae7cff56fa3e053d48e5dea6e393cd41eb
(cherry picked from commit 75da1db2f926125a0cb3595a8cae9f4d7588c6a8)
2025-09-17 15:49:02 +08:00
xin.zhang f5829ee837 FIX: THE align problem
jira: [STUDIO-10044]
Change-Id: I6bdb49aaf1ba92289110f72980d8532b0afdaaf0
(cherry picked from commit 750673b7f7a2091c66d76a403de9b2a7e305022b)
2025-09-17 15:06:04 +08:00
xin.zhang 23a52305dc FIX: the AMS shown fault because of dirty data
jira: [none]
Change-Id: I82c627e351c996b2c3c352220a2b0a837c205c39
(cherry picked from commit 888687de8283c167a19a9bfaee1654e455148264)
2025-09-17 10:04:05 +08:00
xin.zhang 960d676043 FIX: the AMS EXT image fault
jira: [STUDIO-10044]
Change-Id: I71d142cd763deff33f1c42047b5ae6ac81574b3f
(cherry picked from commit d50fc6a0ce421afaba93d7a67d89aebeeab1f7bf)
2025-09-16 22:57:56 +08:00
xin.zhang d999107d49 FIX: the dark mode n3s SVG center is not empty, which will cover the AMS color
jira: [STUDIO-10308]
Change-Id: I67c5bdb753abfe9fa233e427a7b518c2fad4fd01
(cherry picked from commit 0730c4ec51e859f5ba7474c64edfaac657dc69de)
2025-09-16 22:57:47 +08:00
xin.zhang b3ca79146b FIX: complete the AMS fresh while state changed
jira: [STUDIO-10305]
Change-Id: Ie6cbc359bdf9fe02f103f58e25f490105faaf381
(cherry picked from commit 9d7c9c54fc47d6e9000d2570fd391a9823e8b33e)
2025-09-16 22:33:31 +08:00
xin.zhang 319e93ba4d FIX: try to reduce page fault while idling
jira: [none]
Change-Id: I563cbf4a8ba8a4ae1e5b1b1f735753d3aef23e16
(cherry picked from commit ed1e9678c351dc037f2e3cc7ea0e19d46731699c)
2025-09-16 21:21:40 +08:00
tao wang 919606110c ENH:optimize some layouts at different resolutions
jira:[STUDIO-9807]

Change-Id: I3d432734a6b3f494ed79d816b754d6d1cbcd3a0f
(cherry picked from commit d134b66446e5a9561152b6545fe79d19a70dddfe)
2025-09-10 09:02:43 +08:00
tao wang 5eeea0beba ENH:fix mapping rules when printing from SD card
jira:[STUDIO-9699]

Change-Id: I6019875b312cd29d20d69c876d195e5da1a88d18
(cherry picked from commit 062d4745dd9d19c62b618235ef819f247e538e68)
2025-09-09 14:41:24 +08:00
tao wang ac3ead14d2 ENH:optimize device page lag
jira:[none]

Change-Id: I0f6f1b257922d0e25152df9d42814551fa4a89ae
(cherry picked from commit 570751668e120b92953593c38bf2469474e98d8f)
2025-09-07 22:50:48 +08:00
tao wang 0030861915 FIX:fixed a single has incorrect AMS filamet road
jira:[none]

Change-Id: I26cdf08ddb5586cb1511d6aa1c42e7fd308c58f3
(cherry picked from commit a43ad7db0e1986757b3440a15682aaa906e34a8e)
2025-09-07 00:19:49 +08:00
tao wang 9e3e2f05b8 FIX:fixed the error in the total number of steps when loading
jira:[STUDIO-9169]

Change-Id: I62e61f9ca01b4d04b0ef204df1694d8d0fbc06b2
(cherry picked from commit 2b1f8887ef3ec4e7d1b9dbbd10baeebd6cda7638)
2025-09-06 23:57:25 +08:00
xin.zhang 8e91932cd1 FIX:fixed the build failed
jira: STUDIO-9194

Change-Id: I15873b69101183c68e7a46be1bd041419c950a88
(cherry picked from commit bc90ebd932a23a4b2e90d25a03e8aaad927ab293)
2025-09-06 23:09:09 +08:00
tao wang b48d0861b7 FIX:fixed the layout of AMS on the left
STUDIO-9194

Change-Id: I55a8d51c95cba2ae65cafc9e50ea504ced948213
(cherry picked from commit 9d6cc9c37f2ddabc9cf28aab725fe3b7f2889cd8)
2025-09-06 23:06:33 +08:00
tao wang c1c862d2c3 FIX:fixed the issue of AMS not updating location
jira:[STUDIO-9182 STUDIO-9216]

Change-Id: I42e57b47abf357cdc99f71e1739ab9fc3a122d85
(cherry picked from commit 43083f1e4834163c11a961e743db1fb7ece52348)
2025-09-06 21:38:41 +08:00
tao wang 079dca6b07 FIX:fixed the display issue of multiple AMS
jira:[for ams]

Change-Id: Icb8ce708b0e65870d627dfbe8932e012fc36c6f9
(cherry picked from commit 2cdfc21b93e37b92deabb3ab8e7b39de2578f0b2)
(cherry picked from commit afbf3cf1976623c9a443f3471ec7ddcfb737d031)
2025-09-06 21:35:18 +08:00