From 9ed459e132baee9d82a926bb4b47b930aa4eacb1 Mon Sep 17 00:00:00 2001 From: Ian Chua Date: Fri, 25 Sep 2026 13:25:45 +0800 Subject: [PATCH] fix: slicing event name and ID --- src/libslic3r/GCode.cpp | 15 ++++++++++----- src/libslic3r/Print.cpp | 15 ++++++++++----- src/slic3r/GUI/Plater.cpp | 8 ++++---- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 1a1d1bcbff..8bbd7a0344 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -2479,7 +2479,8 @@ void GCode::do_export(Print* print, const char* path, GCodeProcessorResult* resu { LifecycleEventContext ctx; - ctx.name = std::to_string(print->model().id().id); + ctx.id = std::to_string(print->model().id().id); + ctx.name = print->get_model_name(); ctx.code = LifecycleEvtCode::Ok; ctx.msg = path; ctx.cancellation_check = [print]() { return print->canceled(); }; @@ -2531,7 +2532,8 @@ void GCode::do_export(Print* print, const char* path, GCodeProcessorResult* resu } { LifecycleEventContext ctx; - ctx.name = std::to_string(print->model().id().id); + ctx.id = std::to_string(print->model().id().id); + ctx.name = print->get_model_name(); ctx.code = LifecycleEvtCode::Error; ctx.msg = std::string(path) + "\n" + err_msg; ctx.cancellation_check = [print]() { return print->canceled(); }; @@ -2555,7 +2557,8 @@ void GCode::do_export(Print* print, const char* path, GCodeProcessorResult* resu boost::nowide::remove(path_tmp.c_str()); { LifecycleEventContext ctx; - ctx.name = std::to_string(print->model().id().id); + ctx.id = std::to_string(print->model().id().id); + ctx.name = print->get_model_name(); ctx.code = LifecycleEvtCode::Error; ctx.msg = std::string(path) + "\n" + ex.what(); ctx.cancellation_check = [print]() { return print->canceled(); }; @@ -2668,7 +2671,8 @@ void GCode::do_export(Print* print, const char* path, GCodeProcessorResult* resu if (ret) { { LifecycleEventContext ctx; - ctx.name = std::to_string(print->model().id().id); + ctx.id = std::to_string(print->model().id().id); + ctx.name = print->get_model_name(); ctx.code = LifecycleEvtCode::Error; ctx.msg = std::string(path) + "\nFailed to rename the output G-code file: " + ret.message(); ctx.cancellation_check = [print]() { return print->canceled(); }; @@ -2687,7 +2691,8 @@ void GCode::do_export(Print* print, const char* path, GCodeProcessorResult* resu { LifecycleEventContext ctx; - ctx.name = std::to_string(print->model().id().id); + ctx.id = std::to_string(print->model().id().id); + ctx.name = print->get_model_name(); ctx.code = LifecycleEvtCode::Ok; ctx.msg = path; ctx.cancellation_check = [print]() { return print->canceled(); }; diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 477c2c74ca..850761339f 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -2716,7 +2716,8 @@ void Print::process(long long *time_cost_with_cache, bool use_cache) { LifecycleEventContext ctx; - ctx.name = std::to_string(m_model.id().id); + ctx.id = std::to_string(m_model.id().id); + ctx.name = get_model_name(); ctx.code = LifecycleEvtCode::Ok; ctx.cancellation_check = [this]() { return canceled(); }; fire_lifecycle_event(LifecycleEvent::SliceStarted, ctx); @@ -3343,7 +3344,8 @@ void Print::process(long long *time_cost_with_cache, bool use_cache) { LifecycleEventContext ctx; - ctx.name = std::to_string(m_model.id().id); + ctx.id = std::to_string(m_model.id().id); + ctx.name = get_model_name(); ctx.code = LifecycleEvtCode::Ok; ctx.cancellation_check = [this]() { return canceled(); }; fire_lifecycle_event(LifecycleEvent::SliceGeometryFinished, ctx); @@ -4949,7 +4951,8 @@ void Print::export_gcode_from_previous_file(const std::string& file, GCodeProces { { LifecycleEventContext ctx; - ctx.name = std::to_string(m_model.id().id); + ctx.id = std::to_string(m_model.id().id); + ctx.name = get_model_name(); ctx.code = LifecycleEvtCode::Ok; ctx.msg = file; ctx.cancellation_check = [this]() { return canceled(); }; @@ -4979,7 +4982,8 @@ void Print::export_gcode_from_previous_file(const std::string& file, GCodeProces BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(": found errors when process gcode file %1%") %file.c_str(); { LifecycleEventContext ctx; - ctx.name = std::to_string(m_model.id().id); + ctx.id = std::to_string(m_model.id().id); + ctx.name = get_model_name(); ctx.code = LifecycleEvtCode::Error; ctx.msg = file + "\n" + ex.what(); ctx.cancellation_check = [this]() { return canceled(); }; @@ -4993,7 +4997,8 @@ void Print::export_gcode_from_previous_file(const std::string& file, GCodeProces { LifecycleEventContext ctx; - ctx.name = std::to_string(m_model.id().id); + ctx.id = std::to_string(m_model.id().id); + ctx.name = get_model_name(); ctx.code = LifecycleEvtCode::Ok; ctx.msg = file; ctx.cancellation_check = [this]() { return canceled(); }; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 5eb36f20f9..04318dcbb5 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -12801,9 +12801,6 @@ void Plater::priv::on_process_completed(SlicingProcessCompletedEvent &evt) this->background_process.stop(); notification_manager->set_slicing_progress_export_possible(); - // Reset the "export G-code path" name, so that the automatic background processing will be enabled again. - const std::string lifecycle_job_name = this->background_process.fff_print() ? - this->background_process.fff_print()->output_filename() : std::string(); this->background_process.reset_export(); // This bool stops showing export finished notification even when process_completed_with_error is false bool has_error = false; @@ -12850,7 +12847,10 @@ void Plater::priv::on_process_completed(SlicingProcessCompletedEvent &evt) { Slic3r::LifecycleEventContext ctx; - ctx.name = lifecycle_job_name; + if (const Print* print = this->background_process.fff_print()) { + ctx.id = std::to_string(print->model().id().id); + ctx.name = print->get_model_name(); + } ctx.code = evt.cancelled() ? Slic3r::LifecycleEvtCode::Warn : (has_error ? Slic3r::LifecycleEvtCode::Error : Slic3r::LifecycleEvtCode::Ok); ctx.msg = evt.cancelled() ? "cancelled" : (has_error ? lifecycle_error_msg : std::string()); Slic3r::fire_lifecycle_event(Slic3r::LifecycleEvent::SlicingJobComplete, ctx);