feat(gui): add purge mode selector dialog

The engine already implements prime_volume_mode (Default/Saving/Fast)
but nothing in the UI could set it, leaving prime-saving unreachable on
multi-sub-nozzle extruders and fast purge unreachable on printers that
support it.

- new PurgeModeDialog with selectable Standard/Fast or
  Standard/Prime Saving cards depending on printer capability
- "Purge mode" sidebar button next to Flushing volumes; opens the
  dialog and stores the choice in the project config
- printer preset-load gating: button shown only when the printer has
  multiple sub-nozzles per extruder or sets support_fast_purge_mode;
  stale project values the printer cannot honor reset to Default
- enable fast purge on A2L 0.4 (support_fast_purge_mode), explicit
  default 0 in the common machine base
- new dialog strings added to OrcaSlicer.pot

Printers without these capabilities never show the button and their
projects keep prime_volume_mode at Default, so slicing output is
unchanged.
This commit is contained in:
SoftFever
2026-07-10 15:41:57 +08:00
parent b2eeed2622
commit 93a81179a1
13 changed files with 432 additions and 3 deletions

View File

@@ -7882,7 +7882,8 @@ void PrintConfigDef::init_fff_params()
def->set_default_value(new ConfigOptionIntsNullable{ 1 });
// Printer flag gating the fast-purge mode selector in the Multi-Filament
// UI. comDevelop, default false; no shipping profile sets it, so the UI stays hidden.
// UI. comDevelop, default false; profiles of printers that support fast purge
// enable it, which shows the purge-mode selector for those printers.
def = this->add("support_fast_purge_mode", coBool);
def->label = L("Support fast purge mode");
def->tooltip = L("Whether this printer supports fast purge mode with optimized temperature and multiplier.");