Merge remote-tracking branch 'origin/master' into ys_printable_property
This commit is contained in:
commit
02324becdb
@ -798,17 +798,19 @@ void ObjectList::show_context_menu()
|
|||||||
|
|
||||||
void ObjectList::copy()
|
void ObjectList::copy()
|
||||||
{
|
{
|
||||||
if (m_selection_mode & smLayer)
|
// if (m_selection_mode & smLayer)
|
||||||
fill_layer_config_ranges_cache();
|
// fill_layer_config_ranges_cache();
|
||||||
else
|
// else {
|
||||||
|
// m_layer_config_ranges_cache.clear();
|
||||||
wxPostEvent((wxEvtHandler*)wxGetApp().plater()->canvas3D()->get_wxglcanvas(), SimpleEvent(EVT_GLTOOLBAR_COPY));
|
wxPostEvent((wxEvtHandler*)wxGetApp().plater()->canvas3D()->get_wxglcanvas(), SimpleEvent(EVT_GLTOOLBAR_COPY));
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectList::paste()
|
void ObjectList::paste()
|
||||||
{
|
{
|
||||||
if (!m_layer_config_ranges_cache.empty())
|
// if (!m_layer_config_ranges_cache.empty())
|
||||||
paste_layers_into_list();
|
// paste_layers_into_list();
|
||||||
else
|
// else
|
||||||
wxPostEvent((wxEvtHandler*)wxGetApp().plater()->canvas3D()->get_wxglcanvas(), SimpleEvent(EVT_GLTOOLBAR_PASTE));
|
wxPostEvent((wxEvtHandler*)wxGetApp().plater()->canvas3D()->get_wxglcanvas(), SimpleEvent(EVT_GLTOOLBAR_PASTE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2809,7 +2811,8 @@ void ObjectList::update_selections_on_canvas()
|
|||||||
|
|
||||||
std::vector<unsigned int> volume_idxs;
|
std::vector<unsigned int> volume_idxs;
|
||||||
Selection::EMode mode = Selection::Volume;
|
Selection::EMode mode = Selection::Volume;
|
||||||
auto add_to_selection = [this, &volume_idxs](const wxDataViewItem& item, const Selection& selection, int instance_idx, Selection::EMode& mode)
|
bool single_selection = sel_cnt == 1;
|
||||||
|
auto add_to_selection = [this, &volume_idxs, &single_selection](const wxDataViewItem& item, const Selection& selection, int instance_idx, Selection::EMode& mode)
|
||||||
{
|
{
|
||||||
const ItemType& type = m_objects_model->GetItemType(item);
|
const ItemType& type = m_objects_model->GetItemType(item);
|
||||||
const int obj_idx = m_objects_model->GetObjectIdByItem(item);
|
const int obj_idx = m_objects_model->GetObjectIdByItem(item);
|
||||||
@ -2828,6 +2831,7 @@ void ObjectList::update_selections_on_canvas()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
mode = Selection::Instance;
|
mode = Selection::Instance;
|
||||||
|
single_selection = false;
|
||||||
std::vector<unsigned int> idxs = selection.get_volume_idxs_from_object(obj_idx);
|
std::vector<unsigned int> idxs = selection.get_volume_idxs_from_object(obj_idx);
|
||||||
volume_idxs.insert(volume_idxs.end(), idxs.begin(), idxs.end());
|
volume_idxs.insert(volume_idxs.end(), idxs.begin(), idxs.end());
|
||||||
}
|
}
|
||||||
@ -2869,7 +2873,7 @@ void ObjectList::update_selections_on_canvas()
|
|||||||
// add
|
// add
|
||||||
volume_idxs = selection.get_unselected_volume_idxs_from(volume_idxs);
|
volume_idxs = selection.get_unselected_volume_idxs_from(volume_idxs);
|
||||||
Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Selection-Add from list")));
|
Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Selection-Add from list")));
|
||||||
selection.add_volumes(mode, volume_idxs, sel_cnt == 1);
|
selection.add_volumes(mode, volume_idxs, single_selection);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxGetApp().plater()->canvas3D()->update_gizmos_on_off_state();
|
wxGetApp().plater()->canvas3D()->update_gizmos_on_off_state();
|
||||||
@ -2934,6 +2938,7 @@ void ObjectList::select_item_all_children()
|
|||||||
// update selection mode for non-multiple selection
|
// update selection mode for non-multiple selection
|
||||||
void ObjectList::update_selection_mode()
|
void ObjectList::update_selection_mode()
|
||||||
{
|
{
|
||||||
|
m_selected_layers_range_idx=-1;
|
||||||
// All items are unselected
|
// All items are unselected
|
||||||
if (!GetSelection())
|
if (!GetSelection())
|
||||||
{
|
{
|
||||||
|
@ -59,7 +59,7 @@ bool GLGizmoSlaSupports::on_init()
|
|||||||
|
|
||||||
void GLGizmoSlaSupports::set_sla_support_data(ModelObject* model_object, const Selection& selection)
|
void GLGizmoSlaSupports::set_sla_support_data(ModelObject* model_object, const Selection& selection)
|
||||||
{
|
{
|
||||||
if (selection.is_empty()) {
|
if (! model_object || selection.is_empty()) {
|
||||||
m_model_object = nullptr;
|
m_model_object = nullptr;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1031,13 +1031,18 @@ RENDER_AGAIN:
|
|||||||
if (remove_selected || remove_all) {
|
if (remove_selected || remove_all) {
|
||||||
force_refresh = false;
|
force_refresh = false;
|
||||||
m_parent.set_as_dirty();
|
m_parent.set_as_dirty();
|
||||||
|
bool was_in_editing = m_editing_mode;
|
||||||
|
if (! was_in_editing)
|
||||||
|
switch_to_editing_mode();
|
||||||
if (remove_all) {
|
if (remove_all) {
|
||||||
if (!m_editing_mode)
|
|
||||||
switch_to_editing_mode();
|
|
||||||
select_point(AllPoints);
|
select_point(AllPoints);
|
||||||
delete_selected_points(true); // true - delete regardless of locked status
|
delete_selected_points(true); // true - delete regardless of locked status
|
||||||
editing_mode_apply_changes();
|
|
||||||
}
|
}
|
||||||
|
if (remove_selected)
|
||||||
|
delete_selected_points(false); // leave locked points
|
||||||
|
if (! was_in_editing)
|
||||||
|
editing_mode_apply_changes();
|
||||||
|
|
||||||
if (first_run) {
|
if (first_run) {
|
||||||
first_run = false;
|
first_run = false;
|
||||||
goto RENDER_AGAIN;
|
goto RENDER_AGAIN;
|
||||||
@ -1172,7 +1177,8 @@ void GLGizmoSlaSupports::on_load(cereal::BinaryInputArchive& ar)
|
|||||||
m_model_object_id,
|
m_model_object_id,
|
||||||
m_new_point_head_diameter,
|
m_new_point_head_diameter,
|
||||||
m_normal_cache,
|
m_normal_cache,
|
||||||
m_editing_cache
|
m_editing_cache,
|
||||||
|
m_selection_empty
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1185,7 +1191,8 @@ void GLGizmoSlaSupports::on_save(cereal::BinaryOutputArchive& ar) const
|
|||||||
m_model_object_id,
|
m_model_object_id,
|
||||||
m_new_point_head_diameter,
|
m_new_point_head_diameter,
|
||||||
m_normal_cache,
|
m_normal_cache,
|
||||||
m_editing_cache
|
m_editing_cache,
|
||||||
|
m_selection_empty
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user