Skip to content

Add configurable print status window#10505

Open
sepp89117 wants to merge 2 commits intobambulab:masterfrom
sepp89117:feature/print-status-window
Open

Add configurable print status window#10505
sepp89117 wants to merge 2 commits intobambulab:masterfrom
sepp89117:feature/print-status-window

Conversation

@sepp89117
Copy link
Copy Markdown

@sepp89117 sepp89117 commented May 1, 2026

Summary

  • Adds a new PrintStatusFrame tool window with local printer selection and compact print monitoring UI.
  • Integrates manual open, auto-show on minimize, and optional close-to-tray behavior into MainFrame, while keeping explicit quit and shutdown paths intact.
  • Adds support for multiple print status windows:
    • a primary window that continues to handle auto-show on minimize and remembered position
    • additional windows that can be opened in parallel for monitoring multiple printers at once
  • Adds a + action inside the print status window to open another status window.
  • Adds a Device tab print-progress action button that opens a print status window for the currently shown printer.
  • Adds preferences and config defaults for minimize behavior, tray behavior, always-on-top, remembered position, theme, and opacity.
  • Removes the separate Enable print status window preference and its runtime gating so the feature is always available for manual open.
  • Includes build system and i18n list updates for the new widget source.

Testing

  • Manually verified on Windows during development:
    • manual open of the print status window
    • auto-show on minimize
    • restore and quit paths around tray behavior
    • multi-printer switching
    • offline / idle / printing / finished rendering
    • fixed-size layout adjustments and remembered position
    • opening additional print status windows from inside the widget
    • opening a print status window for the current printer from the Device tab
    • keeping multiple status windows open for different printers at the same time

Testing note

  • I was only able to test this locally on Windows.
  • I could not test the macOS or Linux behavior myself.
  • macOS intentionally does not add a new menu-bar tray implementation.
  • Linux close-to-tray behavior depends on the desktop environment’s wxTaskBarIcon support and would benefit from maintainer/community testing.

Known limitations

  • macOS does not get a new menu-bar tray implementation; close-to-tray remains effectively unsupported there.
  • Linux tray support still depends on desktop environment support for wxTaskBarIcon.
  • Only the primary print status window participates in remembered position and minimize auto-show.
  • Additional print status windows are session-local and currently do not persist their own positions.
  • Some legacy print_status_window_show_* and width/height config keys remain in AppConfig for compatibility, even though the current widget no longer uses them.

sepp89117 added 2 commits May 1, 2026 18:50
Add a new floating PrintStatusFrame widget and wire it into the main window lifecycle. The widget can be opened manually, auto-shown when the main window is minimized, and kept as a single reusable instance. On Windows and Linux, closing the main window can optionally minimize Bambu Studio to the system tray while explicit quit paths still perform a real shutdown.

Implement a compact print status dashboard with local printer selection, status badges, progress, remaining time, ETA, layer information, warnings, and live nozzle, bed, and chamber temperatures. The frame stores only the selected printer dev_id and resolves MachineObject instances on demand, avoiding long-lived raw printer pointers while handling missing, offline, idle, printing, paused, and finished states robustly.

Add Print Status Window preferences and defaults for enablement, auto-show on minimize, close-to-tray, always-on-top, remembered position, theme, and opacity. Keep the widget lightweight and self-contained with its own timer-based refresh, fixed-size compact layout, local theme handling, deferred safe show on minimize, build integration, and i18n extraction for the new UI strings.
Extend the print status window integration from a single MainFrame-owned instance to a primary window plus additional per-printer windows. The primary window still owns auto-show on minimize, settings refresh, and remembered position, while additional windows can be opened in parallel, keep their own selected dev_id, and are opened with a small cascaded offset.

Add two new entry points for multi-printer monitoring: a `+` action in the PrintStatusFrame header to open another window, and a new icon button in the Device tab print progress area to open a status window for the currently shown printer. Existing windows are reused when they already track the requested device, and the additional-window picker prefers printers that are not already visible in another status window.

Simplify the feature controls by removing the `print_status_window_enabled` preference and the remaining enable gates around manual open and auto-show. The print status window is now always available, while auto-show on minimize and close-to-tray remain controlled by their dedicated settings. The Device tab launch button now always uses the active `print_status_window` SVG icon and no longer has a disabled state.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant