diff --git a/src/nanosvg/nanosvg.h b/src/nanosvg/nanosvg.h index 8c8b061cd..b9063213e 100644 --- a/src/nanosvg/nanosvg.h +++ b/src/nanosvg/nanosvg.h @@ -2897,6 +2897,8 @@ NSVGimage* nsvgParse(char* input, const char* units, float dpi) return ret; } +#include + NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi) { FILE* fp = NULL; @@ -2904,8 +2906,8 @@ NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi) char* data = NULL; NSVGimage* image = NULL; - fp = fopen(filename, "rb"); - if (!fp) goto error; + fp = boost::nowide::fopen(filename, "rb"); + if (!fp) goto error; fseek(fp, 0, SEEK_END); size = ftell(fp); fseek(fp, 0, SEEK_SET); diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index 52b930a60..d77405230 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -584,6 +584,11 @@ void Choice::BUILD() { void Choice::set_selection() { + /* To prevent earlier control updating under OSX set m_disable_change_event to true + * (under OSX wxBitmapComboBox send wxEVT_COMBOBOX even after SetSelection()) + */ + m_disable_change_event = true; + wxString text_value = wxString(""); wxBitmapComboBox* field = dynamic_cast(window); diff --git a/src/slic3r/GUI/GLTexture.cpp b/src/slic3r/GUI/GLTexture.cpp index ec41d7e93..cf218820b 100644 --- a/src/slic3r/GUI/GLTexture.cpp +++ b/src/slic3r/GUI/GLTexture.cpp @@ -110,7 +110,7 @@ bool GLTexture::load_from_svg_files_as_sprites_array(const std::vectorget_option("fill_density"); option.opt.label = L("Infill"); - option.opt.width = 7 * wxGetApp().em_unit(); + option.opt.width = 5 * wxGetApp().em_unit(); option.opt.sidetext = " "; line.append_option(option); diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index b8122c0d0..631050f29 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -927,31 +927,26 @@ void Tab::update_frequently_changed_parameters() auto og_freq_chng_params = wxGetApp().sidebar().og_freq_chng_params(supports_printer_technology(ptFFF)); if (!og_freq_chng_params) return; - if (m_type == Preset::TYPE_SLA_PRINT) - { - for (auto opt_key : { "supports_enable", "pad_enable" }) - { - boost::any val = og_freq_chng_params->get_config_value(*m_config, opt_key); - og_freq_chng_params->set_value(opt_key, val); - } - return; - } + const bool is_fff = supports_printer_technology(ptFFF); - // for m_type == Preset::TYPE_PRINT - boost::any value = og_freq_chng_params->get_config_value(*m_config, "fill_density"); - og_freq_chng_params->set_value("fill_density", value); + const std::string support = is_fff ? "support_material" : "supports_enable"; + const std::string buildplate_only = is_fff ? "support_material_buildplate_only" : "support_buildplate_only"; - wxString new_selection = !m_config->opt_bool("support_material") ? - _("None") : - m_config->opt_bool("support_material_buildplate_only") ? - _("Support on build plate only") : - _("Everywhere"); + wxString new_selection = !m_config->opt_bool(support) ? _("None") : + m_config->opt_bool(buildplate_only) ? _("Support on build plate only") : + _("Everywhere"); og_freq_chng_params->set_value("support", new_selection); - bool val = m_config->opt_float("brim_width") > 0.0 ? true : false; - og_freq_chng_params->set_value("brim", val); + const std::string updated_value_key = is_fff ? "fill_density" : "pad_enable"; - update_wiping_button_visibility(); + const boost::any val = og_freq_chng_params->get_config_value(*m_config, updated_value_key); + og_freq_chng_params->set_value(updated_value_key, val); + + if (is_fff) + { + og_freq_chng_params->set_value("brim", bool(m_config->opt_float("brim_width") > 0.0)); + update_wiping_button_visibility(); + } } void TabPrint::build()