Update gizmos on/off state

This commit is contained in:
YuSanka 2018-12-03 13:29:07 +01:00
parent 435163fb73
commit 7395b923bd
4 changed files with 12 additions and 3 deletions

View File

@ -5248,6 +5248,12 @@ void GLCanvas3D::set_camera_zoom(float zoom)
_refresh_if_shown_on_screen(); _refresh_if_shown_on_screen();
} }
void GLCanvas3D::update_gizmos_on_off_state()
{
set_as_dirty();
m_gizmos.update_on_off_state(get_selection());
}
bool GLCanvas3D::_is_shown_on_screen() const bool GLCanvas3D::_is_shown_on_screen() const
{ {
return (m_canvas != nullptr) ? m_canvas->IsShownOnScreen() : false; return (m_canvas != nullptr) ? m_canvas->IsShownOnScreen() : false;

View File

@ -919,6 +919,8 @@ public:
void set_camera_zoom(float zoom); void set_camera_zoom(float zoom);
void update_gizmos_on_off_state();
private: private:
bool _is_shown_on_screen() const; bool _is_shown_on_screen() const;
void _force_zoom_to_bed(); void _force_zoom_to_bed();

View File

@ -1405,7 +1405,7 @@ void ObjectList::update_selections_on_canvas()
const int sel_cnt = GetSelectedItemsCount(); const int sel_cnt = GetSelectedItemsCount();
if (sel_cnt == 0) { if (sel_cnt == 0) {
selection.clear(); selection.clear();
wxGetApp().plater()->canvas3D()->set_as_dirty(); wxGetApp().plater()->canvas3D()->update_gizmos_on_off_state();
return; return;
} }
@ -1435,7 +1435,7 @@ void ObjectList::update_selections_on_canvas()
else else
add_to_selection(item, selection, true); add_to_selection(item, selection, true);
wxGetApp().plater()->canvas3D()->set_as_dirty(); wxGetApp().plater()->canvas3D()->update_gizmos_on_off_state();
return; return;
} }
@ -1446,7 +1446,7 @@ void ObjectList::update_selections_on_canvas()
for (auto item: sels) for (auto item: sels)
add_to_selection(item, selection, false); add_to_selection(item, selection, false);
wxGetApp().plater()->canvas3D()->set_as_dirty(); wxGetApp().plater()->canvas3D()->update_gizmos_on_off_state();
} }
void ObjectList::select_item(const wxDataViewItem& item) void ObjectList::select_item(const wxDataViewItem& item)

View File

@ -1563,6 +1563,7 @@ void Plater::priv::object_list_changed()
void Plater::priv::select_all() void Plater::priv::select_all()
{ {
this->canvas3D->select_all(); this->canvas3D->select_all();
this->sidebar->obj_list()->update_selections();
} }
void Plater::priv::remove(size_t obj_idx) void Plater::priv::remove(size_t obj_idx)