Fix selective print setting transfer when switching printers (#12943) #145

Open
opened 2026-04-05 16:18:37 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @egette on 3/26/2026

Description

Closes #12943

This PR fixes the selective print-settings transfer flow when switching printers.

It adds target print profile selection during printer switch, supports transferring individual values with inline diffs, ensures the selected target print profile is the one that actually receives the transferred settings, and suppresses the duplicate follow-up "Transfer or discard changes" dialog that could still appear after confirming the transfer.

The changes also add regression coverage for the preset-switch decision logic and extend transfer-merger tests for explicit key selection and category handling.

Impacted presets or translations:

  • affects printer-switch behavior for print preset transfer
  • no dependency bump
  • no profile migration
  • translations may need review for newly added UI strings

Screenshots/Recordings/Graphs

  • screenshot of the transfer dialog with target print profile selection
  • screenshot of the per-value diff list
new-dialog

Tests

Manual reproduction:

  1. Start with an FFF printer and modify values in the active print profile.
  2. Switch to another compatible FFF printer.
  3. In the transfer dialog, choose a target print profile.
  4. Select only a subset of categories or individual values.
  5. Confirm the transfer.
  6. Verify the selected target print profile receives the transferred values.
  7. Verify no second "Transfer or discard changes" dialog appears afterward.

Validation performed:

  • OrcaSlicer app build passed on macOS arm64
  • libslic3r_tests build passed
  • ProcessSettingsMerger tests passed
  • PresetSwitchLogic regression tests passed
  • process manual tested

Disclaimer

AI assistance

This PR was created with AI assistance. I manually verified the behavior in the application and validated the build locally.

*Originally created by @egette on 3/26/2026* # Description Closes #12943 This PR fixes the selective print-settings transfer flow when switching printers. It adds target print profile selection during printer switch, supports transferring individual values with inline diffs, ensures the selected target print profile is the one that actually receives the transferred settings, and suppresses the duplicate follow-up "Transfer or discard changes" dialog that could still appear after confirming the transfer. The changes also add regression coverage for the preset-switch decision logic and extend transfer-merger tests for explicit key selection and category handling. Impacted presets or translations: - affects printer-switch behavior for print preset transfer - no dependency bump - no profile migration - translations may need review for newly added UI strings # Screenshots/Recordings/Graphs - screenshot of the transfer dialog with target print profile selection - screenshot of the per-value diff list <img width="576" height="645" alt="new-dialog" src="https://github.com/user-attachments/assets/1146943c-6a13-41a5-ad2f-2eeb3ec1a6f3" /> ## Tests Manual reproduction: 1. Start with an FFF printer and modify values in the active print profile. 2. Switch to another compatible FFF printer. 3. In the transfer dialog, choose a target print profile. 4. Select only a subset of categories or individual values. 5. Confirm the transfer. 6. Verify the selected target print profile receives the transferred values. 7. Verify no second "Transfer or discard changes" dialog appears afterward. Validation performed: - OrcaSlicer app build passed on macOS arm64 - libslic3r_tests build passed - ProcessSettingsMerger tests passed - PresetSwitchLogic regression tests passed - process manual tested # Disclaimer AI assistance This PR was created with AI assistance. I manually verified the behavior in the application and validated the build locally.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#145