Fixed filaments/materials preset list updating from ConfigWizard
if list of printers was changed but filaments/sal_materials page wasn't activated
This commit is contained in:
parent
095b50cc04
commit
9f529e86cc
2 changed files with 26 additions and 6 deletions
src/slic3r/GUI
|
@ -1605,7 +1605,27 @@ void ConfigWizard::priv::on_3rdparty_install(const VendorProfile *vendor, bool i
|
||||||
load_pages();
|
load_pages();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ConfigWizard::priv::check_material_config(Technology technology)
|
bool ConfigWizard::priv::on_bnt_finish()
|
||||||
|
{
|
||||||
|
/* When Filaments or Sla Materials pages are activated,
|
||||||
|
* materials for this pages are automaticaly updated and presets are reloaded.
|
||||||
|
*
|
||||||
|
* But, if _Finish_ button was clicked without activation of those pages
|
||||||
|
* (for example, just some printers were added/deleted),
|
||||||
|
* than last changes wouldn't be updated for filaments/materials.
|
||||||
|
* SO, do that before close of Wizard
|
||||||
|
*/
|
||||||
|
update_materials(T_ANY);
|
||||||
|
if (any_fff_selected)
|
||||||
|
page_filaments->reload_presets();
|
||||||
|
if (any_sla_selected)
|
||||||
|
page_sla_materials->reload_presets();
|
||||||
|
|
||||||
|
// check, that there is selected at least one filament/material
|
||||||
|
return check_materials_in_config(T_ANY);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ConfigWizard::priv::check_materials_in_config(Technology technology)
|
||||||
{
|
{
|
||||||
const auto exist_preset = [this](const std::string& section, const Materials& materials)
|
const auto exist_preset = [this](const std::string& section, const Materials& materials)
|
||||||
{
|
{
|
||||||
|
@ -1899,16 +1919,15 @@ ConfigWizard::ConfigWizard(wxWindow *parent)
|
||||||
// check, that there is selected at least one filament/material
|
// check, that there is selected at least one filament/material
|
||||||
ConfigWizardPage* active_page = this->p->index->active_page();
|
ConfigWizardPage* active_page = this->p->index->active_page();
|
||||||
if ( (active_page == p->page_filaments || active_page == p->page_sla_materials)
|
if ( (active_page == p->page_filaments || active_page == p->page_sla_materials)
|
||||||
&& !p->check_material_config(dynamic_cast<PageMaterials*>(active_page)->materials->technology))
|
&& !p->check_materials_in_config(dynamic_cast<PageMaterials*>(active_page)->materials->technology))
|
||||||
return;
|
return;
|
||||||
this->p->index->go_next();
|
this->p->index->go_next();
|
||||||
});
|
});
|
||||||
|
|
||||||
p->btn_finish->Bind(wxEVT_BUTTON, [this](const wxCommandEvent &)
|
p->btn_finish->Bind(wxEVT_BUTTON, [this](const wxCommandEvent &)
|
||||||
{
|
{
|
||||||
if (!p->check_material_config(T_ANY))
|
if (p->on_bnt_finish())
|
||||||
return;
|
this->EndModal(wxID_OK);
|
||||||
this->EndModal(wxID_OK);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
p->btn_sel_all->Bind(wxEVT_BUTTON, [this](const wxCommandEvent &) {
|
p->btn_sel_all->Bind(wxEVT_BUTTON, [this](const wxCommandEvent &) {
|
||||||
|
|
|
@ -489,7 +489,8 @@ struct ConfigWizard::priv
|
||||||
void on_printer_pick(PagePrinters *page, const PrinterPickerEvent &evt);
|
void on_printer_pick(PagePrinters *page, const PrinterPickerEvent &evt);
|
||||||
void on_3rdparty_install(const VendorProfile *vendor, bool install);
|
void on_3rdparty_install(const VendorProfile *vendor, bool install);
|
||||||
|
|
||||||
bool check_material_config(Technology technology);
|
bool on_bnt_finish();
|
||||||
|
bool check_materials_in_config(Technology technology);
|
||||||
void apply_config(AppConfig *app_config, PresetBundle *preset_bundle, const PresetUpdater *updater);
|
void apply_config(AppConfig *app_config, PresetBundle *preset_bundle, const PresetUpdater *updater);
|
||||||
// #ys_FIXME_alise
|
// #ys_FIXME_alise
|
||||||
void update_presets_in_config(const std::string& section, const std::string& alias_key, bool add);
|
void update_presets_in_config(const std::string& section, const std::string& alias_key, bool add);
|
||||||
|
|
Loading…
Reference in a new issue