diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index 5fd5898a1b..b8379697d6 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -1098,35 +1098,32 @@ void PresetUpdater::priv::check_installed_vendor_profiles() const const auto enabled_vendors = app_config->vendors(); std::set bundles; - // Orca: always install filament library - bundles.insert(PresetBundle::ORCA_FILAMENT_LIBRARY); // A vendor is named by its profile or, where the build ships preset caches // instead of the raw profile JSONs, by its cache alone. for (const std::string &vendor_name : vendor_names_in(rsrc_path)) { - if (bundles.find(vendor_name) != bundles.end())continue; - - const auto is_vendor_enabled = (vendor_name == PresetBundle::ORCA_DEFAULT_BUNDLE) // always update configs from resource to vendor for ORCA_DEFAULT_BUNDLE + // enabled_vendors lists the vendors whose printer models the user picked, and + // neither of these two is ever in it. + const auto is_vendor_enabled = (vendor_name == PresetBundle::ORCA_DEFAULT_BUNDLE) + || (vendor_name == PresetBundle::ORCA_FILAMENT_LIBRARY) || (enabled_vendors.find(vendor_name) != enabled_vendors.end()); if (is_vendor_installed(vendor_name)) { - if (enabled_config_update) { - if (is_vendor_enabled) { - // Orca: whichever form of the vendor resources ships at the newer - // version is the one installing lays down, and the one to judge - // what is installed against. - Semver resource_ver = resource_vendor_version(vendor_name); - // Orca: a vendor installed as a preset cache has no profile - // beside it; the version it was installed at is in the cache. - Semver vendor_ver = installed_vendor_version(vendor_name); + if (is_vendor_enabled) { + // Orca: whichever form of the vendor resources ships at the newer + // version is the one installing lays down, and the one to judge + // what is installed against. + Semver resource_ver = resource_vendor_version(vendor_name); + // Orca: a vendor installed as a preset cache has no profile + // beside it; the version it was installed at is in the cache. + Semver vendor_ver = installed_vendor_version(vendor_name); - if (vendor_ver < resource_ver) { - BOOST_LOG_TRIVIAL(info) << "[Orca Updater]:found vendor " << vendor_name << " newer version " - << resource_ver.to_string() << " from resource, old version " << vendor_ver.to_string(); - bundles.insert(vendor_name); - } - } else { - // need to be removed because not installed - remove_installed_vendor(vendor_name); + if (vendor_ver < resource_ver) { + BOOST_LOG_TRIVIAL(info) << "[Orca Updater]:found vendor " << vendor_name << " newer version " + << resource_ver.to_string() << " from resource, old version " << vendor_ver.to_string(); + bundles.insert(vendor_name); } + } else { + // need to be removed because not installed + remove_installed_vendor(vendor_name); } } else if (is_vendor_enabled) { bundles.insert(vendor_name);