Skip to content

feat: show version in title bar and add full MakerWorld site toggle#10817

Closed
BenJule wants to merge 9 commits into
bambulab:masterfrom
BenJule:feat/version-titlebar-makerworld-fullsite
Closed

feat: show version in title bar and add full MakerWorld site toggle#10817
BenJule wants to merge 9 commits into
bambulab:masterfrom
BenJule:feat/version-titlebar-makerworld-fullsite

Conversation

@BenJule
Copy link
Copy Markdown

@BenJule BenJule commented May 20, 2026

Summary

Closes #10642
Closes #9987
Closes #9989
Closes #10589
Closes #10801

Details

Title bar (MainFrame.cpp)

update_title() was previously empty (return;). It now builds a title from the open project filename (wxFileName::GetName()) and the is_project_dirty() flag, then calls m_topbar->SetTitle(). The existing wxEVT_IDLE handler (which already updates Undo/Save/Redo buttons on every idle cycle) now also calls update_title() to keep the title in sync.

Cloud warning (GUI_App.cpp)

Replaced MessageDialog with RichMessageDialog at the MQTT connection-failure callback and added ShowCheckBox(_L("Don't show this warning again")). When checked, suppress_cloud_warnings=1 is written to app config. The existing is_showing guard is kept and an early-return checks the config key at the top of the callback.

Full MakerWorld site toggle (Preferences.cpp, WebViewDialog.cpp)

Checkbox added under the existing "Online Models" section. When enabled, the three URL construction sites in WebViewDialog.cpp omit /studio/webview and map model-detail URLs to /models/<id>.

Test plan

  • Title bar shows Bambu Studio X.Y.Z on Windows/Linux at startup with no project open
  • Opening a project adds the filename to the title
  • Making a change adds * prefix; saving removes it
  • Cloud warning dialog shows "Don't show again" checkbox
  • After checking and dismissing, the dialog no longer appears on subsequent failures
  • Setting is persisted across restarts (suppress_cloud_warnings=1 in config)
  • "Open full MakerWorld site" checkbox visible in Preferences → Online Models
  • With checkbox on, Online Models tab loads the full MakerWorld homepage

BenJule added 9 commits May 20, 2026 16:05
… locale files

The fila_manager web page was hardcoded in Chinese (lang="zh") with no
internationalization support. This commit adds a lightweight i18n system:

- Add locales/en.json and locales/zh_CN.json with all UI strings
- Add t(key) / tf(key, n) translation helpers loaded at startup
- Apply translations via data-i18n / data-i18n-placeholder attributes in HTML
- Replace all hardcoded Chinese strings in index.js with t() calls
- Language is resolved from the ?lang= URL parameter passed by C++
… strings

Two printer status strings shown during calibration used the misspelling
"percision" instead of "precision". Also fix lang="zh-CN" in
NozzleListTable.html (the table content is set by C++ at runtime).

All .po and .pot msgid entries updated to match the corrected source strings.
- 'Problem occured' → 'Problem occurred' (MediaPlayCtrl.cpp)
- 'When enable spiral vase mode' → 'When enabling ...' (SelectMachine.cpp, SyncAmsInfoDialog.cpp)
- 'connectors is out of object' → 'connectors are out of object' (GLGizmoAdvancedCut.cpp)
- 'Error:Detecting ...' → 'Error: Detecting ...' with spacing fixes (GLGizmoText.cpp)

Update all corresponding msgid entries in BambuStudio.pot and all 18 .po locale files.
Fix missing spaces after 'Warning:', 'Error:', and 'Tip:' prefixes,
missing spaces after sentence-ending periods and commas, and several
grammar issues in strings that appear to originate from machine
translation:

- GLGizmoText.cpp: fix 9 Warning: strings (space + grammar)
  - 'Warning:create text fail.' → 'Warning: Text creation failed.'
  - 'Warning:text normal is error.' → 'Warning: Text normal has an error.'
  - 'Warning:Due to font upgrades,previous...' → proper spacing
  - 'reedit it will ok' → 'reedit it to fix the issue'
  - 'dragging text' → 'drag the text' (imperative form)
