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.
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.
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.
* 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.
* 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.
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.
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>
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
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)
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)
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)
/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)
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)
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)
* 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>
* 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>
"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."
"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."
"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."