Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsupermerill <merill@free.fr>2022-07-18 17:03:10 +0300
committersupermerill <merill@free.fr>2022-07-18 17:03:10 +0300
commit8d8167d977afd7fbf83baaf9165359605872bf63 (patch)
tree2488e084cbe79ba8847c57413fbf8b5d02288525
parent6826f5163cafd008292b336b70e5027b7859a251 (diff)
Add a "tag" menu next to the "mode", so the "mode" can be changed in one click instead of two (recovering the old behavior).
-rw-r--r--src/slic3r/GUI/GUI_App.cpp23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp
index 68808e9ff..cbbbd2e04 100644
--- a/src/slic3r/GUI/GUI_App.cpp
+++ b/src/slic3r/GUI/GUI_App.cpp
@@ -2452,7 +2452,7 @@ void GUI_App::update_mode()
void GUI_App::add_config_menu(wxMenuBar *menu)
{
auto local_menu = new wxMenu();
- wxWindowID config_id_base = wxWindow::NewControlId(int(ConfigMenuCnt + Slic3r::GUI::get_app_config()->tags().size()));
+ wxWindowID config_id_base = wxWindow::NewControlId(int(ConfigMenuCnt + Slic3r::GUI::get_app_config()->tags().size()*2));
const auto config_wizard_name = _(ConfigWizard::name(true));
const auto config_wizard_tooltip = from_u8((boost::format(_utf8(L("Run %s"))) % config_wizard_name).str());
@@ -2476,6 +2476,7 @@ void GUI_App::add_config_menu(wxMenuBar *menu)
#endif
_L("Application preferences"));
wxMenu* mode_menu = nullptr;
+ wxMenu* tag_menu = nullptr;
if (is_editor()) {
local_menu->AppendSeparator();
mode_menu = new wxMenu();
@@ -2487,6 +2488,15 @@ void GUI_App::add_config_menu(wxMenuBar *menu)
}
local_menu->AppendSubMenu(mode_menu, _L("Mode"), wxString::Format(_L("%s View Mode"), SLIC3R_APP_NAME));
+
+ tag_menu = new wxMenu();
+ for (const AppConfig::Tag& tag : Slic3r::GUI::get_app_config()->tags()) {
+ tag_menu->AppendCheckItem(config_id_base + ConfigMenuCnt + config_menu_idx, _(tag.name), _(tag.description));
+ Bind(wxEVT_UPDATE_UI, [this, tag](wxUpdateUIEvent& evt) { evt.Check((get_mode() & tag.tag) != 0); }, config_id_base + ConfigMenuCnt + config_menu_idx);
+ config_menu_idx++;
+ }
+
+ local_menu->AppendSubMenu(tag_menu, _L("Tags"), wxString::Format(_L("%s View Mode"), SLIC3R_APP_NAME));
}
local_menu->AppendSeparator();
local_menu->Append(config_id_base + ConfigMenuLanguage, _L("&Language"));
@@ -2632,12 +2642,19 @@ void GUI_App::add_config_menu(wxMenuBar *menu)
using std::placeholders::_1;
if (mode_menu != nullptr) {
- auto modfn = [this](ConfigOptionMode mode, wxCommandEvent&) { if (get_mode() != mode) save_mode(get_mode() ^ mode); };
+ auto modefn = [this](ConfigOptionMode mode, wxCommandEvent&) { if (get_mode() != mode) save_mode(mode); };
int config_menu_idx = 0;
for (const AppConfig::Tag& tag : Slic3r::GUI::get_app_config()->tags()) {
- mode_menu->Bind(wxEVT_MENU, std::bind(modfn, tag.tag, _1), config_id_base + ConfigMenuCnt + config_menu_idx);
+ mode_menu->Bind(wxEVT_MENU, std::bind(modefn, tag.tag, _1), config_id_base + ConfigMenuCnt + config_menu_idx);
config_menu_idx++;
}
+ if (tag_menu != nullptr) {
+ auto tagfn = [this](ConfigOptionMode mode, wxCommandEvent&) { if (get_mode() != mode) save_mode(get_mode() ^ mode); };
+ for (const AppConfig::Tag& tag : Slic3r::GUI::get_app_config()->tags()) {
+ tag_menu->Bind(wxEVT_MENU, std::bind(tagfn, tag.tag, _1), config_id_base + ConfigMenuCnt + config_menu_idx);
+ config_menu_idx++;
+ }
+ }
//mode_menu->Bind(wxEVT_MENU, std::bind(modfn, comSimple, _1), config_id_base + ConfigMenuModeSimple);
//mode_menu->Bind(wxEVT_MENU, std::bind(modfn, comAdvanced, _1), config_id_base + ConfigMenuModeAdvanced);
//mode_menu->Bind(wxEVT_MENU, std::bind(modfn, comExpert, _1), config_id_base + ConfigMenuModeExpert);