diff options
author | YuSanka <yusanka@gmail.com> | 2018-05-21 15:36:09 +0300 |
---|---|---|
committer | YuSanka <yusanka@gmail.com> | 2018-05-21 15:36:09 +0300 |
commit | c4478ccffaed4a6ca3ffff324df90f523bec2152 (patch) | |
tree | d8b78b4721cff1169a60b61b6fd33d70e4b7b304 /xs/src/slic3r/GUI/Tab.cpp | |
parent | 64b905820d00bad48b43f7d5ba36848462814976 (diff) |
Fixed wrong updating of the options group tree
Diffstat (limited to 'xs/src/slic3r/GUI/Tab.cpp')
-rw-r--r-- | xs/src/slic3r/GUI/Tab.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index 5a47dd1e7..38c97f25e 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -1709,7 +1709,8 @@ void TabPrinter::build_extruder_pages(){ size_t n_before_extruders = 2; // Count of pages before Extruder pages size_t n_after_single_extruder_MM = 2; // Count of pages after single_extruder_multi_material page - if (m_extruders_count_old == m_extruders_count || m_extruders_count <= 2) + if (m_extruders_count_old == m_extruders_count || + (m_has_single_extruder_MM_page && m_extruders_count == 1)) { // 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 @@ -1717,16 +1718,19 @@ void TabPrinter::build_extruder_pages(){ m_pages.erase(m_pages.begin() + i); break; } - if (m_extruders_count > 1 && m_config->opt_bool("single_extruder_multi_material")) { - // create a page, but pretend it's an extruder page, so we can add it to m_pages ourselves - auto page = add_options_page(_(L("Single extruder MM setup")), "printer_empty.png", true); - auto optgroup = page->new_optgroup(_(L("Single extruder multimaterial parameters"))); - optgroup->append_single_option_line("cooling_tube_retraction"); - optgroup->append_single_option_line("cooling_tube_length"); - optgroup->append_single_option_line("parking_pos_retraction"); - m_pages.insert(m_pages.end() - n_after_single_extruder_MM, page); - } + m_has_single_extruder_MM_page = false; + } + if (m_extruders_count > 1 && m_config->opt_bool("single_extruder_multi_material") && !m_has_single_extruder_MM_page) { + // create a page, but pretend it's an extruder page, so we can add it to m_pages ourselves + auto page = add_options_page(_(L("Single extruder MM setup")), "printer_empty.png", true); + auto optgroup = page->new_optgroup(_(L("Single extruder multimaterial parameters"))); + optgroup->append_single_option_line("cooling_tube_retraction"); + optgroup->append_single_option_line("cooling_tube_length"); + optgroup->append_single_option_line("parking_pos_retraction"); + m_pages.insert(m_pages.end() - n_after_single_extruder_MM, page); + m_has_single_extruder_MM_page = true; } + for (auto extruder_idx = m_extruders_count_old; extruder_idx < m_extruders_count; ++extruder_idx){ //# build page |