Commit Graph
176 Commits
Author SHA1 Message Date
HanifKoh 4895bc03b4 Remove Unused Project Includes and Forward-Declare Where a Type Is Only Referenced (#16099)
* Remove Unused Project Includes and Forward-Declare Where a Type Is Only Referenced

Generated with include-what-you-use and applied conservatively. Only OrcaSlicer's own headers, the ones under src/ and tests/, are removed or forward-declared; standard-library and third-party includes are left alone. An include is removed only when both the Release and the Debug configuration leave it unused, never from inside a conditional block, and never from a file with platform-specific blocks, which only gain includes. Files whose only use of a header sits behind a feature or debug macro (libvgcode's OpenGL ES and marker code, the ARACHNE/TESTS_EXPORT_SVGS debug output) keep their includes.

clonable_ptr.hpp gains #pragma once; it had no include guard and was only safe while Config.hpp was its sole includer.

* Remove Unused Project Includes From Files With Platform-Specific Code

A Linux include-what-you-use run cannot see the code inside _WIN32, __APPLE__ or __linux__ blocks, so its verdict is only taken where nothing the removed header declares, directly or through what it includes, is named inside those blocks. Removals also have to hold in both the Release and Debug configuration and never touch a line inside a conditional block.

* Restore the libslic3r Precompiled Header and Direct Includes Lost in the Platform Pass

The platform-file pass treated pchheader.hpp as an ordinary header and
emptied it, and left GUI_Preview.hpp and 14 other files relying on
headers they no longer reached directly.

* Restore MainFrame.hpp in ParamsDialog.cpp for the Windows-Only Reparent Call

* Include Headers That Files Reached Through Ones the Cleanup Removed

* Drop Includes Duplicated by the Cleanup or by Main's Own Additions

* Leave PreciseSeam.cpp as Main Has It After the Precise Seam Rework
2026-10-05 16:47:17 +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
Kiss Lorand bd65cce3f4 Unify GUI scroll rates (#15902)
Use DPI-aware 20 DIP vertical scrolling for general-purpose GUI
scroll areas.

Keep list-based views aligned to their item height so one wheel increment follows the visible row rhythm.

This makes Preferences and other dialogs scroll consistently across
Windows DPI settings.
2026-09-27 16:58:10 +03:00
Hanif Koh a6cf5cc1e3 Add the includes the precompiled header was supplying on macOS
A build without SLIC3R_PCH had never been tried on macOS. Three files
used what pchheader.hpp happened to include: LocalesUtils.cpp needs
<sstream> and <iomanip>, and the two dialogs need <wx/tooltip.h>. The
GTK port's headers and libstdc++ pull these in transitively, the Cocoa
port's headers and libc++ do not.
2026-09-11 13:02:57 +08:00
Ian Bassi d6cb667b89 Localization refactor pt 2 (#14907) 2026-07-24 09:41:24 -03:00
SoftFever 4683c17f6f Fix device popup, mapping, and status-parse defects
- Allow mapping to EMPTY trays only from the multi-machine send page and keep
  both panels pickable in the LEFT_AND_RIGHT view
- Guard the error-dialog cloud snapshot against stale callbacks and fall back
  to the local illustration on timeout
- Parse the ipcam storage-check ack and axis/chamber pushes defensively
- Strip fan-control telemetry, initialize the upgrade error code, restore the
  .json filter in the model-id scan
- Fix best-position popup tray lookup, gradient placement, and colour-list
  ownership
- Cover switch binding sets and invalid-track transients in DevMapping tests
2026-07-18 01:46:10 +08:00
SoftFever 1b722de6e7 Fix latent popup defects and mark the unwired device modules 2026-07-17 13:20:41 +08:00
SoftFever 38ab986c5f Drop the transitional device-layer shims 2026-07-17 12:46:45 +08:00
SoftFever 5e95aca42d Restore the popup accent colors and improved strings 2026-07-17 07:25:02 +08:00
SoftFever 40a875800d Resync the AMS and device dialogs 2026-07-17 06:48:15 +08:00
SoftFever 5cf7e27c23 Show combined nozzle mapping when a filament switch is installed 2026-07-16 16:35:11 +08:00
Rodrigo Faselli 79aa0bd4a2 Merge branch 'main' into feature/h2c_support_clean 2026-07-12 22:00:40 -03:00
yw4z e1c0ea0cc4 UI fixes & improvements (#14186)
* titlebar menus

* sidebar separators

* Update BonjourDialog.cpp

* Update StepMeshDialog.cpp

* Z contouring icon

* Update AmsMappingPopup.cpp

* Update AmsMappingPopup.cpp

* sync ams dialog

* Update calib_dlg.cpp

* sync popups

* Update AmsMappingPopup.cpp

* operation section on gizmos

* Update PresetComboBoxes.cpp

* Update GCodeViewer.cpp

* Update GCodeViewer.cpp

* Update AboutDialog.cpp

* disable realistic view option on gcode preview

* Update Preferences.cpp

* fix nozzle text clipping on linux
2026-07-11 20:24:03 +03: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
SoftFever 28b7127150 feat(gui): multi-nozzle UI for H2C/A2L
Multi-nozzle sync widget, AMS rack-nozzle mapping popup, calibration rework, send-dialog nozzle mapping and extruder-count UI. Includes the fix to persist the AMS sync badge on filament cards (H2C/A2L and direct-sync printers).
2026-07-09 01:16:26 +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
ee52b83217 Localization update (#12572)
* Update OrcaSlicer_es.po

* ? added in code

* Spanish Update

* save your filament profile.

* Downward machines settings

* type and color.

* Update OrcaSlicer_es.po

* illegal characters

* which layer being ironed.

* Update OrcaSlicer_es.po

* by chosen filament count."

* unnecessary bridges."

* Update OrcaSlicer_es.po

* Spanish Pressure advance restore

* bandeja -> cama

* RU: Restore Pressure Advance

* Calibration text

Co-Authored-By: Felix14_v2 <75726196+Felix14-v2@users.noreply.github.com>

* Updated Localization

* Input Shaping test

* Suggestion wrapper

* Added embossJob

* Updated all

* Emboss missing marks

* Missing preset values

* Action Required

---------

Co-authored-by: Felix14_v2 <75726196+Felix14-v2@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-03-04 12:50:33 +08:00
xin.zhang 058b6143a6 FIX: update dark mode color
jira: [STUDIO-9689]
Change-Id: I4f0f3f468d6f08195896a9948e4f3636489cbe79
(cherry picked from commit bb74d32de96f5a4090d06481ae51dec65c5b7447)
2025-11-07 23:26:18 +08:00
xin.zhang 8d3da67254 FIX: the sorting of AMS list
JIRA: [STUDIO-14738] [STUDIO-14651]
Change-Id: I6d4b89edc77383be8afacf9823567bc756c8e2ed
(cherry picked from commit 8defa1f50b4b556c6ebaf2ad533ba09ad3f23e38)
2025-10-28 15:29:58 +08:00
Noisyfox 56d8bd8fbe Fix option nullable 2025-10-10 16:57:16 +08:00
Noisyfox a9c0490c68 Update color 2025-10-05 16:02:17 +08:00
zhou.xu 83feaeadec ENH:modify the color of external materials that are disabled for sync ams dialog
jira: STUDIO-13364
Change-Id: I54105533437493d05c8f6208e7b83f56585da2bc
(cherry picked from commit 53953141a13fd6c49824655da6a39efd1b8b65d8)
(cherry picked from commit 34ad10df2bb946bd2b97dd6f6e4f5e7ee6c0e4dc)
2025-10-02 09:38:22 +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
hemai 070a8e62a1 FIX: long filament name display with ellipsis
Jira: [STUDIO-6754]
Change-Id: I7de774bba953c85b21d39113a5decddd2439fafd
(cherry picked from commit a157d0e26209b12a2bf0544b066866c3df8e50e0)
2025-09-30 15:32:44 +08:00
xin.zhang 44c13f3967 FIX: correct the setter
JIRA: [STUDIO-13571]
Change-Id: I6b5c0ac8c817a8d3b8807e17bce12a44d1101442
(cherry picked from commit 10cf6c6ce478d807c36672c8dace0df5d3cdb629)
2025-09-30 14:43:56 +08:00
xin.zhang b6a44b5eb1 FIX: no resource for the bitmap
JRIA: [STUDIO-13537]
Change-Id: Ib7a128e85d64fa1b4a0c67b3be5f5a3ccb3dd927
(cherry picked from commit aff46bd1378a18cb3d181dbf947bed870c0fa2d0)
2025-09-30 14:31:47 +08:00
hemai 5f1ff2f9a9 FIX: change AMS n3s ams_id & tray_id from 512 to 128
Jira: [STUDIO-13477]
Change-Id: I3844cb59df18220a22d8ff7524216b9fff2b6632
(cherry picked from commit 8c7b66d24b1e795c3070883f3f439cf160b38037)
2025-09-30 14:08:47 +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 3a49e2f516 FIX: correct the tool tip
jira: [STUDIO-13302]
Change-Id: I745e6d05f78fa4f025237f70c7af424cc9c204a0
(cherry picked from commit e2fa14270c8767e53e2c023ccfec203504f38822)
2025-09-30 09:26:34 +08:00
milk 3697abe3a9 FIX:Change the note when ams empty
jira:[STUDIO-12764]

Change-Id: I3dc400184840edb099a62b5dbc0cddf6bc67cd08
(cherry picked from commit ab983c261b5438e611ae3978a93690fce61b3179)
2025-09-29 23:39:50 +08:00
milk 3a3f6d3a43 FIX:Disable when the AMS slot is empty
jira:[STUDIO-12764]

Change-Id: I9baea63965159f9416d91e6dea40962ec292b9e2
(cherry picked from commit 5aff60e9840343e5465833259cca2d8658a8fce7)
2025-09-28 11:39:24 +08:00
xin.zhang a036994e0a FIX: set the correct color for ext even if not match, since we can select it.
jira: [STUDIO-12706]
Change-Id: Iccf01a6d42872af9d8c48a82731dec99981ad5c2
(cherry picked from commit 08d4a458e7a0bd19f92aecb900a84dbdefb037b0)
2025-09-25 16:10:20 +08:00
xin.zhang e78c9c137e FIX: MAC, do not check for ext mapping
jira: [STUDIO-12259]
Change-Id: I7c6f7fdfd95fcea4b5c2c82994d4d2318070b11d
(cherry picked from commit 5a793fd5d26f2e639f1e636b86638d636f36bf2b)
2025-09-24 09:43:33 +08:00
xin.zhang f21c5f9ee6 ENH: Revert "ENH: support scroll while using AMS mapping"
This reverts commit e6f290b29d4de697d492a2d933a447ad580a9e83.

jira: [STUDIO-11895]
Change-Id: Iab14bba06cfe59c4804ab9cf2d9784ea75bfe4b7
(cherry picked from commit 529687a2d2d5a4782c941a66eabec704548262df)
2025-09-23 21:42:34 +08:00
xin.zhang ea98914bd0 ENH: support scroll while using AMS mapping
jira: [STUDIO-11895]
Change-Id: I5cefd4e0cc6f5b7d6d1e1eaccfd2035bdd1a948e
(cherry picked from commit f2812461e31bb9b9e1f7740d10e103e85e4f1f25)
2025-09-23 17:11:49 +08:00
xin.zhang 8065f11b60 ENH: update the ext mapping logic
jira: [STUDIO-11970]
Change-Id: Id4cd04da942c5457f0b17877a07c0e24b9c585ec
(cherry picked from commit 09d8050037095f03d3e8f92302f1c568d272a97d)
2025-09-23 09:21:07 +08:00
xin.zhang 5a7dee9add FIX: update the text and icon while mapping
jira: [STUDIO-11679]
Change-Id: Ia744c27e3236ffa7c2157867b026e91c210dd5bf
(cherry picked from commit e685e57839a2933f139cfb3fe98a30a5bc8c34af)
2025-09-21 13:48:00 +08:00
zhou.xu 1c388a6891 FIX:Modify the position of gradient and double splicing materials without drop-down arrows
jira: STUDIO-11563
Change-Id: Ia953b10f6cfacaa0803362c9fdc3ec9f5a7efa41
(cherry picked from commit 6055a36593a225a96fb29f1dde2df7840e8ce3a9)
2025-09-21 13:47:58 +08:00
tao wang bdc9e421cc ENH:multiple printers mgr support the new protocol version
jira:[none]

Change-Id: Iee89fcf3e945e3507ec773b7ae70a61968fbe9ef
(cherry picked from commit 7395bbb4577a59e9b874750b3faec77f9e9a3756)
2025-09-21 13:47:56 +08:00
zhou.xu 2d3d68c922 ENH:When the AMS option is turned on or off, update the correct thumbnail
jira: none
Change-Id: Ia001e4baa7de72ab077cf0fb76c45d4cb8bac088
(cherry picked from commit 89aa62f8b4cd11fa10a898956f1c57ae1ef64a70)
2025-09-21 13:47:50 +08:00
zhou.xu c2a2f06b8a FIX:Fix gradient material display issue
jira: none
Change-Id: Ia7877fc297e77e28e630ade6c8c9826f99df0ed4
(cherry picked from commit e58b96e79eb7a9d43a9b35f49ec92d8c97f281e0)
2025-09-21 13:47:50 +08:00
zhou.xu 6c03cd6178 FIX:fix dark mode show of right_tip
jira: none
Change-Id: I6ce7edec772c5d1bbdc372fcde25807a0a744916
(cherry picked from commit 36692d649c13a0a3cec95fbf12960dcc91970d8c)
2025-09-20 15:29:52 +08:00
zhou.xu ef4bdac5c1 FIX:FIX:material item check parent name in mac
jira: STUDIO-11117
Change-Id: Icf155f04eb0e1fcc995d04c6f4646a6d729cb1cb
(cherry picked from commit d22a2e91e53c76bc40fdacc1ee5c7faff216711d)
2025-09-18 17:18:04 +08:00
tao wang 780d547727 ENH:not allowed to map to empty slots
jira:[STUDIO-9901]

Change-Id: I98e2ad72b957bd6c42f6baa765a181aebaf81f1a
(cherry picked from commit be912aa84ac930b81a52687a3f536e96af454ec1)
2025-09-18 17:17:55 +08:00
zhou.xu 03526dfdd8 ENH:Unmapped text for unknown material follows dark mode
jira: STUDIO-11066
Change-Id: I39af33cb02a93067ff22c9ada7dff119571d2b66
(cherry picked from commit 9a6a6d1b39dae215f02d64610e61107c4cc12eeb)
2025-09-18 17:05:10 +08:00
zhou.xu 996da6eebe ENH:add erase_dark.svg
jira: STUDIO-11051
Change-Id: I1ca79d708df04ab99d52d04c19454b383fc4a5aa
(cherry picked from commit c74cd2a15f112467985b0f431fea8f7dab961358)
2025-09-18 16:49:36 +08:00
zhou.xu 989b3995fa FIX:fix click failure on Mac
jira: STUDIO-10962
Change-Id: I051cccbc8633e737a305784fadb69bc76f823065
(cherry picked from commit c90948dc730a6f9e696983c64fb71451ae9ecc44)
2025-09-18 16:16:00 +08:00
zhou.xu 399d2eb216 FIX:Do not display title when there is no AMS
jira: none
Change-Id: Id14ce6c0c671a8e7a1338c2d389fd1e89c6add3c
(cherry picked from commit 29b2b0210440b41fbbfcf85b0e7b3acb869ca10a)
2025-09-18 16:15:55 +08:00
xin.zhang 907573a158 ENH: support msw_rescale
jira: [STUDIO-10907]
Change-Id: I1e06043fad6345c47e8c5ceb28db204955aa0969
(cherry picked from commit 193caabdc79d966e8226b5a9b340763b1711d0f3)
2025-09-18 15:43:34 +08:00