mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-11 00:37:51 -06:00
Prototype of the hiding according to view mode
+ Added mode icon near option's label + Fixed segmentation fault on Linux
This commit is contained in:
parent
5d94e6adb8
commit
f47949504e
13 changed files with 242 additions and 53 deletions
|
@ -482,7 +482,8 @@ ConfigMenuIDs GUI_App::get_view_mode()
|
|||
return ConfigMenuModeSimple;
|
||||
|
||||
const auto mode = app_config->get("view_mode");
|
||||
return mode == "expert" ? ConfigMenuModeExpert : ConfigMenuModeSimple;
|
||||
return mode == "expert" ? ConfigMenuModeExpert :
|
||||
mode == "simple" ? ConfigMenuModeSimple : ConfigMenuModeMiddle;
|
||||
}
|
||||
|
||||
// Update view mode according to selected menu
|
||||
|
@ -500,6 +501,11 @@ void GUI_App::update_mode()
|
|||
|
||||
sidebar().Layout();
|
||||
mainframe->m_plater->Layout();
|
||||
|
||||
ConfigOptionMode opt_mode = mode == ConfigMenuModeSimple ? comSimple :
|
||||
mode == ConfigMenuModeExpert ? comExpert : comMiddle;
|
||||
for (auto tab : tabs_list)
|
||||
tab->update_visibility(opt_mode);
|
||||
}
|
||||
|
||||
void GUI_App::add_config_menu(wxMenuBar *menu)
|
||||
|
@ -519,6 +525,7 @@ void GUI_App::add_config_menu(wxMenuBar *menu)
|
|||
local_menu->AppendSeparator();
|
||||
auto mode_menu = new wxMenu();
|
||||
mode_menu->AppendRadioItem(config_id_base + ConfigMenuModeSimple, _(L("&Simple")), _(L("Simple View Mode")));
|
||||
mode_menu->AppendRadioItem(config_id_base + ConfigMenuModeMiddle, _(L("&Middle")), _(L("Middle View Mode")));
|
||||
mode_menu->AppendRadioItem(config_id_base + ConfigMenuModeExpert, _(L("&Expert")), _(L("Expert View Mode")));
|
||||
mode_menu->Check(config_id_base + get_view_mode(), true);
|
||||
local_menu->AppendSubMenu(mode_menu, _(L("&Mode")), _(L("Slic3r View Mode")));
|
||||
|
@ -589,8 +596,9 @@ void GUI_App::add_config_menu(wxMenuBar *menu)
|
|||
}
|
||||
});
|
||||
mode_menu->Bind(wxEVT_MENU, [this, config_id_base](wxEvent& event) {
|
||||
std::string mode = event.GetId() - config_id_base == ConfigMenuModeExpert ?
|
||||
"expert" : "simple";
|
||||
int id_mode = event.GetId() - config_id_base;
|
||||
std::string mode = id_mode == ConfigMenuModeExpert ? "expert" :
|
||||
id_mode == ConfigMenuModeSimple ? "simple" : "middle";
|
||||
app_config->set("view_mode", mode);
|
||||
app_config->save();
|
||||
update_mode();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue