mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-08 07:27:41 -06:00
Fix: Switching between multi-extruder printers using tabs can cause t… (#7483)
fix: Switching between multi-extruder printers using tabs can cause the filament count to be incorrect.
This commit is contained in:
parent
ef28de69a5
commit
1af51d66c6
2 changed files with 18 additions and 9 deletions
|
@ -5115,8 +5115,14 @@ bool Tab::select_preset(std::string preset_name, bool delete_current /*=false*/,
|
||||||
|
|
||||||
// Orca: update presets for the selected printer
|
// Orca: update presets for the selected printer
|
||||||
if (m_type == Preset::TYPE_PRINTER && wxGetApp().app_config->get_bool("remember_printer_config")) {
|
if (m_type == Preset::TYPE_PRINTER && wxGetApp().app_config->get_bool("remember_printer_config")) {
|
||||||
m_preset_bundle->update_selections(*wxGetApp().app_config);
|
m_preset_bundle->update_selections(*wxGetApp().app_config);
|
||||||
wxGetApp().plater()->sidebar().on_filaments_change(m_preset_bundle->filament_presets.size());
|
int extruders_count = m_preset_bundle->printers.get_edited_preset().config.opt<ConfigOptionFloats>("nozzle_diameter")->values.size();
|
||||||
|
if (extruders_count > 1) {
|
||||||
|
// multi tool
|
||||||
|
wxGetApp().plater()->sidebar().on_filaments_change(extruders_count);
|
||||||
|
} else {
|
||||||
|
wxGetApp().plater()->sidebar().on_filaments_change(m_preset_bundle->filament_presets.size());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
load_current_preset();
|
load_current_preset();
|
||||||
|
|
||||||
|
@ -6098,8 +6104,9 @@ void Page::update_visibility(ConfigOptionMode mode, bool update_contolls_visibil
|
||||||
#ifdef __WXMSW__
|
#ifdef __WXMSW__
|
||||||
if (!m_show) return;
|
if (!m_show) return;
|
||||||
// BBS: fix field control position
|
// BBS: fix field control position
|
||||||
wxTheApp->CallAfter([this]() {
|
auto groups = this->m_optgroups;
|
||||||
for (auto group : m_optgroups) {
|
wxTheApp->CallAfter([groups]() {
|
||||||
|
for (auto group : groups) {
|
||||||
if (group->custom_ctrl) group->custom_ctrl->fixup_items_positions();
|
if (group->custom_ctrl) group->custom_ctrl->fixup_items_positions();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -1664,17 +1664,19 @@ void UnsavedChangesDialog::update_tree(Preset::Type type, PresetCollection* pres
|
||||||
|
|
||||||
// process changes of extruders count
|
// process changes of extruders count
|
||||||
if (type == Preset::TYPE_PRINTER && old_pt == ptFFF &&
|
if (type == Preset::TYPE_PRINTER && old_pt == ptFFF &&
|
||||||
old_config.opt<ConfigOptionStrings>("extruder_colour")->values.size() != new_config.opt<ConfigOptionStrings>("extruder_colour")->values.size()) {
|
old_config.opt<ConfigOptionFloats>("nozzle_diameter")->values.size() != new_config.opt<ConfigOptionFloats>("nozzle_diameter")->values.size()) {
|
||||||
wxString local_label = _L("Extruders count");
|
wxString local_label = _L("Extruders count");
|
||||||
wxString old_val = from_u8((boost::format("%1%") % old_config.opt<ConfigOptionStrings>("extruder_colour")->values.size()).str());
|
wxString old_val = from_u8((boost::format("%1%") % old_config.opt<ConfigOptionFloats>("nozzle_diameter")->values.size()).str());
|
||||||
wxString new_val = from_u8((boost::format("%1%") % new_config.opt<ConfigOptionStrings>("extruder_colour")->values.size()).str());
|
wxString new_val = from_u8((boost::format("%1%") % new_config.opt<ConfigOptionFloats>("nozzle_diameter")->values.size()).str());
|
||||||
|
|
||||||
//BBS: the page "General" changed to "Basic information" instead
|
//BBS: the page "General" changed to "Basic information" instead
|
||||||
//m_tree->Append("extruders_count", type, _L("General"), _L("Capabilities"), local_label, old_val, new_val, category_icon_map.at("Basic information"));
|
//m_tree->Append("extruders_count", type, _L("General"), _L("Capabilities"), local_label, old_val, new_val, category_icon_map.at("Basic information"));
|
||||||
//m_tree->Append("extruders_count", type, _L("General"), _L("Capabilities"), local_label, old_val, new_val, category_icon_map.at("General"));
|
//m_tree->Append("extruders_count", type, _L("General"), _L("Capabilities"), local_label, old_val, new_val, category_icon_map.at("General"));
|
||||||
|
|
||||||
PresetItem pi = {type, "extruders_count", _L("General"), _L("Capabilities"), local_label, old_val, new_val};
|
if (old_val != new_val) {
|
||||||
m_presetitems.push_back(pi);
|
PresetItem pi = {type, "extruders_count", _L("General"), _L("Capabilities"), local_label, old_val, new_val};
|
||||||
|
m_presetitems.push_back(pi);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const std::string& opt_key : dirty_options) {
|
for (const std::string& opt_key : dirty_options) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue