mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-18 20:28:08 -06:00
Update additional object setting after print technology changing
This commit is contained in:
parent
38733ff56a
commit
d7f9e86400
4 changed files with 27 additions and 0 deletions
|
@ -721,6 +721,14 @@ wxMenu* ObjectList::create_settings_popupmenu(bool is_part)
|
||||||
return menu;
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ObjectList::update_opt_keys(t_config_option_keys& opt_keys)
|
||||||
|
{
|
||||||
|
auto full_current_opts = get_options(false);
|
||||||
|
for (int i = opt_keys.size()-1; i >= 0; --i)
|
||||||
|
if (find(full_current_opts.begin(), full_current_opts.end(), opt_keys[i]) == full_current_opts.end())
|
||||||
|
opt_keys.erase(opt_keys.begin() + i);
|
||||||
|
}
|
||||||
|
|
||||||
void ObjectList::load_subobject(int type)
|
void ObjectList::load_subobject(int type)
|
||||||
{
|
{
|
||||||
auto item = GetSelection();
|
auto item = GetSelection();
|
||||||
|
@ -1549,5 +1557,17 @@ bool ObjectList::has_multi_part_objects()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ObjectList::update_settings_items()
|
||||||
|
{
|
||||||
|
wxDataViewItemArray items;
|
||||||
|
m_objects_model->GetChildren(wxDataViewItem(0), items);
|
||||||
|
|
||||||
|
for (auto& item : items) {
|
||||||
|
const wxDataViewItem& settings_item = m_objects_model->GetSettingsItem(item);
|
||||||
|
select_item(settings_item ? settings_item : m_objects_model->AddSettingsChild(item));
|
||||||
|
}
|
||||||
|
UnselectAll();
|
||||||
|
}
|
||||||
|
|
||||||
} //namespace GUI
|
} //namespace GUI
|
||||||
} //namespace Slic3r
|
} //namespace Slic3r
|
|
@ -102,6 +102,8 @@ public:
|
||||||
wxMenu* create_part_popupmenu();
|
wxMenu* create_part_popupmenu();
|
||||||
wxMenu* create_settings_popupmenu(bool is_part);
|
wxMenu* create_settings_popupmenu(bool is_part);
|
||||||
|
|
||||||
|
void update_opt_keys(t_config_option_keys& t_optopt_keys);
|
||||||
|
|
||||||
void load_subobject(int type);
|
void load_subobject(int type);
|
||||||
void load_part(ModelObject* model_object, wxArrayString& part_names, int type);
|
void load_part(ModelObject* model_object, wxArrayString& part_names, int type);
|
||||||
void load_generic_subobject(const std::string& type_name, const int type);
|
void load_generic_subobject(const std::string& type_name, const int type);
|
||||||
|
@ -167,6 +169,7 @@ public:
|
||||||
|
|
||||||
void last_volume_is_deleted(const int obj_idx);
|
void last_volume_is_deleted(const int obj_idx);
|
||||||
bool has_multi_part_objects();
|
bool has_multi_part_objects();
|
||||||
|
void update_settings_items();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -92,6 +92,8 @@ void ObjectSettings::update_settings_list()
|
||||||
|
|
||||||
std::map<std::string, std::vector<std::string>> cat_options;
|
std::map<std::string, std::vector<std::string>> cat_options;
|
||||||
auto opt_keys = config->keys();
|
auto opt_keys = config->keys();
|
||||||
|
objects_ctrl->update_opt_keys(opt_keys); // update options list according to print technology
|
||||||
|
|
||||||
m_og_settings.resize(0);
|
m_og_settings.resize(0);
|
||||||
std::vector<std::string> categories;
|
std::vector<std::string> categories;
|
||||||
if (!(opt_keys.size() == 1 && opt_keys[0] == "extruder"))// return;
|
if (!(opt_keys.size() == 1 && opt_keys[0] == "extruder"))// return;
|
||||||
|
|
|
@ -2006,6 +2006,8 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt)
|
||||||
|
|
||||||
// update plater with new config
|
// update plater with new config
|
||||||
wxGetApp().plater()->on_config_change(wxGetApp().preset_bundle->full_config());
|
wxGetApp().plater()->on_config_change(wxGetApp().preset_bundle->full_config());
|
||||||
|
if (preset_type == Preset::TYPE_PRINTER)
|
||||||
|
wxGetApp().obj_list()->update_settings_items();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Plater::priv::on_slicing_update(SlicingStatusEvent &evt)
|
void Plater::priv::on_slicing_update(SlicingStatusEvent &evt)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue