Commit Graph
96 Commits
Author SHA1 Message Date
Hanif Koh 2c6d91f2ca 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.
2026-10-05 11:02:06 +08:00
Hanif Koh e540bbcf35 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.
2026-10-05 11:02:06 +08:00
HanifKoh 88346efceb Stop Format/STEP.hpp Defining a Global fs Alias (#16102)
Every file that included STEP.hpp, directly or not, got namespace fs = boost::filesystem at global scope, and 29 sources and three headers relied on it without saying so. Headers now spell out boost::filesystem, and each source that uses fs declares the alias itself.
2026-10-04 14:50:30 +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
HanifKoh e68694dbaf Percent-Encode Local File URLs for Embedded Web Pages (#15961)
* Percent-Encode Local File URLs for Embedded Web Pages

The Home tab, setup wizard, Project tab and other embedded pages were
loaded from file:// URLs built by pasting the resources path into a
string. A '#', '%' or '?' in the install path was then read as a URL
fragment, escape or query, so the pages failed to load, for example a
portable install under D:\#OneDrive showed a directory listing instead
of the setup wizard.

Add file_url_from_path(), built on wxFileSystem::FileNameToURL, and use
it wherever a local page or image URL is built from a path. Queries such
as ?lang= are appended after the path is encoded. The wizard's printer
cover images are passed to the page as file URLs too.

* Encode the Login Error Page URL and Cover More Windows Path Forms

The login dialog's error page was still loaded from a raw resources path;
it now uses file_url_from_path like the other local pages.

The Windows file URL tests now also cover a resources path joined with a
forward-slash relative path, as the callers build them, and a UNC path.

* Build the Flush Dialog Page URLs with the Shared Helper

WipingDialog and NozzleListTable still called
wxFileSystem::FileNameToURL directly. They now go through
file_url_from_path like every other local page, so the URLs are built
in one place.

Adds a test for a resources directory with a '#' in its name, which the
plugin page check did not recognise before.
2026-09-29 22:30:56 +08:00
Kris Austin e7ca4fb87e build: trim GUI_App.hpp includes so edits stop rebuilding the whole GUI (#15644) 2026-09-12 12:09:39 -03:00
SoftFever 2b1499a087 clean up comments 2026-08-23 22:43:41 +08:00
SoftFever 8965b0be21 Skip mixed slots in flush volume auto-calculation
Mixed-colour slots are virtual and never flushed. Guard auto_calc_flushing_volumes_internal against them as BambuStudio does, and make the flushing dialog's default matrix and the sidebar 'modified' comparison physical-only so the untouched mixed rows no longer count as a user edit and the Re-calculate result matches the physical-only table.
2026-08-23 22:11:49 +08:00
Ian Bassi 8fea099d99 BBL Port Color Mix Base 2026-08-23 22:11:48 +08:00
blumlautandSoftFever 9598e1bb9a fix: OK/Cancel buttons clipped in Flushing Volume dialog (#13762)
fix: OK/Cancel buttons clipped in Flushing Volume dialog (#13511)

The WipingDialog renders its UI inside a wxWebView. When the dialog
was clamped to screen size (many filaments, small displays, high DPI),
the HTML content exceeded the WebView bounds and the OK/Cancel buttons
fell below the visible area.

HTML fix:
- Convert .container to flexbox column with overflow-y: auto
- Pin .button-container with flex-shrink: 0 so it stays visible
- Allow .scroll-container to flex-grow for the table area

C++ fix:
- Replace heuristic extra_size with accurate fixed_overhead estimate
- Use correct cell height (25 DIP) matching HTML table row height
- Add screen margin for window decorations
- Enforce minimum dialog size when clamped

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-21 11:42:18 +08:00
Francesco Palmarini 83179d5978 Make flushing volumes dialog resizable (#13663) 2026-05-16 07:37:16 +01:00
SoftFever a475e35730 Fix non-ASCII path corruption on Windows using from_path() helper (#13036) 2026-03-30 14:51:45 +08:00
Derrick 8b15ec44f0 Fix flushing windows dialog able to move around using trackpad and added esc to close dialog (#12694)
Added entry to wipingdialog.html css to prevent it from being overscrollable and its position fixed.
Added escape button to close dialog event on both javascript and webview events

JIRA-136
2026-03-09 19:28:59 +08:00
Noisyfox 5e2a7fbf35 Merge branch 'main' into dev/p2s-pr 2025-11-17 14:56:09 +08:00
Alexandre Folle de Menezes 8ec2454835 Standard units need translation for CIS Languages (#11376)
* Standard units need translation for CIS Languages
2025-11-17 10:29:44 +08:00
weizhen.xie 80f4a7a40f Fix: Fix the bug where switching languages on macOS caused a freeze.
Jira: STUDIO-14688

Change-Id: Iadbaa91e8ed9259f514428bcd7dd66308cdcc388
(cherry picked from commit 84c7fafcca503c00a8ef92f23ade2c2ce871849e)
2025-10-28 15:29:58 +08:00
weizhen.xie 2959f7549c FIX:Flushing volume button interaction optimization
Jira:STUDIO-14583

Change-Id: Ic1a600e92fb408b690febbd3f7a78924aed42e7a
(cherry picked from commit 672b3b54119b46c8e19f635520d4f78710128815)
2025-10-28 15:29:53 +08:00
weizhen.xie 06acdf2609 ENH:Give a warning when the flushing value changes or is zero.
Jira: STUDIO-13175
Change-Id: Ibc5a912464322d2bc40514c310dfc4859bbd79b3
(cherry picked from commit 3fa4b149a0a529d8a2b1c6b6b80415161c13b2c3)
(cherry picked from commit f6c03caaa744b774ffc9d6150b3691d232ced472)
2025-10-28 15:29:47 +08:00
Noisyfox 56d8bd8fbe Fix option nullable 2025-10-10 16:57:16 +08:00
Noisyfox 651afe8825 Update text & color of flush volume matrix dialog 2025-10-08 16:18:23 +08:00
songwei.li 8d1f11495d FIX:The estimated flushing amount of consumables for multi-color printing is inaccurate.
change: Multiply the flush_volumes_matrix in the exported gcode by the coefficient and output the final value.
Also fixed the issue where the flush matrix page was limited to 900, but the Gcode output value could be greater than 900 (the product of the matrix and the multiplier was limited to 900 before storing the value)

jira: STUDIO-13332

Change-Id: I893f27bec206c3b9da3273241d1cd5f1883e55a9
(cherry picked from commit 8aa91cd86c8c75b3736c616bcfbed4872db9734c)
(cherry picked from commit 038fc1c18220cef8c269d272059afea503fb5d5b)
2025-09-30 10:40:09 +08:00
xun.zhang bc02e48dc0 FIX: display the minimum flush data
1. Use the minimum flush between nozzle volume and flush in datalist
2. Add a new param to decide the datalist to use

github:7445

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Id87c98ca5069e7b328974d641d7a81dfbf9c50a0
(cherry picked from commit 2be29b784727330732170b5c2ff0ba9d5e79d82f)
2025-09-29 20:38:38 +08:00
xun.zhang 7c8ea0ecfc FIX: unable to load WipeTowerDialog if path has space
1.Also fix a translation problem

jira:STUDIO-11926,STUDIO-11411

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ifd709582cb1a0e47631abf90ac6fdbcebcd642a3
(cherry picked from commit 8c78dd2256400f2aebaeb234bcef12bb9d384659)
2025-09-23 21:39:22 +08:00
xun.zhang f56df96b63 FIX: empty flush dialog in some language
1. Caused by passing sentences to js. If failed, use raw english sentences

jira: NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I48ea55101be26449ca2fd6e2bb5b08c596fe0087
(cherry picked from commit 47f714bf2fe5ab88c906a3fcbb28f1a715565315)
2025-09-21 13:47:56 +08:00
Bastien Nocera ce41091f28 FIX: Fix missing wxDisplay declaration
/run/build/BambuStudio/src/slic3r/GUI/WipeTowerDialog.cpp: In constructor ‘WipingDialog::WipingDialog(wxWindow*, const std::vector<std::vector<int>, std::allocator<std::vector<int> > >&, int)’:
/run/build/BambuStudio/src/slic3r/GUI/WipeTowerDialog.cpp:123: error: ‘wxDisplay’ was not declared in this scope; did you mean ‘wxGetDisplay’?
  123 |     double scale_factor = wxDisplay().GetScaleFactor();

(cherry picked from commit c6f2b0e950e607b24a74e797534e0aa7f6216d6f)
2025-09-18 23:02:03 +08:00
xun.zhang ded3891da3 FIX: white spaces in dark mode flush table
jira: NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I2711af1dc45506906acbcd7215a4005534677310
(cherry picked from commit 43bd523753cd5e6a4b1e57fd4f34498b83da0c55)
2025-09-18 16:49:36 +08:00
xun.zhang 81382448eb ENH: update flush data for H2D
1.Alsoe set default flush from support to 700

jira: STUDIO-10595

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I0d0a85cdac5e63b787c16b35ed6c05afc885a715
(cherry picked from commit 5fea5e6696a28d7ec9edcde38c43700cb3b7f596)
2025-09-18 16:49:36 +08:00
xun.zhang a86bbf6cb4 FIX: dark mode display in dialog
jira:STUDIO-10811

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I174541d97efe8d0beea4913d23375f82b104b7a2
(cherry picked from commit 7bcc83682e314ea12c5c5229f394015d61cff345)
2025-09-18 11:05:52 +08:00
xun.zhang 914a2ac443 ENH: prevent dialog exceeds screen size
jira: NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I1e52efff3d89e4fe13bc6d79c11a6328e391e431
(cherry picked from commit 45580a9d7511e35316151653666eee481265fce6)
2025-09-17 17:36:37 +08:00
xun.zhang 5c406ef00a ENH: new wiping dialog
1.Enhance performance and ui display

jira: None

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: If1cde4d1a17437ee5485dd51adff4c3444774ffd
(cherry picked from commit 9c28c320d680d69b16d4895fda1bdcab9ad5b18d)
2025-09-17 16:57:35 +08:00
xun.zhang 0af34f4324 ENH: enhance auto flush option
1.Support auto flush when change printer and nozzle volume type

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I9dfc2fff095bbf1901afe99556d1e57aa225f482
(cherry picked from commit f12305832227940eb0eae05817ad046dd4eff02d)
2025-09-17 11:39:56 +08:00
xun.zhang ae75d8b8a5 ENH: update some sentences and refine ui
jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ibba2d6c880fcb810f861cf06eb7a30a512cbbacf
(cherry picked from commit 5195e824814a1ee38d789f331ec86e73807d412a)
2025-09-10 15:00:25 +08:00
zhimin.zeng 3decb8d4af FIX: fix some translation and style issues
jira: STUDIO-9777 & STUDIO-9726 & STUDIO-9717 & STUDIO-9720
Change-Id: I05e6df6bb1416988a1862fc589058241d5344a58
(cherry picked from commit d833ab7d48729b527748662872df1ec33567b5ab)
2025-09-10 07:25:19 +08:00
zhimin.zeng 42f8070fc9 FIX: flush_volume use correct extra_flush_volume
and fix extruder_offset bug

jira: none
Change-Id: I84644ad5b54994ae65269531311386cacd972bf3
(cherry picked from commit 71987627efe4fcdcc7940a48d043a7cecc485c02)
2025-08-24 23:18:16 +08:00
zhimin.zeng 4f2547358d FIX: only multi-nozzle display multi-extruder combobox
jira: 7686
Change-Id: Ic95d0789582e0a9dbb0edc2421ee076fdadb3572
(cherry picked from commit a174000ec18dae27d37976bdef6810914ba5f0ee)
2025-08-24 23:18:08 +08:00
zhimin.zeng a94b0e3dba ENH: Add recommend filament maps method
Change-Id: I3945a8b9f0a57e10a1d230003f21c9877cc5f342
(cherry picked from commit 8c8c9a967b032a270a60e6cf075fe41a6f329e1c)
2025-08-24 23:18:02 +08:00
zhimin.zeng 84dc2d8835 ENH: flush_volume support multi_extruder and fix bug
Change-Id: Id6b041f71ee6e55e68a6937f24ce791caac8e708
(cherry picked from commit 6fbad9ed33b2868a2fffbebdc3a98926431a1093)
2025-08-24 23:18:01 +08:00
yw4zandNoisyfox e9e069c167 Styling management for buttons and matching all button styles (#8184)
* Add button styling

* Fix dark mode compability

* printable area button

* Connection dialog icons

* Add aligment control

* Fix alignment

* add new styles

* Update BedShapeDialog.cpp

* Use darker text color on dark mode

* update code

* Update

* update

* Update

* Update WipeTowerDialog.cpp

* update

* Update Button.cpp

* update

* Update Button.cpp

* add enums for style and type

* update

* Update Button.cpp

* fix

* update

* Update DialogButtons.cpp

* Update UnsavedChangesDialog.cpp

* update

* update

* update

* Update Button.cpp

* cleanup

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2025-07-17 20:44:45 +08:00
Alexandre Folle de Menezes fd0d716f53 Standard units don't need translation, part 2 (#9974)
* Revert unit change made by mistake, and fix some unit translations

* Fix the declaration of untranslated Unicode strings
2025-07-17 09:48:29 +08:00
Michele StefanelliandNoisyfox 686a9bd44a Ramming config improvements to enable support for Prusa MMU3 (#9935)
* Ported ramming configuration improvements from prusa slicer: Hold cmd to move all values, more granular time settings and higher maximum values.

* improve variable name, change space

* Move the label under the ramming chart

* Experimenting with values label for ramming chart

* Fix the label position and make the background 20% transparent

* update the way the multiline label is done

* reorder commands

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2025-07-13 20:10:42 +08:00
Alexandre Folle de Menezes fa70582ed1 Standard units don't need translation (#9965) 2025-06-22 15:10:40 +08:00
yw4z 8aec3f69e5 Remove usage of titlebar icons (#9932)
* ibit

* update

* Update RecenterDialog.cpp

* Update AboutDialog.cpp
2025-06-20 16:52:15 +08:00
yw4zandNoisyfox 9569841091 Ramming dialog improvements & add step control for SpinInput class (#9651)
* init

* update dialog buttons

* Fix color on Linux & macOS

* Fix dark mode dialog title color on Windows

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2025-06-14 15:19:25 +08:00
yw4z 0999cb057d DialogButtons fixes and apply to more windows (#9809)
* step import dialog

* update

* update

* drop file dialog

* Update UnsavedChangesDialog.cpp

* update

* fix focus

* Update CreatePresetsDialog.cpp

* improve usage of return button

* fix first button not getting hover effects

* update

* update

* improve button styles

* update button events

* update button events

* update button events

* remove Raise()
2025-06-14 10:27:10 +08:00
mitt3n 267d81e9cc Set MAX_FLUSH_VALUE to maximum possible value
"Insanely high value that still plays nicely when converting between int and float (because it's internally stored in m_matrix as floats). 2147483520 (which is ~2 cubic meters) is the max value that can be saved properly in this case."
2025-04-09 08:03:40 -05:00
mitt3n e97d9f5f17 Set MAX_FLUSH_VALUE to maximum possible value
"Insanely high value that still plays nicely when converting between int and float (because it's internally stored in m_matrix as floats). 2147483520 (which is ~2 cubic meters) is the max value that can be saved properly in this case."
2025-04-09 08:01:32 -05:00
mitt3n 7a50acb607 Set MAX_FLUSH_VALUE to maximum possible value
"Insanely high value that still plays nicely when converting between int and float (because it's internally stored in m_matrix as floats). 2147483520 (which is ~2 cubic meters) is the max value that can be saved properly in this case."
2025-04-09 07:52:18 -05:00
mitt3n dd4a3ec042 Removing MAX_FLUSH_VALUE
Purge all the filament!
2025-04-08 23:03:50 -05:00
mitt3n 5e42120df5 Increase MAX_FLUSH_VALUE from 999 to 9999 2025-04-08 12:03:37 -05:00
Henri van der Riet 5b0ddbd5f7 merge conflicts 2024-09-08 01:04:19 +02:00