Integrate all open upstream PRs (73) into 2.8.0#608
Merged
Conversation
… locale files Move the hardcoded Chinese strings in the Filament Manager web UI into en/zh_CN locale JSON files and load them at runtime, so the panel follows the app language instead of always showing Chinese. Closes bambulab#10806 (cherry picked from commit dd05cf4)
Fixes typos such as 'Auxiliaryies', 'qulity', double spaces and missing punctuation in user-facing strings across several GUI source files. Source-string changes only; translation catalogs are left to the upstream gettext pipeline. Closes bambulab#10852 (cherry picked from commit 2fb43fd)
- F1–F4 switch the main tabs (3D Editor / Preview / Monitor / Project) and F5 reslices, when no modifier is held. - The AMS colour picker gains a hex input field (e.g. FF8800), kept in sync with the currently selected colour. The dark-mode changes that previously rode along on this branch (shared base) are dropped here; they live in their own PR (bambulab#11241). (cherry picked from commit 7040f0b)
Per review: F1-F4 switch to the corresponding main tab, so binding F5 to reslice instead of a fifth tab was inconsistent. Drop the F5 binding. (cherry picked from commit a17b512)
Adds a 5-minute timer that silently saves the current project when it is dirty and already has a file path, gated behind the `autosave_enabled` config key. Reduced from the original multi-feature PR to this single feature, as requested in review. (cherry picked from commit c3baa62)
Adds a "Pause in <time>" line to the printing task panel. When the sliced result contains a scheduled PausePrint above the current layer, the time is estimated from mc_left_time scaled by the remaining layers up to that pause, and hidden otherwise. (cherry picked from commit e54d2c5)
…#10574) Users with clear or transparent filament had no way to select that color in the filament color picker. Add a fully-transparent entry (alpha=0) as the first preset swatch in ColorPickerPopup. The existing checkered bitmap rendering and alpha=0 handling in ColorPicker::doRender and set_def_colour already support this case. Closes bambulab#10574 (cherry picked from commit ac3fada)
…t dialog (bambulab#8949) Labels were set with SetLabelColor(*wxBLACK), which uses a custom StateColor path that bypasses the SetForegroundColour mechanism UpdateDlgDarkUI relies on for color remapping. Replace all ten occurrences with SetLabelColor(wxGetApp().get_label_clr_default()) which returns the correct foreground color for the active theme. Closes bambulab#8949 (cherry picked from commit 43a1e7c)
…dcasts (bambulab#10820) The closed-source bambu_networking plugin calls syslog() with LOG_EMERG for non-critical errors such as 'SO register failed'. systemd-journald broadcasts every PRIORITY=0 message as a wall to all logged-in terminals. Set the process-wide syslog mask via setlogmask() at startup to suppress LOG_EMERG and LOG_ALERT; all other priorities (LOG_CRIT and below) are unaffected. Closes bambulab#10820 (cherry picked from commit df3db17)
…ambulab#10773) Two root causes: 1. FilamentMapDialog read raw filament_type config values directly. Support filaments store their base type ("ABS") there, making them indistinguishable from regular ABS. Replace with a loop over get_filament_type() so the display name ("Sup.ABS") is used. 2. get_filament_type() handled PLA-S and PA-S in the filament_id- present branch but was missing the ABS-S case, causing it to fall through to the raw "ABS" return value. Closes bambulab#10773 (cherry picked from commit 03743ad)
…alog
When a project uses both a regular filament (e.g. ABS) and its support
variant (e.g. Support for ABS), both presets share the same filament_type
value ('ABS'). The FilamentMapDialog therefore displayed two identical
'ABS' labels, making it impossible to distinguish the two slots.
Use the filament_is_support config flag (same convention already used by
Preset::get_filament_type()) to prepend 'Sup.' to the type string before
passing it to the grouping dialog, so the labels read 'ABS' and 'Sup.ABS'.
(cherry picked from commit 049f233)
…bulab#10787) After loading a second project the canvas could still display the previous model. load_project() calls load_files() which internally calls update() -> reload_scene(), but the canvas may not produce a visible repaint if it was not visible or was in a dirty/deferred state. Add set_as_dirty() + request_extra_frame() on view3D after select_tab() to guarantee a fresh render in all code paths. Closes bambulab#10787 (cherry picked from commit 9544f60)
…ager When "push local to cloud" succeeded for a net-weight update, the on_push_done callback immediately enqueued a cloud pull. Due to read-after-write lag in the cloud backend the pull could return the stale netWeight (before the push) and overwrite the user's manually- edited weight back to the old value (typically 1000 g for a full spool). Only trigger the follow-up pull for CREATE operations, where we genuinely need the server-assigned spool id. For UPDATE and DELETE the local store is already consistent with what was pushed, so a pull introduces a race without any benefit. Fixes bambulab#10766 (cherry picked from commit 8580e3b)
… dialog
- Replace MessageDialog with RichMessageDialog and add a checkbox so
users can permanently suppress the MQTT cloud connection failure popup.
- Config key: suppress_cloud_device_server_warning (set to "1" when
user opts out; specific to this dialog to avoid collisions).
- Add a Preferences toggle ("Don't show cloud device server connection
warnings") so users can re-enable the warning at any time without
editing the config file manually.
- The existing is_showing re-entrancy guard is preserved.
Closes bambulab#10589
(cherry picked from commit b155ede)
In the grid placement path (used when grid_cap > 50), itemid was never updated from its initial value of -1, causing all copies to be named "<object> -1". Assign itemid sequentially from 0 to match the arrange path behavior. Fixes bambulab#10492 (cherry picked from commit 437b594)
When a spool has a note, display it as a third sub-line in the Filament column, below the colour/diameter info. The note is truncated with an ellipsis and the full text is available on hover. Rows without a note are unchanged. Closes bambulab#10834 (cherry picked from commit ebce49e)
…_filament_gcode templates
{retract_length_toolchange[filament_map[next_extruder]-1]} (and the
next_filament_id variant) directly indexes retract_length_toolchange as a
vector in the PlaceholderParser. When the vector is empty (e.g. config
compatibility issues with older 3MF project files), the parser throws
"Indexing an empty vector variable" and slicing fails.
Replace with [new_retract_length_toolchange], the pre-computed scalar set in
GCode.cpp via full_config.retract_length_toolchange.get_at(), which handles
empty/short arrays safely. The default is 2.0 mm across the extruder
variants, so the generated G-code is unchanged.
Affected templates: H2D Pro, H2S, P2S, X2D (0.4 nozzle).
Fixes bambulab#10437
(cherry picked from commit ff26897)
…ected
In the Add Filament / Read from AMS dialog, slotLabels was hardcoded as
['A1','A2','A3','A4'] regardless of which AMS unit was selected. With
multi-AMS setups, slots on the second unit showed B1-B4 everywhere else
in the UI but the slot picker in the dialog always showed A1-A4.
Derive the unit letter from currentUnit.ams_id ('0' for AMS A, '1' for B,
etc.) so slotLabels matches the selected unit.
Fixes bambulab#10512
(cherry picked from commit 71b4b59)
AMSMaterialsSetting::Popup used `if (ext_id > 0)` to guard the PA history request. MAIN_EXTRUDER_ID is 0, so any AMS unit bound to the first extruder failed this check and never sent the `extrusion_cali_get` command. The dropdown then showed only the hard-coded "Default" entry. Fix: change `> 0` to `>= 0` so extruder 0 triggers the request while the existing `return -1` sentinel (not found) is still excluded. Fixes bambulab#10845. (cherry picked from commit 5237588)
After saving in the editor, clear_model_info() empties m_last_payload. If index.html loads and sends request_3mf_info before the background on_reload() thread completes — or if on_reload()'s RunScript call is dropped during webview navigation — the page receives no data and continues to display the pre-save profile name. Fall back to update_model_data() when request_3mf_info arrives with an empty m_last_payload. This triggers a fresh on_reload() which dispatches the up-to-date model data directly to the now-loaded page. (cherry picked from commit 1a0f653)
(cherry picked from commit 9c91527)
(cherry picked from commit 02b1ec5)
(cherry picked from commit 0804a01)
(cherry picked from commit 759d455)
(cherry picked from commit 13e9e3f)
(cherry picked from commit a291cdf)
(cherry picked from commit 1fa3a53)
(cherry picked from commit 0f349f4)
(cherry picked from commit dad07cc)
(cherry picked from commit 3e8a7f2)
(cherry picked from commit 5ef059d)
(cherry picked from commit b6be7ca)
(cherry picked from commit 01bc903)
(cherry picked from commit 02bae2e)
(cherry picked from commit 71110aa)
(cherry picked from commit fac5d49)
(cherry picked from commit 7d6b428)
(cherry picked from commit 9d7c970)
(cherry picked from commit a7ed98f)
(cherry picked from commit 23ad262)
(cherry picked from commit 31646dc)
(cherry picked from commit b470edc)
(cherry picked from commit 55b727e)
(cherry picked from commit 1303a53)
(cherry picked from commit d8a8592)
(cherry picked from commit 791e15e)
BenJule
force-pushed
the
integrate/upstream-prs-280
branch
from
July 13, 2026 06:01
ebd30b5 to
ea5d2bf
Compare
Owner
Author
|
Force-pushed the branch once more: same 66 commits, now all GPG-signed. The tree is bit-identical to the state Jenkins build #14 verified (checked via rev-parse ^{tree}), so the verification still holds — only commit signatures changed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings the changes from all 73 currently open upstream PRs (bambulab/BambuStudio, author BenJule) onto the 2.8.0 line, as 66 cherry-picked commits.
How the 73 PRs break down:
Full pick-by-pick log lives in the integration workspace (report.md), happy to attach it if wanted.
Verified: Jenkins build #14 of the packages pipeline compiled the branch clean (0 errors) and produced a working .deb (02.08.00.12250).