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
|
@ -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…
Reference in New Issue