diff --git a/resources/images/printer_preview_N7.png b/resources/images/printer_preview_N7.png new file mode 100644 index 0000000000..2f5fb75123 Binary files /dev/null and b/resources/images/printer_preview_N7.png differ diff --git a/resources/images/printer_thumbnail_N7.svg b/resources/images/printer_thumbnail_N7.svg new file mode 100644 index 0000000000..c8a464a0c0 --- /dev/null +++ b/resources/images/printer_thumbnail_N7.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 9b295dddbb..3b83f19835 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -253,20 +253,6 @@ static std::map bed_type_thumbnails = { {BedType::btSuperTack, "bed_cool_supertack"} }; -// print_model_id -static std::map printer_thumbnails = { - {"N1", "printer_preview_N1"}, - {"N2S", "printer_preview_N2S"}, - {"C11", "printer_preview_C11"}, - {"C12", "printer_preview_C12"}, - {"C13", "printer_preview_C13"}, - {"BL-P001", "printer_preview_BL-P001"}, - {"BL-P002", "printer_preview_BL-P002"}, - {"O1D", "printer_preview_O1D"}, - {"O1E", "printer_preview_O1E"}, - {"O1S", "printer_preview_O1S"} -}; - enum SlicedInfoIdx { siFilament_m, @@ -3583,14 +3569,24 @@ std::string& Sidebar::get_search_line() return p->searcher.search_string(); } +static std::map printer_thumbnails = {}; + void Sidebar::update_printer_thumbnail() { auto& preset_bundle = wxGetApp().preset_bundle; Preset & selected_preset = preset_bundle->printers.get_edited_preset(); std::string printer_type = selected_preset.get_current_printer_type(preset_bundle); - if (printer_thumbnails.find(printer_type) != printer_thumbnails.end()) + if (printer_thumbnails.find(printer_type) != printer_thumbnails.end()) // Use known cache first p->image_printer->SetBitmap(create_scaled_bitmap(printer_thumbnails[printer_type], this, 48)); else { + try { + // No cache, try dedicated printer preview + p->image_printer->SetBitmap(create_scaled_bitmap("printer_preview_" + printer_type, this, 48)); + // Success, cache it + printer_thumbnails[printer_type] = "printer_preview_" + printer_type; + return; + } catch (...) {} + // Orca: try to use the printer model cover as the thumbnail const auto model_name = selected_preset.config.opt_string("printer_model"); std::string cover_file = model_name + "_cover.png";