Added call a toggle printable property for instance from ObjectList
This commit is contained in:
parent
825446d145
commit
e8f27c6407
4 changed files with 22 additions and 8 deletions
|
@ -752,8 +752,8 @@ void ObjectList::OnContextMenu(wxDataViewEvent&)
|
||||||
#endif // __WXOSX__
|
#endif // __WXOSX__
|
||||||
const wxString title = col->GetTitle();
|
const wxString title = col->GetTitle();
|
||||||
|
|
||||||
if (title == " ");
|
if (title == " ")
|
||||||
// show_context_menu();
|
toggle_printable_state(item);
|
||||||
else if (title == _("Editing"))
|
else if (title == _("Editing"))
|
||||||
show_context_menu();
|
show_context_menu();
|
||||||
else if (title == _("Name"))
|
else if (title == _("Name"))
|
||||||
|
@ -2276,7 +2276,7 @@ void ObjectList::add_object_to_list(size_t obj_idx, bool call_selection_changed)
|
||||||
select_item(m_objects_model->AddInstanceChild(m_objects_model->GetItemById(obj_idx), print_idicator));
|
select_item(m_objects_model->AddInstanceChild(m_objects_model->GetItemById(obj_idx), print_idicator));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
m_objects_model->SetPrintableState(obj_idx, model_object->instances[0]->is_printable() ? piPrintable : piUnprintable);
|
m_objects_model->SetPrintableState(model_object->instances[0]->is_printable() ? piPrintable : piUnprintable, obj_idx);
|
||||||
|
|
||||||
// add settings to the object, if it has those
|
// add settings to the object, if it has those
|
||||||
add_settings_item(item, &model_object->config);
|
add_settings_item(item, &model_object->config);
|
||||||
|
@ -3623,11 +3623,23 @@ void ObjectList::update_printable_state(int obj_idx, int instance_idx)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_objects_model->SetPrintableState(obj_idx, piUndef);
|
m_objects_model->SetPrintableState(piUndef, obj_idx);
|
||||||
printable = object->instances[instance_idx]->printable ? piPrintable : piUnprintable;
|
printable = object->instances[instance_idx]->printable ? piPrintable : piUnprintable;
|
||||||
}
|
}
|
||||||
|
|
||||||
select_item(m_objects_model->SetPrintableState(obj_idx, printable, instance_idx));
|
m_objects_model->SetPrintableState(printable, obj_idx, instance_idx);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ObjectList::toggle_printable_state(wxDataViewItem item)
|
||||||
|
{
|
||||||
|
const ItemType type = m_objects_model->GetItemType(item);
|
||||||
|
if (!(type&(itObject|itInstance/*|itVolume*/)))
|
||||||
|
return;
|
||||||
|
|
||||||
|
wxGetApp().plater()->canvas3D()->get_selection().toggle_instance_printable_state();
|
||||||
|
|
||||||
|
// update scene
|
||||||
|
wxGetApp().plater()->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
ModelObject* ObjectList::object(const int obj_idx) const
|
ModelObject* ObjectList::object(const int obj_idx) const
|
||||||
|
|
|
@ -349,7 +349,9 @@ public:
|
||||||
void msw_rescale();
|
void msw_rescale();
|
||||||
|
|
||||||
void update_after_undo_redo();
|
void update_after_undo_redo();
|
||||||
|
//update printable state for item from objects model
|
||||||
void update_printable_state(int obj_idx, int instance_idx);
|
void update_printable_state(int obj_idx, int instance_idx);
|
||||||
|
void toggle_printable_state(wxDataViewItem item);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#ifdef __WXOSX__
|
#ifdef __WXOSX__
|
||||||
|
|
|
@ -1657,8 +1657,8 @@ void ObjectDataViewModel::SetVolumeType(const wxDataViewItem &item, const Slic3r
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDataViewItem ObjectDataViewModel::SetPrintableState(
|
wxDataViewItem ObjectDataViewModel::SetPrintableState(
|
||||||
|
PrintIndicator printable,
|
||||||
int obj_idx,
|
int obj_idx,
|
||||||
PrintIndicator printable/* = piUndef*/,
|
|
||||||
int subobj_idx /* = -1*/,
|
int subobj_idx /* = -1*/,
|
||||||
ItemType subobj_type/* = itInstance*/)
|
ItemType subobj_type/* = itInstance*/)
|
||||||
{
|
{
|
||||||
|
@ -1673,6 +1673,7 @@ wxDataViewItem ObjectDataViewModel::SetPrintableState(
|
||||||
if (!node)
|
if (!node)
|
||||||
return wxDataViewItem(0);
|
return wxDataViewItem(0);
|
||||||
node->set_printable_icon(printable);
|
node->set_printable_icon(printable);
|
||||||
|
ItemChanged(item);
|
||||||
|
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
|
@ -485,8 +485,7 @@ public:
|
||||||
void SetVolumeBitmaps(const std::vector<wxBitmap*>& volume_bmps) { m_volume_bmps = volume_bmps; }
|
void SetVolumeBitmaps(const std::vector<wxBitmap*>& volume_bmps) { m_volume_bmps = volume_bmps; }
|
||||||
void SetWarningBitmap(wxBitmap* bitmap) { m_warning_bmp = bitmap; }
|
void SetWarningBitmap(wxBitmap* bitmap) { m_warning_bmp = bitmap; }
|
||||||
void SetVolumeType(const wxDataViewItem &item, const Slic3r::ModelVolumeType type);
|
void SetVolumeType(const wxDataViewItem &item, const Slic3r::ModelVolumeType type);
|
||||||
wxDataViewItem SetPrintableState( int obj_idx,
|
wxDataViewItem SetPrintableState( PrintIndicator printable, int obj_idx,
|
||||||
PrintIndicator printable = piUndef,
|
|
||||||
int subobj_idx = -1,
|
int subobj_idx = -1,
|
||||||
ItemType subobj_type = itInstance);
|
ItemType subobj_type = itInstance);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue