Fixed update of the default menu after changing of the mode.

+ Added check for the output directory for the G-code extport.
This commit is contained in:
YuSanka 2021-07-26 14:40:19 +02:00
parent 4a9602b073
commit e79bcee739
8 changed files with 29 additions and 8 deletions

View file

@ -1780,7 +1780,7 @@ void GUI_App::update_mode()
for (auto tab : tabs_list)
tab->update_mode();
plater()->update_object_menu();
plater()->update_menus();
plater()->canvas3D()->update_gizmos_on_off_state();
}

View file

@ -953,6 +953,12 @@ void MenuFactory::init(wxWindow* parent)
create_instance_menu();
}
void MenuFactory::update()
{
update_default_menu();
update_object_menu();
}
wxMenu* MenuFactory::default_menu()
{
return &m_default_menu;
@ -1077,6 +1083,14 @@ void MenuFactory::update_object_menu()
append_menu_items_add_volume(&m_object_menu);
}
void MenuFactory::update_default_menu()
{
const auto menu_item_id = m_default_menu.FindItem(_("Add Shape"));
if (menu_item_id != wxNOT_FOUND)
m_default_menu.Destroy(menu_item_id);
create_default_menu();
}
void MenuFactory::msw_rescale()
{
for (MenuWithSeparators* menu : { &m_object_menu, &m_sla_object_menu, &m_part_menu, &m_default_menu })

View file

@ -40,7 +40,9 @@ public:
~MenuFactory() = default;
void init(wxWindow* parent);
void update();
void update_object_menu();
void update_default_menu();
void msw_rescale();
void sys_color_changed();

View file

@ -2653,11 +2653,10 @@ wxString Plater::priv::get_export_file(GUI::FileType file_type)
default: break;
}
std::string dir = (boost::filesystem::path(output_file).parent_path()).string();
bool use_def_out_dir = dir == sys_shapes_dir() || dir == custom_shapes_dir();
std::string out_dir = (boost::filesystem::path(output_file).parent_path()).string();
wxFileDialog dlg(q, dlg_title,
use_def_out_dir ? from_u8(wxGetApp().app_config->get_last_dir()) : from_path(output_file.parent_path()), from_path(output_file.filename()),
is_shapes_dir(out_dir) ? from_u8(wxGetApp().app_config->get_last_dir()) : from_path(output_file.parent_path()), from_path(output_file.filename()),
wildcard, wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
if (dlg.ShowModal() != wxID_OK)
@ -6269,7 +6268,7 @@ void Plater::mirror(Axis axis) { p->mirror(axis); }
void Plater::split_object() { p->split_object(); }
void Plater::split_volume() { p->split_volume(); }
void Plater::optimize_rotation() { p->m_ui_jobs.optimize_rotation();}
void Plater::update_object_menu() { p->menus.update_object_menu(); }
void Plater::update_menus() { p->menus.update(); }
void Plater::show_action_buttons(const bool ready_to_slice) const { p->show_action_buttons(ready_to_slice); }
void Plater::copy_selection_to_clipboard()

View file

@ -268,7 +268,7 @@ public:
std::vector<std::string> get_extruder_colors_from_plater_config(const GCodeProcessor::Result* const result = nullptr) const;
std::vector<std::string> get_colors_for_color_print(const GCodeProcessor::Result* const result = nullptr) const;
void update_object_menu();
void update_menus();
void show_action_buttons(const bool is_ready_to_slice) const;
wxString get_project_filename(const wxString& extension = wxEmptyString) const;