FIX: ObjectSetting changed when search plate
JIRA: STUDIO-5095 Signed-off-by: Kunlong Ma <kunlong.ma@bambulab.com> Change-Id: I39b1ad997d51ac4224ff5ad2b3555f56da4bd911
This commit is contained in:
parent
23b2edda34
commit
8e246b4165
|
@ -212,10 +212,13 @@ bool ObjectSettings::update_settings_list()
|
|||
if (type == itPlate) {
|
||||
is_plate_settings = true;
|
||||
|
||||
int plate_id = objects_model->GetPlateIdByItem(item);
|
||||
assert(plate_id >= 0);
|
||||
|
||||
static ModelConfig cfg;
|
||||
auto plate = wxGetApp().plater()->get_partplate_list().get_curr_plate();
|
||||
cfg.assign_config(*plate->config());
|
||||
plate_configs.emplace(plate, &cfg);
|
||||
PartPlateList& ppl = wxGetApp().plater()->get_partplate_list();
|
||||
cfg.assign_config(*ppl.get_plate(plate_id)->config());
|
||||
plate_configs.emplace(ppl.get_plate(plate_id), &cfg);
|
||||
}
|
||||
if (type != itObject && type != itVolume && type != itLayerRoot && type != itLayer) {
|
||||
continue;
|
||||
|
|
|
@ -1364,6 +1364,19 @@ int ObjectDataViewModel::GetIdByItem(const wxDataViewItem& item) const
|
|||
return it - m_objects.begin();
|
||||
}
|
||||
|
||||
int ObjectDataViewModel::GetPlateIdByItem(const wxDataViewItem& item) const
|
||||
{
|
||||
if (!item.IsOk())
|
||||
return -1;
|
||||
|
||||
ObjectDataViewModelNode* node = static_cast<ObjectDataViewModelNode*>(item.GetID());
|
||||
auto it = find(m_plates.begin(), m_plates.end(), node);
|
||||
if (it == m_plates.end())
|
||||
return -1;
|
||||
|
||||
return it - m_plates.begin();
|
||||
}
|
||||
|
||||
int ObjectDataViewModel::GetIdByItemAndType(const wxDataViewItem& item, const ItemType type) const
|
||||
{
|
||||
wxASSERT(item.IsOk());
|
||||
|
|
|
@ -370,6 +370,7 @@ public:
|
|||
wxDataViewItem GetItemByLayerRange(const int obj_idx, const t_layer_height_range& layer_range);
|
||||
int GetItemIdByLayerRange(const int obj_idx, const t_layer_height_range& layer_range);
|
||||
int GetIdByItem(const wxDataViewItem& item) const;
|
||||
int GetPlateIdByItem(const wxDataViewItem& item) const;
|
||||
int GetIdByItemAndType(const wxDataViewItem& item, const ItemType type) const;
|
||||
int GetObjectIdByItem(const wxDataViewItem& item) const;
|
||||
int GetVolumeIdByItem(const wxDataViewItem& item) const;
|
||||
|
|
Loading…
Reference in New Issue