mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-18 12:17:54 -06:00
Fixed part settings updating
This commit is contained in:
parent
d6d632d4fc
commit
5a4cef9ac1
5 changed files with 23 additions and 9 deletions
|
@ -150,7 +150,8 @@ void ObjectList::set_tooltip_for_item(const wxPoint& pt)
|
||||||
GetMainWindow()->SetToolTip(""); // hide tooltip
|
GetMainWindow()->SetToolTip(""); // hide tooltip
|
||||||
}
|
}
|
||||||
|
|
||||||
wxPoint ObjectList::get_mouse_position_in_control() {
|
wxPoint ObjectList::get_mouse_position_in_control()
|
||||||
|
{
|
||||||
const wxPoint& pt = wxGetMousePosition();
|
const wxPoint& pt = wxGetMousePosition();
|
||||||
// wxWindow* win = GetMainWindow();
|
// wxWindow* win = GetMainWindow();
|
||||||
// wxPoint screen_pos = win->GetScreenPosition();
|
// wxPoint screen_pos = win->GetScreenPosition();
|
||||||
|
@ -159,10 +160,9 @@ wxPoint ObjectList::get_mouse_position_in_control() {
|
||||||
|
|
||||||
int ObjectList::get_selected_obj_idx() const
|
int ObjectList::get_selected_obj_idx() const
|
||||||
{
|
{
|
||||||
if (GetSelectedItemsCount() == 1) {
|
if (GetSelectedItemsCount() == 1)
|
||||||
auto item = GetSelection();
|
return m_objects_model->GetIdByItem(m_objects_model->GetTopParent(GetSelection()));
|
||||||
return m_objects_model->GetIdByItem(item);
|
|
||||||
}
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -687,6 +687,7 @@ void ObjectList::load_part( ModelObject* model_object,
|
||||||
{
|
{
|
||||||
wxWindow* parent = wxGetApp().tab_panel()->GetPage(0);
|
wxWindow* parent = wxGetApp().tab_panel()->GetPage(0);
|
||||||
|
|
||||||
|
m_parts_changed = false;
|
||||||
wxArrayString input_files;
|
wxArrayString input_files;
|
||||||
wxGetApp().open_model(parent, input_files);
|
wxGetApp().open_model(parent, input_files);
|
||||||
for (int i = 0; i < input_files.size(); ++i) {
|
for (int i = 0; i < input_files.size(); ++i) {
|
||||||
|
@ -739,6 +740,7 @@ void ObjectList::load_lambda( ModelObject* model_object,
|
||||||
{
|
{
|
||||||
auto dlg = new LambdaObjectDialog(GetMainWindow());
|
auto dlg = new LambdaObjectDialog(GetMainWindow());
|
||||||
if (dlg->ShowModal() == wxID_CANCEL) {
|
if (dlg->ShowModal() == wxID_CANCEL) {
|
||||||
|
m_parts_changed = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1002,9 +1004,17 @@ bool ObjectList::is_splittable_object(const bool split_part)
|
||||||
return splittable;
|
return splittable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ObjectList::part_settings_changed()
|
||||||
|
{
|
||||||
|
m_part_settings_changed = true;
|
||||||
|
wxGetApp().plater()->changed_object(get_selected_obj_idx());
|
||||||
|
m_part_settings_changed = false;
|
||||||
|
}
|
||||||
|
|
||||||
void ObjectList::parts_changed(int obj_idx)
|
void ObjectList::parts_changed(int obj_idx)
|
||||||
{
|
{
|
||||||
wxGetApp().mainframe->m_plater->changed_object_settings(obj_idx);
|
wxGetApp().plater()->changed_object(get_selected_obj_idx());
|
||||||
|
m_parts_changed = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectList::part_selection_changed()
|
void ObjectList::part_selection_changed()
|
||||||
|
|
|
@ -99,6 +99,7 @@ public:
|
||||||
int get_selected_obj_idx() const;
|
int get_selected_obj_idx() const;
|
||||||
bool is_parts_changed() const { return m_parts_changed; }
|
bool is_parts_changed() const { return m_parts_changed; }
|
||||||
bool is_part_settings_changed() const { return m_part_settings_changed; }
|
bool is_part_settings_changed() const { return m_part_settings_changed; }
|
||||||
|
void part_settings_changed();
|
||||||
|
|
||||||
void parts_changed(int obj_idx);
|
void parts_changed(int obj_idx);
|
||||||
void part_selection_changed();
|
void part_selection_changed();
|
||||||
|
|
|
@ -225,6 +225,9 @@ void ObjectManipulation::update_settings_list()
|
||||||
optgroup->label_width = 150;
|
optgroup->label_width = 150;
|
||||||
optgroup->sidetext_width = 70;
|
optgroup->sidetext_width = 70;
|
||||||
|
|
||||||
|
optgroup->m_on_change = [](const t_config_option_key& opt_id, const boost::any& value) {
|
||||||
|
wxGetApp().obj_list()->part_settings_changed(); };
|
||||||
|
|
||||||
for (auto& opt : cat.second)
|
for (auto& opt : cat.second)
|
||||||
{
|
{
|
||||||
if (opt == "extruder")
|
if (opt == "extruder")
|
||||||
|
|
|
@ -2608,7 +2608,7 @@ wxGLCanvas* Plater::canvas3D()
|
||||||
return p->canvas3D;
|
return p->canvas3D;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Plater::changed_object_settings(int obj_idx)
|
void Plater::changed_object(int obj_idx)
|
||||||
{
|
{
|
||||||
if (obj_idx < 0)
|
if (obj_idx < 0)
|
||||||
return;
|
return;
|
||||||
|
@ -2622,6 +2622,7 @@ void Plater::changed_object_settings(int obj_idx)
|
||||||
auto model_object = p->model.objects[obj_idx];
|
auto model_object = p->model.objects[obj_idx];
|
||||||
model_object->center_around_origin();
|
model_object->center_around_origin();
|
||||||
model_object->ensure_on_bed();
|
model_object->ensure_on_bed();
|
||||||
|
_3DScene::reload_scene(p->canvas3D, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// update print
|
// update print
|
||||||
|
@ -2632,7 +2633,6 @@ void Plater::changed_object_settings(int obj_idx)
|
||||||
auto selections = p->collect_selections();
|
auto selections = p->collect_selections();
|
||||||
_3DScene::set_objects_selections(p->canvas3D, selections);
|
_3DScene::set_objects_selections(p->canvas3D, selections);
|
||||||
#endif // !ENABLE_EXTENDED_SELECTION
|
#endif // !ENABLE_EXTENDED_SELECTION
|
||||||
_3DScene::reload_scene(p->canvas3D, false);
|
|
||||||
#if !ENABLE_MODIFIED_CAMERA_TARGET
|
#if !ENABLE_MODIFIED_CAMERA_TARGET
|
||||||
_3DScene::zoom_to_volumes(p->canvas3D);
|
_3DScene::zoom_to_volumes(p->canvas3D);
|
||||||
#endif // !ENABLE_MODIFIED_CAMERA_TARGET
|
#endif // !ENABLE_MODIFIED_CAMERA_TARGET
|
||||||
|
|
|
@ -123,7 +123,7 @@ public:
|
||||||
void export_amf();
|
void export_amf();
|
||||||
void export_3mf();
|
void export_3mf();
|
||||||
void reslice();
|
void reslice();
|
||||||
void changed_object_settings(int obj_idx);
|
void changed_object(int obj_idx);
|
||||||
void send_gcode();
|
void send_gcode();
|
||||||
|
|
||||||
void on_extruders_change(int extruders_count);
|
void on_extruders_change(int extruders_count);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue