Fixed wrong behavior of options group Tree after extruders count change
This commit is contained in:
parent
9a1dbfa6cf
commit
ec7e10e068
1 changed files with 4 additions and 3 deletions
|
@ -1348,6 +1348,9 @@ void TabPrinter::build()
|
||||||
m_presets = &m_preset_bundle->printers;
|
m_presets = &m_preset_bundle->printers;
|
||||||
load_initial_data();
|
load_initial_data();
|
||||||
|
|
||||||
|
// to avoid redundant memory allocation / deallocation during extruders count changing
|
||||||
|
m_pages.reserve(30);
|
||||||
|
|
||||||
auto *nozzle_diameter = dynamic_cast<const ConfigOptionFloats*>(m_config->option("nozzle_diameter"));
|
auto *nozzle_diameter = dynamic_cast<const ConfigOptionFloats*>(m_config->option("nozzle_diameter"));
|
||||||
m_initial_extruders_count = m_extruders_count = nozzle_diameter->values.size();
|
m_initial_extruders_count = m_extruders_count = nozzle_diameter->values.size();
|
||||||
const Preset* parent_preset = m_presets->get_selected_preset_parent();
|
const Preset* parent_preset = m_presets->get_selected_preset_parent();
|
||||||
|
@ -1625,7 +1628,7 @@ void TabPrinter::extruders_count_changed(size_t extruders_count){
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabPrinter::build_extruder_pages(){
|
void TabPrinter::build_extruder_pages(){
|
||||||
if (m_extruders_count_old == m_extruders_count)
|
if (m_extruders_count_old == m_extruders_count || m_extruders_count <= 2)
|
||||||
{
|
{
|
||||||
// if we have a single extruder MM setup, add a page with configuration options:
|
// if we have a single extruder MM setup, add a page with configuration options:
|
||||||
for (int i = 0; i < m_pages.size(); ++i) // first make sure it's not there already
|
for (int i = 0; i < m_pages.size(); ++i) // first make sure it's not there already
|
||||||
|
@ -1642,8 +1645,6 @@ void TabPrinter::build_extruder_pages(){
|
||||||
optgroup->append_single_option_line("parking_pos_retraction");
|
optgroup->append_single_option_line("parking_pos_retraction");
|
||||||
m_pages.insert(m_pages.end()-2, page);
|
m_pages.insert(m_pages.end()-2, page);
|
||||||
}
|
}
|
||||||
rebuild_page_tree();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto extruder_idx = m_extruders_count_old; extruder_idx < m_extruders_count; ++extruder_idx){
|
for (auto extruder_idx = m_extruders_count_old; extruder_idx < m_extruders_count; ++extruder_idx){
|
||||||
|
|
Loading…
Add table
Reference in a new issue