FIX: cannot immediately update the left list

Right click modification cannot immediately update plate_name the left list

Change-Id: Ieb2a38d687f79195a9748e093c0d96a36236d1b5
(cherry picked from commit 2331c2e4fe4de3350a3c3765b7e00f30025addff)
This commit is contained in:
zhou.xu 2023-06-25 10:18:31 +08:00 committed by Lane.Wei
parent fadb421e63
commit 1aa51e9a99
7 changed files with 13 additions and 3 deletions

View File

@ -999,6 +999,7 @@ void GLCanvas3D::SequentialPrintClearance::render()
wxDEFINE_EVENT(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS, SimpleEvent);
wxDEFINE_EVENT(EVT_GLCANVAS_OBJECT_SELECT, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_OBJECT_SELECT, SimpleEvent);
wxDEFINE_EVENT(EVT_GLCANVAS_PLATE_NAME_CHANGE, SimpleEvent);
wxDEFINE_EVENT(EVT_GLCANVAS_PLATE_SELECT, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_PLATE_SELECT, SimpleEvent);
wxDEFINE_EVENT(EVT_GLCANVAS_RIGHT_CLICK, RBtnEvent); wxDEFINE_EVENT(EVT_GLCANVAS_RIGHT_CLICK, RBtnEvent);
wxDEFINE_EVENT(EVT_GLCANVAS_PLATE_RIGHT_CLICK, RBtnPlateEvent); wxDEFINE_EVENT(EVT_GLCANVAS_PLATE_RIGHT_CLICK, RBtnPlateEvent);

View File

@ -138,6 +138,7 @@ private:
wxDECLARE_EVENT(EVT_GLCANVAS_OBJECT_SELECT, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_OBJECT_SELECT, SimpleEvent);
wxDECLARE_EVENT(EVT_GLCANVAS_PLATE_NAME_CHANGE, SimpleEvent);
//BBS: declare EVT_GLCANVAS_PLATE_SELECT //BBS: declare EVT_GLCANVAS_PLATE_SELECT
wxDECLARE_EVENT(EVT_GLCANVAS_PLATE_SELECT, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_PLATE_SELECT, SimpleEvent);

View File

@ -1677,6 +1677,7 @@ void MenuFactory::append_menu_item_plate_name(wxMenu *menu)
{ {
plater()->select_plate_by_hover_id(hover_idx, false, true); plater()->select_plate_by_hover_id(hover_idx, false, true);
} }
plater()->get_current_canvas3D()->post_event(SimpleEvent(EVT_GLCANVAS_PLATE_NAME_CHANGE));
}, },
"", nullptr, []() { return true; }, m_parent); "", nullptr, []() { return true; }, m_parent);

View File

@ -1251,7 +1251,7 @@ wxDataViewItem ObjectDataViewModel::GetItemByPlateId(int plate_idx)
return wxDataViewItem(nullptr); return wxDataViewItem(nullptr);
} }
void ObjectDataViewModel::SetCurSelectedPlateFullNmae(int plate_idx, const std::string & custom_name) { void ObjectDataViewModel::SetCurSelectedPlateFullName(int plate_idx, const std::string & custom_name) {
for (auto plate : m_plates) { for (auto plate : m_plates) {
if (plate->m_plate_idx == plate_idx) { if (plate->m_plate_idx == plate_idx) {
wxString plate_full_name =_L("Plate"); wxString plate_full_name =_L("Plate");

View File

@ -361,7 +361,7 @@ public:
void DeleteVolumeChildren(wxDataViewItem& parent); void DeleteVolumeChildren(wxDataViewItem& parent);
void DeleteSettings(const wxDataViewItem& parent); void DeleteSettings(const wxDataViewItem& parent);
wxDataViewItem GetItemByPlateId(int plate_idx); wxDataViewItem GetItemByPlateId(int plate_idx);
void SetCurSelectedPlateFullNmae(int plate_idx,const std::string &); void SetCurSelectedPlateFullName(int plate_idx,const std::string &);
wxDataViewItem GetItemById(int obj_idx); wxDataViewItem GetItemById(int obj_idx);
wxDataViewItem GetItemById(const int obj_idx, const int sub_obj_idx, const ItemType parent_type); wxDataViewItem GetItemById(const int obj_idx, const int sub_obj_idx, const ItemType parent_type);
wxDataViewItem GetItemByVolumeId(int obj_idx, int volume_idx); wxDataViewItem GetItemByVolumeId(int obj_idx, int volume_idx);

View File

@ -1635,7 +1635,7 @@ void PartPlate::set_plate_name(const std::string &name)
if (m_plater) { if (m_plater) {
ObjectList *obj_list = wxGetApp().obj_list(); ObjectList *obj_list = wxGetApp().obj_list();
if (obj_list) { if (obj_list) {
obj_list->GetModel()->SetCurSelectedPlateFullNmae(m_plate_index, m_name); obj_list->GetModel()->SetCurSelectedPlateFullName(m_plate_index, m_name);
} }
} }

View File

@ -2133,6 +2133,7 @@ struct Plater::priv
void on_action_layersediting(SimpleEvent&); void on_action_layersediting(SimpleEvent&);
void on_object_select(SimpleEvent&); void on_object_select(SimpleEvent&);
void on_plate_name_change(SimpleEvent &);
void on_right_click(RBtnEvent&); void on_right_click(RBtnEvent&);
//BBS: add model repair //BBS: add model repair
void on_repair_model(wxCommandEvent &event); void on_repair_model(wxCommandEvent &event);
@ -2424,6 +2425,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
this->background_process_timer.Start(500, wxTIMER_ONE_SHOT); this->background_process_timer.Start(500, wxTIMER_ONE_SHOT);
}); });
view3D_canvas->Bind(EVT_GLCANVAS_OBJECT_SELECT, &priv::on_object_select, this); view3D_canvas->Bind(EVT_GLCANVAS_OBJECT_SELECT, &priv::on_object_select, this);
view3D_canvas->Bind(EVT_GLCANVAS_PLATE_NAME_CHANGE, &priv::on_plate_name_change, this);
view3D_canvas->Bind(EVT_GLCANVAS_RIGHT_CLICK, &priv::on_right_click, this); view3D_canvas->Bind(EVT_GLCANVAS_RIGHT_CLICK, &priv::on_right_click, this);
//BBS: add part plate related logic //BBS: add part plate related logic
view3D_canvas->Bind(EVT_GLCANVAS_PLATE_RIGHT_CLICK, &priv::on_plate_right_click, this); view3D_canvas->Bind(EVT_GLCANVAS_PLATE_RIGHT_CLICK, &priv::on_plate_right_click, this);
@ -6423,6 +6425,11 @@ void Plater::priv::on_object_select(SimpleEvent& evt)
selection_changed(); selection_changed();
} }
void Plater::priv::on_plate_name_change(SimpleEvent &) {
wxGetApp().obj_list()->update_selections();
selection_changed();
}
//BBS: repair model through netfabb //BBS: repair model through netfabb
void Plater::priv::on_repair_model(wxCommandEvent &event) void Plater::priv::on_repair_model(wxCommandEvent &event)
{ {