mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 04:31:15 -06:00 
			
		
		
		
	Fixed recreate_GUI() after language change.
This commit is contained in:
		
							parent
							
								
									4c55f1ce9e
								
							
						
					
					
						commit
						c40b8aba24
					
				
					 4 changed files with 23 additions and 18 deletions
				
			
		|  | @ -137,7 +137,7 @@ bool GUI_App::OnInit() | |||
|     std::cerr << "Creating main frame..." << std::endl; | ||||
|     if (wxImage::FindHandler(wxBITMAP_TYPE_PNG) == nullptr) | ||||
|         wxImage::AddHandler(new wxPNGHandler()); | ||||
|     mainframe = new MainFrame(no_plater, false); | ||||
|     mainframe = new MainFrame(); | ||||
|     sidebar().obj_list()->init_objects(); // propagate model objects to object list
 | ||||
|     update_mode(); | ||||
|     SetTopWindow(mainframe); | ||||
|  | @ -277,8 +277,8 @@ void GUI_App::recreate_GUI() | |||
| { | ||||
|     std::cerr << "recreate_GUI" << std::endl; | ||||
| 
 | ||||
|     auto topwindow = GetTopWindow(); | ||||
|     mainframe = new MainFrame(no_plater,false); | ||||
|     MainFrame* topwindow = dynamic_cast<MainFrame*>(GetTopWindow()); | ||||
|     mainframe = new MainFrame(); | ||||
|     sidebar().obj_list()->init_objects(); // propagate model objects to object list
 | ||||
|     update_mode(); | ||||
| 
 | ||||
|  | @ -287,6 +287,20 @@ void GUI_App::recreate_GUI() | |||
|         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
 | ||||
|     // before the UI was up and running.
 | ||||
|     CallAfter([]() { | ||||
|  |  | |||
|  | @ -71,7 +71,6 @@ static wxString dots("…", wxConvUTF8); | |||
| 
 | ||||
| class GUI_App : public wxApp | ||||
| { | ||||
|     bool            no_plater{ false }; | ||||
|     bool            app_conf_exists{ false }; | ||||
| 
 | ||||
|     // Lock to guard the callback stack
 | ||||
|  |  | |||
|  | @ -28,10 +28,8 @@ | |||
| namespace Slic3r { | ||||
| namespace GUI { | ||||
| 
 | ||||
| MainFrame::MainFrame(const bool no_plater, const bool loaded) : | ||||
| MainFrame::MainFrame() : | ||||
| 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)) | ||||
| { | ||||
|     // 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); | ||||
|         wxGetApp().plater_ = m_plater; | ||||
|         m_tabpanel->AddPage(m_plater, _(L("Plater"))); | ||||
|     } | ||||
|     m_plater = new Slic3r::GUI::Plater(m_tabpanel, this); | ||||
|     wxGetApp().plater_ = m_plater; | ||||
|     m_tabpanel->AddPage(m_plater, _(L("Plater"))); | ||||
| 
 | ||||
|     // The following event is emited by Tab implementation on config value change.
 | ||||
|     Bind(EVT_TAB_VALUE_CHANGED, &MainFrame::on_value_changed, this); | ||||
|  |  | |||
|  | @ -42,10 +42,7 @@ struct PresetTab { | |||
| 
 | ||||
| class MainFrame : public wxFrame | ||||
| { | ||||
|     bool        m_no_plater; | ||||
|     bool        m_loaded; | ||||
|     int         m_lang_ch_event; | ||||
|     int         m_preferences_event; | ||||
|     bool        m_loaded {false}; | ||||
| 
 | ||||
|     wxString    m_qs_last_input_file = wxEmptyString; | ||||
|     wxString    m_qs_last_output_file = wxEmptyString; | ||||
|  | @ -71,8 +68,7 @@ class MainFrame : public wxFrame | |||
|     bool can_delete_all() const; | ||||
| 
 | ||||
| public: | ||||
|     MainFrame() {} | ||||
|     MainFrame(const bool no_plater, const bool loaded); | ||||
|     MainFrame(); | ||||
|     ~MainFrame() {} | ||||
| 
 | ||||
|     Plater*     plater() { return m_plater; } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 YuSanka
						YuSanka