diff --git a/src/slic3r/GUI/PublishSettingsDialog.cpp b/src/slic3r/GUI/PublishSettingsDialog.cpp index e44501e604..e4aeff0e0c 100644 --- a/src/slic3r/GUI/PublishSettingsDialog.cpp +++ b/src/slic3r/GUI/PublishSettingsDialog.cpp @@ -882,15 +882,9 @@ void PublishSettingsDialog::build_option_model() for (const PageShp& page : tab->m_pages) { if (page->title() != "Extruder") continue; - // Name each extruder as the printer tab's variant switch does ("Left Extruder: SF", - // "T1: SF", ...), taking its first (standard) option for a hybrid extruder: values come - // from the full config, which holds one value per extruder. - const std::vector switch_options = printer_tab ? printer_tab->generate_extruder_options() : std::vector(); + // One tab per extruder, named as on the printer tab's switch. for (size_t extruder_idx = 0; extruder_idx < extruders_count; ++extruder_idx) { - const int option = printer_tab ? printer_tab->calculate_selection_index_for_extruder(int(extruder_idx), NozzleVolumeType::nvtStandard) : -1; - const wxString page_title = extruders_count > 1 && option >= 0 && option < int(switch_options.size()) ? - switch_options[option] : - Tab::translate_category(extruders_count > 1 ? wxString::Format("Extruder %d", int(extruder_idx + 1)) : wxString("Extruder"), tab->m_type); + const wxString page_title = Tab::translate_category(extruders_count > 1 ? wxString::Format("Extruder %d", int(extruder_idx + 1)) : wxString("Extruder"), tab->m_type); for (const ConfigOptionsGroupShp& optgroup : page->m_optgroups) { // Allowlist on the untranslated optgroup title; the "Retraction when // switching material" group is intentionally skipped. diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index dc6b6d6945..25c17b56b2 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -8418,6 +8418,13 @@ std::vector Tab::generate_extruder_options() // Orca: Left/Right only names a Bambu dual-nozzle printer; other printers number their tools. const bool toolhead_names = extruder_nums == 2 && m_preset_bundle->is_bbl_vendor(); for (int i = 0; i < extruder_nums; ++i) { + // Orca: the printer tab has one tag per extruder, named as its former "Extruder N" pages were. + // parse_extruder_selection() counts a hybrid extruder as two tags; that still lines up because + // only the last extruder can be hybrid. + if (m_type == Preset::TYPE_PRINTER) { + options.push_back(translate_category(wxString::Format("Extruder %d", i + 1), m_type)); + continue; + } wxString extruder_name = !toolhead_names ? wxString::Format("T%d", i + 1) : _L(DevPrinterConfigUtil::get_toolhead_display_name( pt, (i == 0) ? DEPUTY_EXTRUDER_ID : MAIN_EXTRUDER_ID,