diff --git a/src/slic3r/GUI/AppConfig.cpp b/src/slic3r/GUI/AppConfig.cpp index d7307cc32..7a277b119 100644 --- a/src/slic3r/GUI/AppConfig.cpp +++ b/src/slic3r/GUI/AppConfig.cpp @@ -241,6 +241,7 @@ void AppConfig::reset_selections() if (it != m_storage.end()) { it->second.erase("print"); it->second.erase("filament"); + it->second.erase("sla_print"); it->second.erase("sla_material"); it->second.erase("printer"); m_dirty = true; diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 099bec5c5..3e454061f 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -796,7 +796,6 @@ void MainFrame::on_presets_changed(SimpleEvent &event) // Update preset combo boxes(Print settings, Filament, Material, Printer) from their respective tabs. auto presets = tab->get_presets(); if (m_plater != nullptr && presets != nullptr) { -// auto reload_dependent_tabs = tab->get_dependent_tabs(); // FIXME: The preset type really should be a property of Tab instead Slic3r::Preset::Type preset_type = tab->type(); @@ -804,25 +803,7 @@ void MainFrame::on_presets_changed(SimpleEvent &event) wxASSERT(false); return; } -/* - m_plater->sidebar().update_presets(preset_type); - if (preset_type == Slic3r::Preset::TYPE_PRINTER) { - // Printer selected at the Printer tab, update "compatible" marks at the print and filament selectors. - // XXX: Do this in a more C++ way - for (const auto tab_name_other : { "print", "filament", "sla_material" }) { - Tab* cur_tab = m_options_tabs[tab_name_other]; - // If the printer tells us that the print or filament preset has been switched or invalidated, - // refresh the print or filament tab page.Otherwise just refresh the combo box. - if (reload_dependent_tabs.empty() || - find(reload_dependent_tabs.begin(), reload_dependent_tabs.end(), tab_name_other) == - reload_dependent_tabs.end() ) - cur_tab->update_tab_ui(); - else - cur_tab->load_current_preset(); - } - } -*/ m_plater->on_config_change(*tab->get_config()); m_plater->sidebar().update_presets(preset_type); } diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index eb0d7cc49..5bef5deb1 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1879,8 +1879,6 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt) } } - // Synchronize config.ini with the current selections. - wxGetApp().preset_bundle->export_selections(*wxGetApp().app_config); // update plater with new config wxGetApp().plater()->on_config_change(wxGetApp().preset_bundle->full_config()); } diff --git a/src/slic3r/GUI/PresetBundle.cpp b/src/slic3r/GUI/PresetBundle.cpp index c092cae43..55729d7e4 100644 --- a/src/slic3r/GUI/PresetBundle.cpp +++ b/src/slic3r/GUI/PresetBundle.cpp @@ -168,12 +168,14 @@ void PresetBundle::setup_directories() data_dir / "presets", data_dir / "presets" / "print", data_dir / "presets" / "filament", + data_dir / "presets" / "sla_print", data_dir / "presets" / "sla_material", data_dir / "presets" / "printer" #else // Store the print/filament/printer presets at the same location as the upstream Slic3r. data_dir / "print", data_dir / "filament", + data_dir / "sla_print", data_dir / "sla_material", data_dir / "printer" #endif @@ -381,13 +383,13 @@ void PresetBundle::export_selections(AppConfig &config) assert(this->printers.get_edited_preset().printer_technology() != ptFFF || filament_presets.size() > 1 || filaments.get_selected_preset_name() == filament_presets.front()); config.clear_section("presets"); config.set("presets", "print", prints.get_selected_preset_name()); - config.set("presets", "sla_print", sla_prints.get_selected_preset_name()); config.set("presets", "filament", filament_presets.front()); for (int i = 1; i < filament_presets.size(); ++i) { char name[64]; sprintf(name, "filament_%d", i); config.set("presets", name, filament_presets[i]); } + config.set("presets", "sla_print", sla_prints.get_selected_preset_name()); config.set("presets", "sla_material", sla_materials.get_selected_preset_name()); config.set("presets", "printer", printers.get_selected_preset_name()); } @@ -955,8 +957,8 @@ static void flatten_configbundle_hierarchy(boost::property_tree::ptree &tree, co static void flatten_configbundle_hierarchy(boost::property_tree::ptree &tree) { flatten_configbundle_hierarchy(tree, "print"); - flatten_configbundle_hierarchy(tree, "sla_print"); flatten_configbundle_hierarchy(tree, "filament"); + flatten_configbundle_hierarchy(tree, "sla_print"); flatten_configbundle_hierarchy(tree, "sla_material"); flatten_configbundle_hierarchy(tree, "printer"); } @@ -1018,7 +1020,7 @@ size_t PresetBundle::load_configbundle(const std::string &path, unsigned int fla } else if (boost::starts_with(section.first, "sla_print:")) { presets = &this->sla_prints; loaded = &loaded_sla_prints; - preset_name = section.first.substr(13); + preset_name = section.first.substr(10); } else if (boost::starts_with(section.first, "sla_material:")) { presets = &this->sla_materials; loaded = &loaded_sla_materials; diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index 026e340da..47eece8ab 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -448,7 +448,8 @@ void PresetUpdater::priv::perform_updates(Updates &&updates, bool snapshot) cons for (const auto &name : bundle.obsolete_presets.prints) { obsolete_remover("print", name); } for (const auto &name : bundle.obsolete_presets.filaments) { obsolete_remover("filament", name); } - for (const auto &name : bundle.obsolete_presets.filaments) { obsolete_remover("sla_material", name); } + for (const auto &name : bundle.obsolete_presets.sla_prints) { obsolete_remover("sla_print", name); } + for (const auto &name : bundle.obsolete_presets.sla_materials/*filaments*/) { obsolete_remover("sla_material", name); } for (const auto &name : bundle.obsolete_presets.printers) { obsolete_remover("printer", name); } } }