Ported Plater->on_config_change
This commit is contained in:
parent
b7980f6b9b
commit
d654e35975
3 changed files with 81 additions and 3 deletions
|
@ -209,8 +209,8 @@ void ObjectList::update_extruder_in_config(const wxString& selection)
|
||||||
int extruder = selection.size() > 1 ? 0 : atoi(selection.c_str());
|
int extruder = selection.size() > 1 ? 0 : atoi(selection.c_str());
|
||||||
m_config->set_key_value("extruder", new ConfigOptionInt(extruder));
|
m_config->set_key_value("extruder", new ConfigOptionInt(extruder));
|
||||||
|
|
||||||
// #ys_FIXME_events
|
// update scene
|
||||||
// wxGetApp().plater()->update();
|
wxGetApp().plater()->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectList::init_icons(){
|
void ObjectList::init_icons(){
|
||||||
|
|
|
@ -216,6 +216,7 @@ PresetComboBox::PresetComboBox(wxWindow *parent, Preset::Type preset_type) :
|
||||||
|
|
||||||
wxGetApp().get_tab(Preset::TYPE_PRINTER)->load_config(cfg);
|
wxGetApp().get_tab(Preset::TYPE_PRINTER)->load_config(cfg);
|
||||||
wxGetApp().preset_bundle->update_platter_filament_ui(extruder_idx, this);
|
wxGetApp().preset_bundle->update_platter_filament_ui(extruder_idx, this);
|
||||||
|
wxGetApp().plater()->on_config_change(&cfg);
|
||||||
}
|
}
|
||||||
dialog->Destroy();
|
dialog->Destroy();
|
||||||
});
|
});
|
||||||
|
@ -642,6 +643,24 @@ void Sidebar::enable_buttons(bool enable)
|
||||||
p->btn_send_gcode->Enable(enable);
|
p->btn_send_gcode->Enable(enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Sidebar::show_button(ButtonAction but_action, bool show)
|
||||||
|
{
|
||||||
|
switch (but_action)
|
||||||
|
{
|
||||||
|
case baReslice:
|
||||||
|
p->btn_reslice->Show(show);
|
||||||
|
break;
|
||||||
|
case baExportGcode:
|
||||||
|
p->btn_export_gcode->Show(show);
|
||||||
|
break;
|
||||||
|
case baSendGcode:
|
||||||
|
p->btn_send_gcode->Show(show);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool Sidebar::is_multifilament()
|
bool Sidebar::is_multifilament()
|
||||||
{
|
{
|
||||||
return p->combos_filament.size() > 0;
|
return p->combos_filament.size() > 0;
|
||||||
|
@ -1907,7 +1926,57 @@ void Plater::on_extruders_change(int num_extruders)
|
||||||
|
|
||||||
void Plater::on_config_change(DynamicPrintConfig* config)
|
void Plater::on_config_change(DynamicPrintConfig* config)
|
||||||
{
|
{
|
||||||
// TODO
|
bool update_scheduled = false;
|
||||||
|
for ( auto opt_key: p->config->diff(*config)) {
|
||||||
|
p->config->set_key_value(opt_key, config->option(opt_key)->clone());
|
||||||
|
if (opt_key == "bed_shape") {
|
||||||
|
if (p->canvas3D) _3DScene::set_bed_shape(p->canvas3D, p->config->option<ConfigOptionPoints>(opt_key)->values);
|
||||||
|
if (p->preview) p->preview->set_bed_shape(p->config->option<ConfigOptionPoints>(opt_key)->values);
|
||||||
|
update_scheduled = true;
|
||||||
|
}
|
||||||
|
else if(opt_key == "wipe_tower" /*|| opt_key == "filament_minimal_purge_on_wipe_tower"*/ || // ? #ys_FIXME
|
||||||
|
opt_key == "single_extruder_multi_material") {
|
||||||
|
update_scheduled = true;
|
||||||
|
}
|
||||||
|
// else if(opt_key == "serial_port") {
|
||||||
|
// sidebar()->p->btn_print->Show(config->get("serial_port")); // ???: btn_print is removed
|
||||||
|
// Layout();
|
||||||
|
// }
|
||||||
|
else if (opt_key == "print_host") {
|
||||||
|
sidebar().show_button(baReslice, !p->config->option<ConfigOptionString>(opt_key)->value.empty());
|
||||||
|
Layout();
|
||||||
|
}
|
||||||
|
else if(opt_key == "variable_layer_height") {
|
||||||
|
if (p->config->opt_bool("variable_layer_height") != true) {
|
||||||
|
_3DScene::enable_toolbar_item(p->canvas3D, "layersediting", false);
|
||||||
|
_3DScene::enable_layers_editing(p->canvas3D, 0);
|
||||||
|
p->canvas3D->Refresh();
|
||||||
|
p->canvas3D->Update();
|
||||||
|
}
|
||||||
|
else if (_3DScene::is_layers_editing_allowed(p->canvas3D)) {
|
||||||
|
_3DScene::enable_toolbar_item(p->canvas3D, "layersediting", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(opt_key == "extruder_colour") {
|
||||||
|
update_scheduled = true;
|
||||||
|
p->preview->set_number_extruders(p->config->option<ConfigOptionStrings>(opt_key)->values.size());
|
||||||
|
} else if(opt_key == "max_print_height") {
|
||||||
|
update_scheduled = true;
|
||||||
|
} else if(opt_key == "printer_model") {
|
||||||
|
// update to force bed selection(for texturing)
|
||||||
|
if (p->canvas3D) _3DScene::set_bed_shape(p->canvas3D, p->config->option<ConfigOptionPoints>("bed_shape")->values);
|
||||||
|
if (p->preview) p->preview->set_bed_shape(p->config->option<ConfigOptionPoints>("bed_shape")->values);
|
||||||
|
update_scheduled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (update_scheduled)
|
||||||
|
update();
|
||||||
|
|
||||||
|
if (!p->main_frame->is_loaded()) return ;
|
||||||
|
|
||||||
|
// (re)start timer
|
||||||
|
// schedule_background_process();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxGLCanvas* Plater::canvas3D()
|
wxGLCanvas* Plater::canvas3D()
|
||||||
|
|
|
@ -49,6 +49,14 @@ private:
|
||||||
int extruder_idx = -1;
|
int extruder_idx = -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum ButtonAction
|
||||||
|
{
|
||||||
|
baUndef,
|
||||||
|
baReslice,
|
||||||
|
baExportGcode,
|
||||||
|
baSendGcode
|
||||||
|
};
|
||||||
|
|
||||||
class Sidebar : public wxPanel
|
class Sidebar : public wxPanel
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -71,6 +79,7 @@ public:
|
||||||
void update_objects_list_extruder_column(int extruders_count);
|
void update_objects_list_extruder_column(int extruders_count);
|
||||||
void show_info_sizers(const bool show);
|
void show_info_sizers(const bool show);
|
||||||
void show_buttons(const bool show);
|
void show_buttons(const bool show);
|
||||||
|
void show_button(ButtonAction but_action, bool show);
|
||||||
void enable_buttons(bool enable);
|
void enable_buttons(bool enable);
|
||||||
bool is_multifilament();
|
bool is_multifilament();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue