FIX: fix a slicing state not correct issue in some corner case[Studio-2600]

add a new object in other plate when slicing a plate
it will stop the background slicing process
and it should also send a complete event

Change-Id: Ie7cbcb5a97251a002b7448eb8a9c5bbde1680956
(cherry picked from commit 710a2b273424d59313d7053f0f2c2b54b0c849c0)
This commit is contained in:
lane.wei 2023-06-16 09:25:51 +08:00 committed by Lane.Wei
parent 0fcc235e14
commit a7ec66c294
3 changed files with 20 additions and 8 deletions

View file

@ -317,6 +317,8 @@ void BackgroundSlicingProcess::thread_proc()
break;
// Process the background slicing task.
m_state = STATE_RUNNING;
//BBS: internal cancel
m_internal_cancelled = false;
lck.unlock();
std::exception_ptr exception;
#ifdef _WIN32
@ -337,6 +339,10 @@ void BackgroundSlicingProcess::thread_proc()
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": send SlicingProcessCompletedEvent to main, status %1%")%evt.status();
wxQueueEvent(GUI::wxGetApp().mainframe->m_plater, evt.Clone());
}
else {
//BBS: internal cancel
m_internal_cancelled = true;
}
m_print->restart();
lck.unlock();
// Let the UI thread wake up if it is waiting for the background task to finish.