From a9cdf2171a4e1e74882f21e94e70ac73992e748e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20=C5=A0ach?= Date: Thu, 23 Jan 2025 13:28:00 +0100 Subject: [PATCH] Fix SPE-2658: Update status to finished if possible on objects changed --- src/slic3r/GUI/Plater.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 766a121f56..ca2035de03 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1585,7 +1585,6 @@ std::vector Plater::priv::load_files(const std::vector& input_ s_multiple_beds.ensure_wipe_towers_on_beds(model, fff_prints); s_multiple_beds.update_shown_beds(model, q->build_volume()); - s_print_statuses.fill(PrintStatus::idle); update((unsigned int)UpdateParams::FORCE_BACKGROUND_PROCESSING_UPDATE); return obj_idxs; @@ -1857,9 +1856,14 @@ void Plater::priv::object_list_changed() // if (printer_technology == ptFFF) { for (std::size_t bed_index{}; bed_index < s_multiple_beds.get_number_of_beds(); ++bed_index) { - if ( - wxGetApp().plater()->get_fff_prints()[bed_index]->empty()) { + if ( wxGetApp().plater()->get_fff_prints()[bed_index]->empty()) { s_print_statuses[bed_index] = PrintStatus::empty; + } else if ( + wxGetApp().plater()->get_fff_prints()[bed_index]->finished() + && is_sliceable(s_print_statuses[bed_index]) + && s_print_statuses[bed_index] != PrintStatus::toolpath_outside + ) { + s_print_statuses[bed_index] = PrintStatus::finished; } for (const ModelObject *object : wxGetApp().model().objects) { for (const ModelInstance *instance : object->instances) {