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

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/slic3r/GUI/GUI_App.cpp')
-rw-r--r--src/slic3r/GUI/GUI_App.cpp82
1 files changed, 24 insertions, 58 deletions
diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp
index cf14fc735..afd9ab0c3 100644
--- a/src/slic3r/GUI/GUI_App.cpp
+++ b/src/slic3r/GUI/GUI_App.cpp
@@ -1735,6 +1735,7 @@ void GUI_App::update_ui_from_settings()
m_force_colors_update = false;
mainframe->force_color_changed();
mainframe->diff_dialog.force_color_changed();
+ mainframe->preferences_dialog->force_color_changed();
mainframe->printhost_queue_dlg()->force_color_changed();
#ifdef _MSW_DARK_MODE
update_scrolls(mainframe);
@@ -2255,40 +2256,7 @@ void GUI_App::add_config_menu(wxMenuBar *menu)
break;
case ConfigMenuPreferences:
{
- bool app_layout_changed = false;
- {
- // the dialog needs to be destroyed before the call to recreate_GUI()
- // or sometimes the application crashes into wxDialogBase() destructor
- // so we put it into an inner scope
- PreferencesDialog dlg(mainframe);
- dlg.ShowModal();
- app_layout_changed = dlg.settings_layout_changed();
- if (dlg.seq_top_layer_only_changed())
- this->plater_->refresh_print();
-
- if (dlg.recreate_GUI()) {
- recreate_GUI(_L("Restart application") + dots);
- return;
- }
-#ifdef _WIN32
- if (is_editor()) {
- if (app_config->get("associate_3mf") == "1")
- associate_3mf_files();
- if (app_config->get("associate_stl") == "1")
- associate_stl_files();
- }
- else {
- if (app_config->get("associate_gcode") == "1")
- associate_gcode_files();
- }
-#endif // _WIN32
- }
- if (app_layout_changed) {
- // hide full main_sizer for mainFrame
- mainframe->GetSizer()->Show(false);
- mainframe->update_layout();
- mainframe->select_tab(size_t(0));
- }
+ open_preferences();
break;
}
case ConfigMenuLanguage:
@@ -2336,36 +2304,34 @@ void GUI_App::add_config_menu(wxMenuBar *menu)
menu->Append(local_menu, _L("&Configuration"));
}
-void GUI_App::open_preferences(size_t open_on_tab, const std::string& highlight_option)
+void GUI_App::open_preferences(const std::string& highlight_option /*= std::string()*/, const std::string& tab_name/*= std::string()*/)
{
- bool app_layout_changed = false;
- {
- // the dialog needs to be destroyed before the call to recreate_GUI()
- // or sometimes the application crashes into wxDialogBase() destructor
- // so we put it into an inner scope
- PreferencesDialog dlg(mainframe, open_on_tab, highlight_option);
- dlg.ShowModal();
- app_layout_changed = dlg.settings_layout_changed();
+ mainframe->preferences_dialog->show(highlight_option, tab_name);
+
+ if (mainframe->preferences_dialog->recreate_GUI())
+ recreate_GUI(_L("Restart application") + dots);
+
#if ENABLE_GCODE_LINES_ID_IN_H_SLIDER
- if (dlg.seq_top_layer_only_changed() || dlg.seq_seq_top_gcode_indices_changed())
+ if (dlg.seq_top_layer_only_changed() || dlg.seq_seq_top_gcode_indices_changed())
#else
- if (dlg.seq_top_layer_only_changed())
+ if (mainframe->preferences_dialog->seq_top_layer_only_changed())
#endif // ENABLE_GCODE_LINES_ID_IN_H_SLIDER
- this->plater_->refresh_print();
+ this->plater_->refresh_print();
+
#ifdef _WIN32
- if (is_editor()) {
- if (app_config->get("associate_3mf") == "1")
- associate_3mf_files();
- if (app_config->get("associate_stl") == "1")
- associate_stl_files();
- }
- else {
- if (app_config->get("associate_gcode") == "1")
- associate_gcode_files();
- }
-#endif // _WIN32
+ if (is_editor()) {
+ if (app_config->get("associate_3mf") == "1")
+ associate_3mf_files();
+ if (app_config->get("associate_stl") == "1")
+ associate_stl_files();
+ }
+ else {
+ if (app_config->get("associate_gcode") == "1")
+ associate_gcode_files();
}
- if (app_layout_changed) {
+#endif // _WIN32
+
+ if (mainframe->preferences_dialog->settings_layout_changed()) {
// hide full main_sizer for mainFrame
mainframe->GetSizer()->Show(false);
mainframe->update_layout();