- GLGizmoMeasure.cpp: fix 3 Warning: strings + 'two different mesh' → 'meshes'
- GLGizmoSVG.cpp: fix 'Tip:If...' + missing comma + 'svg file' → 'SVG file'
- PlaterWorker.hpp: 'error occured' → 'error occurred'
- DeviceManager.cpp: missing spaces after period/comma + '(PLA...)' spacing
- BindDialog.cpp: 'device.Before', 'termsand', 'Use(collectively)' spacing
- ConfigManipulation.cpp: missing spaces after comma and period
- AMSSetting.cpp: missing space after '1 minute.'
- Preferences.cpp: 'tab.If change value' → 'tab. If you change this value'

Update all msgid entries in BambuStudio.pot and all 18 .po locale files.
- AuxiliaryDialog.cpp: 'Auxiliaryies' → 'Auxiliaries' (dialog title)
- FanControl.cpp: 'print qulity' → 'print quality'
- GLGizmoFlatten.cpp: 'too small,The' → 'too small. The' (comma → period)
- Monitor.cpp: 'Assistant(HMS)' → 'Assistant (HMS)' (space before parenthesis)
- AMSSetting.cpp: 'during  printing' → 'during printing' (double space)
- AMSDryControl.cpp + uiAmsHumidityPopup.cpp: 'Left Time' → 'Remaining Time'
- Plater.cpp: 'attrited' → 'worn' (non-standard word)

Update all corresponding msgid entries in BambuStudio.pot and all 18 .po
locale files.
On macOS, BambuStudio already auto-follows the system dark/light theme
via EVT_SYS_COLOUR_CHANGED. On Windows this handler was guarded with
#ifndef __WINDOWS__, so theme changes were silently ignored.

Changes:
- GUI_Utils.hpp: EVT_SYS_COLOUR_CHANGED now fires on Windows when
  'dark_mode_follow_system' is enabled; calls update_dark_config() and
  on_sys_color_changed() to refresh the UI
- GUI_App.cpp dark_mode(): if follow-system is enabled, query
  check_dark_mode() (system appearance) instead of the stored config;
  on startup, sync dark_color_mode config from system if follow-system
  is enabled
- MainFrame.cpp on_sys_color_changed(): call force_colors_update() and
  update_ui_from_settings() on all platforms (previously skipped on
  Windows), so a system-triggered theme change gets a full UI refresh
- Preferences.hpp/.cpp: add 'Follow system theme' checkbox below the
  manual 'Enable dark mode' toggle; when checked the manual toggle is
  disabled and the current system state is applied immediately

Resolves feature request bambulab#10800.
- F1–F4 switch between the four main tabs (3D Editor, Preview, Monitor,
  Project); F5 triggers reslice when a model is loaded
- ColorPickerPopup gains a hex input field (#RRGGBB) below the custom
  color swatch; typing a valid 6-digit hex and pressing Enter applies
  the color and fires EVT_SELECTED_COLOR; clicking any swatch updates
  the hex field to match the selected color
- update_title() now sets the topbar label to "Bambu Studio <version>"
  on Windows/Linux so the version is always visible without opening
  the About dialog (closes bambulab#10642)
- Preferences > Online Models gains a "Open full MakerWorld site"
  checkbox (config key makerworld_use_full_site); when enabled the
  Online Models tab loads the unrestricted makerworld.com pages
  instead of the /studio/webview simplified view, restoring access to
  comments, account management, and other features (closes bambulab#10801)
- update_title() now shows the open project filename and a leading '*'
  when there are unsaved changes, keeping the topbar in sync via the
  existing wxEVT_IDLE handler; title reverts to the app name + version
  when no project is open (closes bambulab#9987, closes bambulab#9989)
- Cloud connection failure dialog now uses RichMessageDialog with a
  "Don't show this warning again" checkbox; checking it sets config key
  suppress_cloud_warnings=1 so the dialog is permanently suppressed
  for offline/LAN-only workflows (closes bambulab#10589)
@BenJule BenJule closed this May 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment