diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 9817f69203..b148138cbb 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -2746,7 +2746,7 @@ size_t PresetCollection::first_visible_idx() const size_t first_visible = -1; size_t idx = m_default_suppressed ? m_num_default_presets : 0; for (; idx < m_presets.size(); ++ idx) - if (m_presets[idx].is_visible) { + if (m_presets[idx].is_visible && m_presets[idx].get_printer_id() == "BBL") { if (first_visible == -1) first_visible = idx; if (m_type != Preset::TYPE_FILAMENT) @@ -2758,8 +2758,12 @@ size_t PresetCollection::first_visible_idx() const } } } - if (first_visible == -1) - first_visible = 0; + if (first_visible == -1) { + if (m_presets.size() > 1 && m_default_suppressed) + first_visible = m_presets.size() == m_num_default_presets ? 0 : m_num_default_presets; + else + first_visible = 0; + } return first_visible; } diff --git a/src/libslic3r/Preset.hpp b/src/libslic3r/Preset.hpp index 2c9da0b4dd..1bf7066396 100644 --- a/src/libslic3r/Preset.hpp +++ b/src/libslic3r/Preset.hpp @@ -335,6 +335,7 @@ public: std::string get_current_printer_type(PresetBundle *preset_bundle); // get current preset type static void get_extruder_names_and_keysets(Type type, std::string& extruder_id_name, std::string& extruder_variant_name, std::set** p_key_set1, std::set** p_key_set2); + std::string get_printer_id() const { return vendor ? vendor->id : ""; } bool has_lidar(PresetBundle *preset_bundle); bool is_custom_defined();