mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	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; | ||||
|                 if (it_print_object_status != print_object_status.end()) | ||||
|                     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()) | ||||
|                         update_apply_status(it_print_object_status->print_object->invalidate_step(slaposSupportPoints)); | ||||
|                 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.
 | ||||
|  |  | |||
|  | @ -2274,6 +2274,9 @@ std::vector<ConfigOption*> GLGizmoSlaSupports::get_config_options(const std::vec | |||
| #if ENABLE_IMGUI | ||||
| 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,
 | ||||
|                            // so it is not delayed until the background process finishes.
 | ||||
| RENDER_AGAIN: | ||||
|  | @ -2570,7 +2573,7 @@ void GLGizmoSlaSupports::auto_generate() | |||
|                 "Are you sure you want to do it?\n" | ||||
|                 )), _(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_points_status = sla::PointsStatus::Generating; | ||||
|         m_editing_mode_cache.clear(); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lukas Matena
						Lukas Matena