From 96c7c4a58b819b8cc0ca0dd1c9e00717a9b04e42 Mon Sep 17 00:00:00 2001 From: Vojtech Kral Date: Wed, 16 May 2018 19:41:35 +0200 Subject: [PATCH] PresetUpdater: Remove obsolete presets --- xs/src/slic3r/Utils/PresetUpdater.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/xs/src/slic3r/Utils/PresetUpdater.cpp b/xs/src/slic3r/Utils/PresetUpdater.cpp index fcbe20fb7f..a5208e3c26 100644 --- a/xs/src/slic3r/Utils/PresetUpdater.cpp +++ b/xs/src/slic3r/Utils/PresetUpdater.cpp @@ -409,6 +409,17 @@ void PresetUpdater::priv::perform_updates(Updates &&updates, bool snapshot) cons for (const auto &preset : bundle.prints) { preset_remover(preset); } for (const auto &preset : bundle.filaments) { preset_remover(preset); } for (const auto &preset : bundle.printers) { preset_remover(preset); } + + // Also apply the `obsolete_presets` property, removing obsolete ini files + auto obsolete_remover = [](const char *subdir, const std::string &preset) { + auto path = fs::path(Slic3r::data_dir()) / subdir / preset; + path += ".ini"; + fs::remove(path); + }; + + 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.printers) { obsolete_remover("printer", name); } } } }