mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-05-19 17:18:09 +08:00
ENABLE_LAYOUT_NO_RESTART -> Added an extra sizer to Mainframe to avoid hiding the entire application when switching the layout type
This commit is contained in:
parent
c10f6a622d
commit
6a7efbbf96
@ -1080,10 +1080,10 @@ void GUI_App::add_config_menu(wxMenuBar *menu)
|
|||||||
}
|
}
|
||||||
#if ENABLE_LAYOUT_NO_RESTART
|
#if ENABLE_LAYOUT_NO_RESTART
|
||||||
if (app_layout_changed) {
|
if (app_layout_changed) {
|
||||||
mainframe->Hide();
|
mainframe->GetSizer()->Hide((size_t)0);
|
||||||
mainframe->update_layout();
|
mainframe->update_layout();
|
||||||
mainframe->select_tab(0);
|
mainframe->select_tab(0);
|
||||||
mainframe->Show();
|
mainframe->GetSizer()->Show((size_t)0);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (recreate_app)
|
if (recreate_app)
|
||||||
|
@ -141,7 +141,9 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_S
|
|||||||
#endif // !ENABLE_LAYOUT_NO_RESTART
|
#endif // !ENABLE_LAYOUT_NO_RESTART
|
||||||
|
|
||||||
// initialize layout
|
// initialize layout
|
||||||
auto sizer = new wxBoxSizer(wxVERTICAL);
|
m_main_sizer = new wxBoxSizer(wxVERTICAL);
|
||||||
|
wxSizer* sizer = new wxBoxSizer(wxVERTICAL);
|
||||||
|
sizer->Add(m_main_sizer, 1, wxEXPAND);
|
||||||
#if ENABLE_LAYOUT_NO_RESTART
|
#if ENABLE_LAYOUT_NO_RESTART
|
||||||
SetSizer(sizer);
|
SetSizer(sizer);
|
||||||
// initialize layout from config
|
// initialize layout from config
|
||||||
@ -293,7 +295,7 @@ void MainFrame::update_layout()
|
|||||||
if (m_layout == ESettingsLayout::Dlg)
|
if (m_layout == ESettingsLayout::Dlg)
|
||||||
rescale_dialog_after_dpi_change(*this, m_settings_dialog, ERescaleTarget::Mainframe);
|
rescale_dialog_after_dpi_change(*this, m_settings_dialog, ERescaleTarget::Mainframe);
|
||||||
|
|
||||||
clean_sizer(GetSizer());
|
clean_sizer(m_main_sizer);
|
||||||
clean_sizer(m_settings_dialog.GetSizer());
|
clean_sizer(m_settings_dialog.GetSizer());
|
||||||
|
|
||||||
if (m_settings_dialog.IsShown())
|
if (m_settings_dialog.IsShown())
|
||||||
@ -332,16 +334,16 @@ void MainFrame::update_layout()
|
|||||||
{
|
{
|
||||||
m_plater->Reparent(m_tabpanel);
|
m_plater->Reparent(m_tabpanel);
|
||||||
m_tabpanel->InsertPage(0, m_plater, _L("Plater"));
|
m_tabpanel->InsertPage(0, m_plater, _L("Plater"));
|
||||||
GetSizer()->Add(m_tabpanel, 1, wxEXPAND);
|
m_main_sizer->Add(m_tabpanel, 1, wxEXPAND);
|
||||||
m_plater->Show();
|
m_plater->Show();
|
||||||
m_tabpanel->Show();
|
m_tabpanel->Show();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ESettingsLayout::New:
|
case ESettingsLayout::New:
|
||||||
{
|
{
|
||||||
GetSizer()->Add(m_plater, 1, wxEXPAND);
|
m_main_sizer->Add(m_plater, 1, wxEXPAND);
|
||||||
m_tabpanel->Hide();
|
m_tabpanel->Hide();
|
||||||
GetSizer()->Add(m_tabpanel, 1, wxEXPAND);
|
m_main_sizer->Add(m_tabpanel, 1, wxEXPAND);
|
||||||
m_plater_page = new wxPanel(m_tabpanel);
|
m_plater_page = new wxPanel(m_tabpanel);
|
||||||
m_tabpanel->InsertPage(0, m_plater_page, _L("Plater")); // empty panel just for Plater tab */
|
m_tabpanel->InsertPage(0, m_plater_page, _L("Plater")); // empty panel just for Plater tab */
|
||||||
m_plater->Show();
|
m_plater->Show();
|
||||||
@ -349,7 +351,7 @@ void MainFrame::update_layout()
|
|||||||
}
|
}
|
||||||
case ESettingsLayout::Dlg:
|
case ESettingsLayout::Dlg:
|
||||||
{
|
{
|
||||||
GetSizer()->Add(m_plater, 1, wxEXPAND);
|
m_main_sizer->Add(m_plater, 1, wxEXPAND);
|
||||||
m_tabpanel->Reparent(&m_settings_dialog);
|
m_tabpanel->Reparent(&m_settings_dialog);
|
||||||
m_settings_dialog.GetSizer()->Add(m_tabpanel, 1, wxEXPAND);
|
m_settings_dialog.GetSizer()->Add(m_tabpanel, 1, wxEXPAND);
|
||||||
|
|
||||||
@ -1573,13 +1575,10 @@ void MainFrame::select_tab(size_t tab/* = size_t(-1)*/)
|
|||||||
}
|
}
|
||||||
#if ENABLE_LAYOUT_NO_RESTART
|
#if ENABLE_LAYOUT_NO_RESTART
|
||||||
else if (m_layout == ESettingsLayout::New) {
|
else if (m_layout == ESettingsLayout::New) {
|
||||||
|
m_main_sizer->Show(m_plater, tab == 0);
|
||||||
|
m_main_sizer->Show(m_tabpanel, tab != 0);
|
||||||
#else
|
#else
|
||||||
else if (m_layout == slNew) {
|
else if (m_layout == slNew) {
|
||||||
#endif // ENABLE_LAYOUT_NO_RESTART
|
|
||||||
#if ENABLE_LAYOUT_NO_RESTART
|
|
||||||
GetSizer()->Show(m_plater, tab == 0);
|
|
||||||
GetSizer()->Show(m_tabpanel, tab != 0);
|
|
||||||
#else
|
|
||||||
m_plater->Show(tab == 0);
|
m_plater->Show(tab == 0);
|
||||||
m_tabpanel->Show(tab != 0);
|
m_tabpanel->Show(tab != 0);
|
||||||
#endif // ENABLE_LAYOUT_NO_RESTART
|
#endif // ENABLE_LAYOUT_NO_RESTART
|
||||||
|
@ -76,6 +76,7 @@ class MainFrame : public DPIFrame
|
|||||||
wxMenuItem* m_menu_item_repeat { nullptr }; // doesn't used now
|
wxMenuItem* m_menu_item_repeat { nullptr }; // doesn't used now
|
||||||
#endif
|
#endif
|
||||||
wxMenuItem* m_menu_item_reslice_now { nullptr };
|
wxMenuItem* m_menu_item_reslice_now { nullptr };
|
||||||
|
wxSizer* m_main_sizer{ nullptr };
|
||||||
|
|
||||||
PrintHostQueueDialog *m_printhost_queue_dlg;
|
PrintHostQueueDialog *m_printhost_queue_dlg;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user