mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-05-24 13:38:14 +08:00
Fixed recreate_GUI() after language change.
This commit is contained in:
parent
4c55f1ce9e
commit
c40b8aba24
@ -137,7 +137,7 @@ bool GUI_App::OnInit()
|
|||||||
std::cerr << "Creating main frame..." << std::endl;
|
std::cerr << "Creating main frame..." << std::endl;
|
||||||
if (wxImage::FindHandler(wxBITMAP_TYPE_PNG) == nullptr)
|
if (wxImage::FindHandler(wxBITMAP_TYPE_PNG) == nullptr)
|
||||||
wxImage::AddHandler(new wxPNGHandler());
|
wxImage::AddHandler(new wxPNGHandler());
|
||||||
mainframe = new MainFrame(no_plater, false);
|
mainframe = new MainFrame();
|
||||||
sidebar().obj_list()->init_objects(); // propagate model objects to object list
|
sidebar().obj_list()->init_objects(); // propagate model objects to object list
|
||||||
update_mode();
|
update_mode();
|
||||||
SetTopWindow(mainframe);
|
SetTopWindow(mainframe);
|
||||||
@ -277,8 +277,8 @@ void GUI_App::recreate_GUI()
|
|||||||
{
|
{
|
||||||
std::cerr << "recreate_GUI" << std::endl;
|
std::cerr << "recreate_GUI" << std::endl;
|
||||||
|
|
||||||
auto topwindow = GetTopWindow();
|
MainFrame* topwindow = dynamic_cast<MainFrame*>(GetTopWindow());
|
||||||
mainframe = new MainFrame(no_plater,false);
|
mainframe = new MainFrame();
|
||||||
sidebar().obj_list()->init_objects(); // propagate model objects to object list
|
sidebar().obj_list()->init_objects(); // propagate model objects to object list
|
||||||
update_mode();
|
update_mode();
|
||||||
|
|
||||||
@ -287,6 +287,20 @@ void GUI_App::recreate_GUI()
|
|||||||
topwindow->Destroy();
|
topwindow->Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_printhost_job_queue.reset(new PrintHostJobQueue(mainframe->printhost_queue_dlg()));
|
||||||
|
|
||||||
|
CallAfter([this]() {
|
||||||
|
// temporary workaround for the correct behavior of the Scrolled sidebar panel
|
||||||
|
auto& panel = sidebar();
|
||||||
|
if (panel.obj_list()->GetMinHeight() > 200) {
|
||||||
|
wxWindowUpdateLocker noUpdates_sidebar(&panel);
|
||||||
|
panel.obj_list()->SetMinSize(wxSize(-1, 200));
|
||||||
|
panel.Layout();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
mainframe->Show(true);
|
||||||
|
|
||||||
// On OSX the UI was not initialized correctly if the wizard was called
|
// On OSX the UI was not initialized correctly if the wizard was called
|
||||||
// before the UI was up and running.
|
// before the UI was up and running.
|
||||||
CallAfter([]() {
|
CallAfter([]() {
|
||||||
|
@ -71,7 +71,6 @@ static wxString dots("…", wxConvUTF8);
|
|||||||
|
|
||||||
class GUI_App : public wxApp
|
class GUI_App : public wxApp
|
||||||
{
|
{
|
||||||
bool no_plater{ false };
|
|
||||||
bool app_conf_exists{ false };
|
bool app_conf_exists{ false };
|
||||||
|
|
||||||
// Lock to guard the callback stack
|
// Lock to guard the callback stack
|
||||||
|
@ -28,10 +28,8 @@
|
|||||||
namespace Slic3r {
|
namespace Slic3r {
|
||||||
namespace GUI {
|
namespace GUI {
|
||||||
|
|
||||||
MainFrame::MainFrame(const bool no_plater, const bool loaded) :
|
MainFrame::MainFrame() :
|
||||||
wxFrame(NULL, wxID_ANY, SLIC3R_BUILD, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE),
|
wxFrame(NULL, wxID_ANY, SLIC3R_BUILD, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE),
|
||||||
m_no_plater(no_plater),
|
|
||||||
m_loaded(loaded),
|
|
||||||
m_printhost_queue_dlg(new PrintHostQueueDialog(this))
|
m_printhost_queue_dlg(new PrintHostQueueDialog(this))
|
||||||
{
|
{
|
||||||
// Load the icon either from the exe, or from the ico file.
|
// Load the icon either from the exe, or from the ico file.
|
||||||
@ -125,11 +123,9 @@ void MainFrame::init_tabpanel()
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!m_no_plater) {
|
m_plater = new Slic3r::GUI::Plater(m_tabpanel, this);
|
||||||
m_plater = new Slic3r::GUI::Plater(m_tabpanel, this);
|
wxGetApp().plater_ = m_plater;
|
||||||
wxGetApp().plater_ = m_plater;
|
m_tabpanel->AddPage(m_plater, _(L("Plater")));
|
||||||
m_tabpanel->AddPage(m_plater, _(L("Plater")));
|
|
||||||
}
|
|
||||||
|
|
||||||
// The following event is emited by Tab implementation on config value change.
|
// The following event is emited by Tab implementation on config value change.
|
||||||
Bind(EVT_TAB_VALUE_CHANGED, &MainFrame::on_value_changed, this);
|
Bind(EVT_TAB_VALUE_CHANGED, &MainFrame::on_value_changed, this);
|
||||||
|
@ -42,10 +42,7 @@ struct PresetTab {
|
|||||||
|
|
||||||
class MainFrame : public wxFrame
|
class MainFrame : public wxFrame
|
||||||
{
|
{
|
||||||
bool m_no_plater;
|
bool m_loaded {false};
|
||||||
bool m_loaded;
|
|
||||||
int m_lang_ch_event;
|
|
||||||
int m_preferences_event;
|
|
||||||
|
|
||||||
wxString m_qs_last_input_file = wxEmptyString;
|
wxString m_qs_last_input_file = wxEmptyString;
|
||||||
wxString m_qs_last_output_file = wxEmptyString;
|
wxString m_qs_last_output_file = wxEmptyString;
|
||||||
@ -71,8 +68,7 @@ class MainFrame : public wxFrame
|
|||||||
bool can_delete_all() const;
|
bool can_delete_all() const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MainFrame() {}
|
MainFrame();
|
||||||
MainFrame(const bool no_plater, const bool loaded);
|
|
||||||
~MainFrame() {}
|
~MainFrame() {}
|
||||||
|
|
||||||
Plater* plater() { return m_plater; }
|
Plater* plater() { return m_plater; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user