Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer
Browse files Browse the repository at this point in the history
  • Loading branch information
enricoturri1966 committed May 7, 2020
2 parents dcb603b + 3c99611 commit 2daa12d
Show file tree
Hide file tree
Showing 7 changed files with 37 additions and 26 deletions.
6 changes: 4 additions & 2 deletions deps/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,10 @@ include(MPFR/MPFR.cmake)
include(CGAL/CGAL.cmake)
include(wxWidgets/wxWidgets.cmake)

add_dependencies(dep_blosc ${ZLIB_PKG})
add_dependencies(dep_openexr ${ZLIB_PKG})
if (ZLIB_PKG)
add_dependencies(dep_blosc ${ZLIB_PKG})
add_dependencies(dep_openexr ${ZLIB_PKG})
endif ()

if (MSVC)

Expand Down
18 changes: 13 additions & 5 deletions src/slic3r/GUI/GUI_App.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -591,11 +591,10 @@ float GUI_App::toolbar_icon_scale(const bool is_limited/* = false*/) const
return 0.01f * int_val * icon_sc;
}

void GUI_App::recreate_GUI()
void GUI_App::recreate_GUI(const wxString& msg_name)
{
mainframe->shutdown();

const auto msg_name = _(L("Changing of an application language")) + dots;
wxProgressDialog dlg(msg_name, msg_name);
dlg.Pulse();
dlg.Update(10, _(L("Recreating")) + dots);
Expand Down Expand Up @@ -720,7 +719,7 @@ void GUI_App::import_model(wxWindow *parent, wxArrayString& input_files) const
bool GUI_App::switch_language()
{
if (select_language()) {
recreate_GUI();
recreate_GUI(_L("Changing of an application language") + dots);
return true;
} else {
return false;
Expand Down Expand Up @@ -1024,8 +1023,17 @@ void GUI_App::add_config_menu(wxMenuBar *menu)
break;
case ConfigMenuPreferences:
{
PreferencesDialog dlg(mainframe);
dlg.ShowModal();
bool recreate_app = 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();
recreate_app = dlg.settings_layout_changed();
}
if (recreate_app)
recreate_GUI(_L("Changing of the settings layout") + dots);
break;
}
case ConfigMenuLanguage:
Expand Down
2 changes: 1 addition & 1 deletion src/slic3r/GUI/GUI_App.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ class GUI_App : public wxApp
int em_unit() const { return m_em_unit; }
float toolbar_icon_scale(const bool is_limited = false) const;

void recreate_GUI();
void recreate_GUI(const wxString& message);
void system_info();
void keyboard_shortcuts();
void load_project(wxWindow *parent, wxString& input_file) const;
Expand Down
5 changes: 2 additions & 3 deletions src/slic3r/GUI/MainFrame.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1267,9 +1267,8 @@ void MainFrame::select_tab(size_t tab/* = size_t(-1)*/)
}
// Show/Activate Settings Dialog
if (m_settings_dialog->IsShown())
m_settings_dialog->SetFocus();
else
m_settings_dialog->Show();
m_settings_dialog->Hide();
m_settings_dialog->Show();
}
else if (m_layout == slNew) {
m_plater->Show(tab == 0);
Expand Down
2 changes: 1 addition & 1 deletion src/slic3r/GUI/OptionsGroup.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ class OptionsGroup {
if (staticbox) {
stb = new wxStaticBox(_parent, wxID_ANY, _(title));
if (!wxOSX) stb->SetBackgroundStyle(wxBG_STYLE_PAINT);
stb->SetFont(wxGetApp().bold_font());
stb->SetFont(wxOSX ? wxGetApp().normal_font() : wxGetApp().bold_font());
} else
stb = nullptr;
sizer = (staticbox ? new wxStaticBoxSizer(stb, wxVERTICAL) : new wxBoxSizer(wxVERTICAL));
Expand Down
27 changes: 13 additions & 14 deletions src/slic3r/GUI/Preferences.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -117,13 +117,6 @@ void PreferencesDialog::build()
m_optgroup_general->append_single_option_line(option);
#endif

def.label = L("Show the button for the collapse sidebar");
def.type = coBool;
def.tooltip = L("If enabled, the button for the collapse sidebar will be appeared in top right corner of the 3D Scene");
def.set_default_value(new ConfigOptionBool{ app_config->get("show_collapse_button") == "1" });
option = Option(def, "show_collapse_button");
m_optgroup_general->append_single_option_line(option);

m_optgroup_camera = std::make_shared<ConfigOptionsGroup>(this, _(L("Camera")));
m_optgroup_camera->label_width = 40;
m_optgroup_camera->m_on_change = [this](t_config_option_key opt_key, boost::any value) {
Expand Down Expand Up @@ -154,6 +147,13 @@ void PreferencesDialog::build()
}
};

def.label = L("Show the button for the collapse sidebar");
def.type = coBool;
def.tooltip = L("If enabled, the button for the collapse sidebar will be appeared in top right corner of the 3D Scene");
def.set_default_value(new ConfigOptionBool{ app_config->get("show_collapse_button") == "1" });
option = Option(def, "show_collapse_button");
m_optgroup_gui->append_single_option_line(option);

def.label = L("Use custom size for toolbar icons");
def.type = coBool;
def.tooltip = L("If enabled, you can change size of toolbar icons manually.");
Expand Down Expand Up @@ -190,11 +190,11 @@ void PreferencesDialog::accept()

auto app_config = get_app_config();

bool settings_layout_changed = m_values.find("old_settings_layout_mode") != m_values.end() ||
m_values.find("new_settings_layout_mode") != m_values.end() ||
m_values.find("dlg_settings_layout_mode") != m_values.end();
m_settings_layout_changed = m_values.find("old_settings_layout_mode") != m_values.end() ||
m_values.find("new_settings_layout_mode") != m_values.end() ||
m_values.find("dlg_settings_layout_mode") != m_values.end();

if (settings_layout_changed) {
if (m_settings_layout_changed) {
// 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
Expand Down Expand Up @@ -222,9 +222,8 @@ void PreferencesDialog::accept()
app_config->save();
EndModal(wxID_OK);

if (settings_layout_changed)
// recreate application, if settings layout was changed
wxGetApp().recreate_GUI();
if (m_settings_layout_changed)
;// application will be recreated after Preference dialog will be destroyed
else
// Nothify the UI to update itself from the ini file.
wxGetApp().update_ui_from_settings();
Expand Down
3 changes: 3 additions & 0 deletions src/slic3r/GUI/Preferences.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,13 @@ class PreferencesDialog : public DPIDialog
wxSizer* m_icon_size_sizer;
wxRadioBox* m_layout_mode_box;
bool isOSX {false};
bool m_settings_layout_changed {false};
public:
PreferencesDialog(wxWindow* parent);
~PreferencesDialog() {}

bool settings_layout_changed() { return m_settings_layout_changed; }

void build();
void accept();

Expand Down

0 comments on commit 2daa12d

Please sign in to comment.