Fix missing dirty marker for edited system printer presets
System printer presets did not display the modified (“*”) marker in the sidebar when edited. Unlike other preset types, printer presets use `printer_model` as their display label, bypassing the normal dirty-state formatting.
This patch prepends the modified suffix to the displayed name when the selected system printer preset is dirty, restoring consistent UI behavior across all preset types.
* Fix Gtk-Critical assertion in PresetComboBoxes
Resolve the `gtk_cell_layout_get_cells: assertion GTK_IS_CELL_LAYOUT
failed` error by switching from `gtk_cell_layout_get_cells()` to
`gtk_container_get_children()` with direct PangoLayout ellipsization
on GtkEntry widgets.
Picked from PrusaSlicer:
https://github.com/prusa3d/PrusaSlicer/commit/e855ab5d
* Add defensive guards for GTK widget sizing
Fix Gtk-CRITICAL assertions in TextInput and DropDown widgets that
occur when the widget attempt relative sizing against window size
before GTK completes the window layout.
Changes include:
- TextInput.cpp: Clamp textSize.x >= -1 to prevent
`gtk_widget_set_size_request` failures.
- Picked from Prusa Slicer:
https://github.com/prusa3d/PrusaSlicer/commit/e855ab5d
- DropDown.cpp: Guard against zero/negative dimensions during early
initialization:
- Prevent szContent.x = 0 when parent size is unavailable.
- Unique to OrcaSlicer
- Triggers during initializing DesignerPanel --> BasicInfo -->
License DropDown before a parent size is available.
- Latent bug exists in Bambu Studio, but Bambu does not have
License field enabled on this panel.
- Created global guard for future resilience.
- Clamp szContent.y >= 1 for dropdowns before content initialized.
- Bug exists in BambuStudio
- Prusa did not implement the "ENH: ComboBox Second DropDown"
- Add safeguards for invalid idx when opening color picker
- Prevent crash when filament color data is missing or uninitialized
- Simplify private member variable naming in filament picker dialog
jira: STUDIO-12956
Change-Id: I455565bdac769f497f22f884e19cd0cbb04fb8c3
(cherry picked from commit 705ad911ee81395b2162ae67a8f64e237f6a3c5d)
- Display RGB values when a custom color is selected
- Prevent official color picker dialog from closing when custom color dialog is canceled
- Ensure multi-color materials are correctly displayed when importing new 3MF files
jira: STUDIO-12938, STUDIO-12937, STUDIO-12933, STUDIO-13110
Change-Id: Iab410585bf8cc5e9e81c6f0da23fe4ddba561785
(cherry picked from commit 2c20d591b998b02b0b66ac81b048a28fa26bd409)
- Applied dark theme styling to filament picker dialog
- Fixed color picker background not updating on theme switch
jira: STUDIO-12935
Change-Id: I9c7dcc518e7b0bd2c330f477ee42f4c61ea9fd4b
(cherry picked from commit 66ae7a02b945ff603b2dc699c93e55589481379e)
- Add a filament picker dialog for official color selection
- Enable displaying multiple filament colors in the picker dialog and preview sidebar
- Introduce two new config options:
- `filament_multi_colors`
- `filament_color_types`
to both the application config and the 3MF config
jira: STUDIO-12346
Change-Id: I66f8c1ec9147df4f5948c8a329c1737551280e63
(cherry picked from commit 522dc0bbca49033a1ba9725ca7f6c3ea729691a6)
jira: STUDIO-10467
set the filament selected to visible if it is selected
Change-Id: I376101c7c01b2f6dd85e780abd3ad69c81bcc0d6
(cherry picked from commit b957d5111b28d3d028153f9314b5a53389ef95d8)
* GUI: Add filament notes to material selector tooltip
Enhances material selector tooltip to display filament notes from preset configuration.
Adds automatic truncation for notes longer than 200 characters with ellipsis.
Improves user experience by providing material context directly in tooltip.
Fixes#10037
* GUI: Add filament notes to material selector tooltip
Enhances material selector tooltip to display filament notes from preset configuration.
Adds automatic truncation for notes longer than 200 characters with ellipsis.
Improves user experience by providing material context directly in tooltip.
Fixes#10037
* GUI: Fix tooltip display for unsaved profile notes
* Remove extra spaces between words
* Remove extra spaces after punctuation
* Remove extra spaces before punctuation
* Always needs a space after punctuation
* Always needs a space before parens
* Remove trailing spaces before newline