An attempt to fix an unwanted cancellation caused by improper frontend-backend data synchronization (SLA support points)
This commit is contained in:
parent
570bc63e58
commit
ee4496f59f
2 changed files with 17 additions and 2 deletions
|
@ -337,7 +337,7 @@ SLAPrint::ApplyStatus SLAPrint::apply(const Model &model, const DynamicPrintConf
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (model_object.sla_support_points != model_object_new.sla_support_points) {
|
/*if (model_object.sla_support_points != model_object_new.sla_support_points) {
|
||||||
model_object.sla_support_points = model_object_new.sla_support_points;
|
model_object.sla_support_points = model_object_new.sla_support_points;
|
||||||
if (it_print_object_status != print_object_status.end())
|
if (it_print_object_status != print_object_status.end())
|
||||||
update_apply_status(it_print_object_status->print_object->invalidate_step(slaposSupportPoints));
|
update_apply_status(it_print_object_status->print_object->invalidate_step(slaposSupportPoints));
|
||||||
|
@ -351,6 +351,18 @@ SLAPrint::ApplyStatus SLAPrint::apply(const Model &model, const DynamicPrintConf
|
||||||
if (it_print_object_status != print_object_status.end())
|
if (it_print_object_status != print_object_status.end())
|
||||||
update_apply_status(it_print_object_status->print_object->invalidate_step(slaposSupportPoints));
|
update_apply_status(it_print_object_status->print_object->invalidate_step(slaposSupportPoints));
|
||||||
model_object.sla_points_status = model_object_new.sla_points_status;
|
model_object.sla_points_status = model_object_new.sla_points_status;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
bool old_user_modified = model_object.sla_points_status == sla::PointsStatus::UserModified;
|
||||||
|
bool new_user_modified = model_object_new.sla_points_status == sla::PointsStatus::UserModified;
|
||||||
|
if ((old_user_modified && ! new_user_modified) || // switching to automatic supports from manual supports
|
||||||
|
(! old_user_modified && new_user_modified) || // switching to manual supports from automatic supports
|
||||||
|
(new_user_modified && model_object.sla_support_points != model_object_new.sla_support_points)) {
|
||||||
|
if (it_print_object_status != print_object_status.end())
|
||||||
|
update_apply_status(it_print_object_status->print_object->invalidate_step(slaposSupportPoints));
|
||||||
|
|
||||||
|
model_object.sla_points_status = model_object_new.sla_points_status;
|
||||||
|
model_object.sla_support_points = model_object_new.sla_support_points;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Copy the ModelObject name, input_file and instances. The instances will compared against PrintObject instances in the next step.
|
// Copy the ModelObject name, input_file and instances. The instances will compared against PrintObject instances in the next step.
|
||||||
|
|
|
@ -2274,6 +2274,9 @@ std::vector<ConfigOption*> GLGizmoSlaSupports::get_config_options(const std::vec
|
||||||
#if ENABLE_IMGUI
|
#if ENABLE_IMGUI
|
||||||
void GLGizmoSlaSupports::on_render_input_window(float x, float y, const GLCanvas3D::Selection& selection)
|
void GLGizmoSlaSupports::on_render_input_window(float x, float y, const GLCanvas3D::Selection& selection)
|
||||||
{
|
{
|
||||||
|
if (!m_model_object)
|
||||||
|
return;
|
||||||
|
|
||||||
bool first_run = true; // This is a hack to redraw the button when all points are removed,
|
bool first_run = true; // This is a hack to redraw the button when all points are removed,
|
||||||
// so it is not delayed until the background process finishes.
|
// so it is not delayed until the background process finishes.
|
||||||
RENDER_AGAIN:
|
RENDER_AGAIN:
|
||||||
|
@ -2570,7 +2573,7 @@ void GLGizmoSlaSupports::auto_generate()
|
||||||
"Are you sure you want to do it?\n"
|
"Are you sure you want to do it?\n"
|
||||||
)), _(L("Warning")), wxICON_WARNING | wxYES | wxNO);
|
)), _(L("Warning")), wxICON_WARNING | wxYES | wxNO);
|
||||||
|
|
||||||
if (m_model_object->sla_points_status != sla::PointsStatus::UserModified || dlg.ShowModal() == wxID_YES) {
|
if (m_model_object->sla_points_status != sla::PointsStatus::UserModified || m_editing_mode_cache.empty() || dlg.ShowModal() == wxID_YES) {
|
||||||
m_model_object->sla_support_points.clear();
|
m_model_object->sla_support_points.clear();
|
||||||
m_model_object->sla_points_status = sla::PointsStatus::Generating;
|
m_model_object->sla_points_status = sla::PointsStatus::Generating;
|
||||||
m_editing_mode_cache.clear();
|
m_editing_mode_cache.clear();
|
||||||
|
|
Loading…
Add table
Reference in a new issue