From 86a7de455762e956afcd2141b46578e79eca26a2 Mon Sep 17 00:00:00 2001 From: "liz.li" Date: Mon, 10 Jul 2023 09:48:51 +0800 Subject: [PATCH] FIX: flush menu item crash Change-Id: I632da563eb6be000c7eb9238fd25d3fa07ecce0e --- src/slic3r/GUI/GUI_Factories.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/GUI_Factories.cpp b/src/slic3r/GUI/GUI_Factories.cpp index 7e2710336..93771d525 100644 --- a/src/slic3r/GUI/GUI_Factories.cpp +++ b/src/slic3r/GUI/GUI_Factories.cpp @@ -799,8 +799,11 @@ void MenuFactory::append_menu_items_flush_options(wxMenu* menu) wxMenu* flush_options_menu = new wxMenu(); append_menu_check_item(flush_options_menu, wxID_ANY, _L("Flush into objects' infill"), "", - [&select_object_config](wxCommandEvent&) { + [&select_object_config, &global_config](wxCommandEvent&) { const ConfigOption* option = select_object_config.option(FREQ_SETTINGS_BUNDLE_FFF["Flush options"][0]); + if (!option) { + option = global_config.option(FREQ_SETTINGS_BUNDLE_FFF["Flush options"][0]); + } select_object_config.set_key_value(FREQ_SETTINGS_BUNDLE_FFF["Flush options"][0], new ConfigOptionBool(!option->getBool())); wxGetApp().obj_settings()->UpdateAndShow(true); }, menu, []() {return true; }, @@ -813,8 +816,11 @@ void MenuFactory::append_menu_items_flush_options(wxMenu* menu) }, m_parent); append_menu_check_item(flush_options_menu, wxID_ANY, _L("Flush into this object"), "", - [&select_object_config](wxCommandEvent&) { + [&select_object_config, &global_config](wxCommandEvent&) { const ConfigOption* option = select_object_config.option(FREQ_SETTINGS_BUNDLE_FFF["Flush options"][1]); + if (!option) { + option = global_config.option(FREQ_SETTINGS_BUNDLE_FFF["Flush options"][1]); + } select_object_config.set_key_value(FREQ_SETTINGS_BUNDLE_FFF["Flush options"][1], new ConfigOptionBool(!option->getBool())); wxGetApp().obj_settings()->UpdateAndShow(true); }, menu, []() {return true; }, @@ -827,8 +833,11 @@ void MenuFactory::append_menu_items_flush_options(wxMenu* menu) }, m_parent); append_menu_check_item(flush_options_menu, wxID_ANY, _L("Flush into objects' support"), "", - [&select_object_config](wxCommandEvent&) { + [&select_object_config, &global_config](wxCommandEvent&) { const ConfigOption* option = select_object_config.option(FREQ_SETTINGS_BUNDLE_FFF["Flush options"][2]); + if (!option) { + option = global_config.option(FREQ_SETTINGS_BUNDLE_FFF["Flush options"][2]); + } select_object_config.set_key_value(FREQ_SETTINGS_BUNDLE_FFF["Flush options"][2], new ConfigOptionBool(!option->getBool())); wxGetApp().obj_settings()->UpdateAndShow(true); }, menu, []() {return true; },