mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 04:31:15 -06:00 
			
		
		
		
	Improvement of extruder selection for the object/part according to the actually extruders count
This commit is contained in:
		
							parent
							
								
									f0095d19be
								
							
						
					
					
						commit
						3e549c153d
					
				
					 3 changed files with 27 additions and 13 deletions
				
			
		|  | @ -8,7 +8,6 @@ | |||
| #include "../../libslic3r/Utils.hpp" | ||||
| 
 | ||||
| #include <wx/msgdlg.h> | ||||
| #include <wx/frame.h> | ||||
| #include <boost/filesystem.hpp> | ||||
| #include <boost/algorithm/string.hpp> | ||||
| #include "Geometry.hpp" | ||||
|  | @ -210,6 +209,18 @@ wxPoint get_mouse_position_in_control() { | |||
|                    pt.y - win->GetScreenPosition().y); | ||||
| } | ||||
| 
 | ||||
| wxDataViewColumn* object_ctrl_create_extruder_column(int extruders_count) | ||||
| { | ||||
|     wxArrayString choices; | ||||
|     choices.Add("default"); | ||||
|     for (int i = 1; i <= extruders_count; ++i) | ||||
|         choices.Add(wxString::Format("%d", i)); | ||||
|     wxDataViewChoiceRenderer *c = | ||||
|         new wxDataViewChoiceRenderer(choices, wxDATAVIEW_CELL_EDITABLE, wxALIGN_CENTER_HORIZONTAL); | ||||
|     wxDataViewColumn* column = new wxDataViewColumn(_(L("Extruder")), c, 3, 60, wxALIGN_CENTER_HORIZONTAL, wxDATAVIEW_COL_RESIZABLE); | ||||
|     return column; | ||||
| } | ||||
| 
 | ||||
| void create_objects_ctrl(wxWindow* win, wxBoxSizer*& objects_sz) | ||||
| { | ||||
| 	m_objects_ctrl = new wxDataViewCtrl(win, wxID_ANY, wxDefaultPosition, wxDefaultSize); | ||||
|  | @ -238,17 +249,7 @@ void create_objects_ctrl(wxWindow* win, wxBoxSizer*& objects_sz) | |||
| 		wxALIGN_CENTER_HORIZONTAL, wxDATAVIEW_COL_RESIZABLE); | ||||
| 
 | ||||
| 	// column 3 of the view control:
 | ||||
| 	wxArrayString choices; | ||||
| 	choices.Add("default"); | ||||
| 	choices.Add("1"); | ||||
| 	choices.Add("2"); | ||||
| 	choices.Add("3"); | ||||
| 	choices.Add("4"); | ||||
| 	wxDataViewChoiceRenderer *c = | ||||
| 		new wxDataViewChoiceRenderer(choices, wxDATAVIEW_CELL_EDITABLE, wxALIGN_CENTER_HORIZONTAL); | ||||
| 	wxDataViewColumn *column3 = | ||||
| 		new wxDataViewColumn(_(L("Extruder")), c, 3, 60, wxALIGN_CENTER_HORIZONTAL, wxDATAVIEW_COL_RESIZABLE); | ||||
| 	m_objects_ctrl->AppendColumn(column3); | ||||
|     m_objects_ctrl->AppendColumn(object_ctrl_create_extruder_column(4)); | ||||
| 
 | ||||
| 	// column 4 of the view control:
 | ||||
| 	m_objects_ctrl->AppendBitmapColumn(" ", 4, wxDATAVIEW_CELL_INERT, 25, | ||||
|  | @ -1608,5 +1609,15 @@ void on_drop(wxDataViewEvent &event) | |||
|     g_prevent_list_events = false; | ||||
| } | ||||
| 
 | ||||
| void update_objects_list_extruder_column(const int extruders_count) | ||||
| { | ||||
|     // delete old 3rd column
 | ||||
|     m_objects_ctrl->DeleteColumn(m_objects_ctrl->GetColumnAt(3)); | ||||
|     // insert new created 3rd column
 | ||||
|     m_objects_ctrl->InsertColumn(3, object_ctrl_create_extruder_column(extruders_count)); | ||||
|     // set show/hide for this column 
 | ||||
|     set_extruder_column_hidden(extruders_count <= 1); | ||||
| } | ||||
| 
 | ||||
| } //namespace GUI
 | ||||
| } //namespace Slic3r 
 | ||||
|  | @ -118,6 +118,9 @@ void on_begin_drag(wxDataViewEvent &event); | |||
| void on_drop_possible(wxDataViewEvent &event); | ||||
| void on_drop(wxDataViewEvent &event); | ||||
| 
 | ||||
| // update extruder column for objects_ctrl according to extruders count
 | ||||
| void update_objects_list_extruder_column(const int extruders_count); | ||||
| 
 | ||||
| } //namespace GUI
 | ||||
| } //namespace Slic3r 
 | ||||
| #endif  //slic3r_GUI_ObjectParts_hpp_
 | ||||
|  | @ -1698,6 +1698,7 @@ void TabPrinter::extruders_count_changed(size_t extruders_count){ | |||
| 	build_extruder_pages(); | ||||
| 	reload_config(); | ||||
| 	on_value_change("extruders_count", extruders_count); | ||||
|     update_objects_list_extruder_column(extruders_count); | ||||
| } | ||||
| 
 | ||||
| void TabPrinter::append_option_line(ConfigOptionsGroupShp optgroup, const std::string opt_key) | ||||
|  | @ -2010,7 +2011,6 @@ void Tab::load_current_preset() | |||
| 			const Preset* parent_preset = m_presets->get_selected_preset_parent(); | ||||
| 			static_cast<TabPrinter*>(this)->m_sys_extruders_count = parent_preset == nullptr ? 0 : | ||||
| 				static_cast<const ConfigOptionFloats*>(parent_preset->config.option("nozzle_diameter"))->values.size(); | ||||
| 			set_extruder_column_hidden(static_cast<TabPrinter*>(this)->m_sys_extruders_count <= 1); | ||||
| 		} | ||||
| 		m_opt_status_value = (m_presets->get_selected_preset_parent() ? osSystemValue : 0) | osInitValue; | ||||
| 		init_options_list(); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 YuSanka
						YuSanka