mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	ENH: return if the bed_type of a plate is the same as global
Signed-off-by: yifan.wu <yifan.wu@bambulab.com> Change-Id: I15882d04fa89ebb27bc57434ff9f2c9468725d71 (cherry picked from commit b1606e07f1b9d91f1c01676ebbbe550e69a2ce53)
This commit is contained in:
		
							parent
							
								
									0320872e4e
								
							
						
					
					
						commit
						acf8f7b2a3
					
				
					 3 changed files with 20 additions and 4 deletions
				
			
		| 
						 | 
					@ -147,11 +147,26 @@ BedType PartPlate::get_bed_type() const
 | 
				
			||||||
	return BedType::btPC;
 | 
						return BedType::btPC;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void PartPlate::set_bed_type(BedType bed_type)
 | 
					void PartPlate::set_bed_type(BedType bed_type, bool& same_as_global)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
						// should be called in GUI context
 | 
				
			||||||
 | 
						assert(m_plater != nullptr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						std::string bed_type_key = "curr_bed_type";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	m_config.set_key_value("curr_bed_type", new ConfigOptionEnum<BedType>(bed_type));
 | 
						m_config.set_key_value("curr_bed_type", new ConfigOptionEnum<BedType>(bed_type));
 | 
				
			||||||
	if (m_plater)
 | 
						if (m_plater) {
 | 
				
			||||||
		m_plater->schedule_background_process();
 | 
							m_plater->schedule_background_process();
 | 
				
			||||||
 | 
							DynamicConfig& proj_cfg = wxGetApp().preset_bundle->project_config;
 | 
				
			||||||
 | 
							if (proj_cfg.has(bed_type_key)) {
 | 
				
			||||||
 | 
								std::string bed_type_key = "curr_bed_type";
 | 
				
			||||||
 | 
								BedType global_bed_type = proj_cfg.opt_enum<BedType>(bed_type_key);
 | 
				
			||||||
 | 
								same_as_global = bed_type == global_bed_type;
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						same_as_global = false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void PartPlate::reset_bed_type()
 | 
					void PartPlate::reset_bed_type()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -207,7 +207,7 @@ public:
 | 
				
			||||||
    void clear(bool clear_sliced_result = true);
 | 
					    void clear(bool clear_sliced_result = true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    BedType get_bed_type() const;
 | 
					    BedType get_bed_type() const;
 | 
				
			||||||
    void set_bed_type(BedType);
 | 
					    void set_bed_type(BedType, bool& same_as_global);
 | 
				
			||||||
    void reset_bed_type();
 | 
					    void reset_bed_type();
 | 
				
			||||||
    DynamicPrintConfig* config() { return &m_config; }
 | 
					    DynamicPrintConfig* config() { return &m_config; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10585,8 +10585,9 @@ int Plater::select_plate_by_hover_id(int hover_id, bool right_click)
 | 
				
			||||||
            SetBedTypeDialog dlg(this, wxID_ANY, _L("Select bed type"));
 | 
					            SetBedTypeDialog dlg(this, wxID_ANY, _L("Select bed type"));
 | 
				
			||||||
            dlg.sync_bed_type(p->partplate_list.get_curr_plate()->get_bed_type());
 | 
					            dlg.sync_bed_type(p->partplate_list.get_curr_plate()->get_bed_type());
 | 
				
			||||||
            dlg.Bind(EVT_SET_BED_TYPE_CONFIRM, [this, plate_index](wxCommandEvent& e) {
 | 
					            dlg.Bind(EVT_SET_BED_TYPE_CONFIRM, [this, plate_index](wxCommandEvent& e) {
 | 
				
			||||||
 | 
					                bool same_as_global = false;
 | 
				
			||||||
                auto type = (BedType)(e.GetInt());
 | 
					                auto type = (BedType)(e.GetInt());
 | 
				
			||||||
                p->partplate_list.get_curr_plate()->set_bed_type(type);
 | 
					                p->partplate_list.get_curr_plate()->set_bed_type(type, same_as_global);
 | 
				
			||||||
                BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("select bed type %1% for plate %2% at plate side")%type %plate_index;
 | 
					                BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("select bed type %1% for plate %2% at plate side")%type %plate_index;
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
            dlg.ShowModal();
 | 
					            dlg.ShowModal();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue