mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-20 07:11:12 -06:00 
			
		
		
		
	NEW:add hide function in assemble_view menu
1.support hide funtion in assemble view 2.fix an issue that switch printable in assemble view will make model-in-assemble-view turn transparent instead of model-in-view3D 3.fix a crash: right-click on objectlist after entering assemble view Change-Id: Ia1a7ca492637eeaacd862ba015c440a55a83ca6e
This commit is contained in:
		
							parent
							
								
									674348c575
								
							
						
					
					
						commit
						5fc3694e08
					
				
					 9 changed files with 115 additions and 20 deletions
				
			
		|  | @ -432,6 +432,19 @@ std::vector<wxBitmap> MenuFactory::get_volume_bitmaps() | |||
|     return volume_bmps; | ||||
| } | ||||
| 
 | ||||
| void MenuFactory::append_menu_item_set_visible(wxMenu* menu) | ||||
| { | ||||
|     bool has_one_shown = false; | ||||
|     const Selection& selection = plater()->canvas3D()->get_selection(); | ||||
|     for (unsigned int i : selection.get_volume_idxs()) { | ||||
|         has_one_shown |= selection.get_volume(i)->visible; | ||||
|     } | ||||
| 
 | ||||
|     append_menu_item(menu, wxID_ANY, has_one_shown ?_L("Hide") : _L("Show"), "", | ||||
|         [has_one_shown](wxCommandEvent&) { plater()->set_selected_visible(!has_one_shown); }, "", nullptr, | ||||
|         []() { return true; }, m_parent); | ||||
| } | ||||
| 
 | ||||
| void MenuFactory::append_menu_item_delete(wxMenu* menu) | ||||
| { | ||||
| #ifdef __WINDOWS__ | ||||
|  | @ -735,6 +748,8 @@ void MenuFactory::append_menu_items_flush_options(wxMenu* menu) | |||
|     bool show_flush_option_menu = false; | ||||
|     ObjectList* object_list = obj_list(); | ||||
|     const Selection& selection = get_selection(); | ||||
|     if (selection.get_object_idx() < 0) | ||||
|         return; | ||||
|     if (wxGetApp().plater()->get_partplate_list().get_curr_plate()->contains(selection.get_bounding_box())) { | ||||
|         auto plate_extruders = wxGetApp().plater()->get_partplate_list().get_curr_plate()->get_extruders(); | ||||
|         for (auto extruder : plate_extruders) { | ||||
|  | @ -747,7 +762,7 @@ void MenuFactory::append_menu_items_flush_options(wxMenu* menu) | |||
| 
 | ||||
|     DynamicPrintConfig& global_config = wxGetApp().preset_bundle->prints.get_edited_preset().config; | ||||
|     ModelConfig& select_object_config = object_list->object(selection.get_object_idx())->config; | ||||
|      | ||||
| 
 | ||||
|     auto keys = select_object_config.keys(); | ||||
|     for (auto key : FREQ_SETTINGS_BUNDLE_FFF["Flush options"]) { | ||||
|         if (find(keys.begin(), keys.end(), key) == keys.end()) { | ||||
|  | @ -784,7 +799,7 @@ void MenuFactory::append_menu_items_flush_options(wxMenu* menu) | |||
|     { | ||||
|         i++; | ||||
|         wxMenuItem* item = node->GetData(); | ||||
|         if (item->GetItemLabelText() == "Edit in Parameter Table") | ||||
|         if (item->GetItemLabelText() == _L("Edit in Parameter Table")) | ||||
|             break; | ||||
|     } | ||||
|     menu->Insert(i, wxID_ANY, _L("Flush Options"), flush_options_menu); | ||||
|  | @ -1310,8 +1325,9 @@ wxMenu* MenuFactory::assemble_multi_selection_menu() | |||
|             return nullptr; | ||||
| 
 | ||||
|     wxMenu* menu = new MenuWithSeparators(); | ||||
|     append_menu_item_fix_through_netfabb(menu); | ||||
|     append_menu_item_simplify(menu); | ||||
|     append_menu_item_set_visible(menu); | ||||
|     //append_menu_item_fix_through_netfabb(menu);
 | ||||
|     //append_menu_item_simplify(menu);
 | ||||
|     append_menu_item_delete(menu); | ||||
|     menu->AppendSeparator(); | ||||
|     append_menu_item_change_extruder(menu); | ||||
|  | @ -1328,18 +1344,36 @@ wxMenu* MenuFactory::plate_menu() | |||
| 
 | ||||
| wxMenu* MenuFactory::assemble_object_menu() | ||||
| { | ||||
|     wxMenu* menu = new MenuWithSeparators(); | ||||
|     // Set Visible
 | ||||
|     append_menu_item_set_visible(menu); | ||||
|     // Delete
 | ||||
|     append_menu_item_delete(menu); | ||||
|     //// Object Repair
 | ||||
|     //append_menu_item_fix_through_netfabb(menu);
 | ||||
|     //// Object Simplify
 | ||||
|     //append_menu_item_simplify(menu);
 | ||||
|     menu->AppendSeparator(); | ||||
| 
 | ||||
|     // Set filament
 | ||||
|     append_menu_item_change_extruder(&m_assemble_object_menu); | ||||
|     // Enter per object parameters
 | ||||
|     append_menu_item_per_object_settings(&m_assemble_object_menu); | ||||
|     return &m_assemble_object_menu; | ||||
|     append_menu_item_change_extruder(menu); | ||||
|     //// Enter per object parameters
 | ||||
|     //append_menu_item_per_object_settings(menu);
 | ||||
|     return menu; | ||||
| } | ||||
| 
 | ||||
| wxMenu* MenuFactory::assemble_part_menu() | ||||
| { | ||||
|     append_menu_item_change_extruder(&m_assemble_part_menu); | ||||
|     append_menu_item_per_object_settings(&m_assemble_part_menu); | ||||
|     return &m_assemble_part_menu; | ||||
|     wxMenu* menu = new MenuWithSeparators(); | ||||
| 
 | ||||
|     append_menu_item_set_visible(menu); | ||||
|     append_menu_item_delete(menu); | ||||
|     //append_menu_item_simplify(menu);
 | ||||
|     menu->AppendSeparator(); | ||||
| 
 | ||||
|     append_menu_item_change_extruder(menu); | ||||
|     //append_menu_item_per_object_settings(menu);
 | ||||
|     return menu; | ||||
| } | ||||
| 
 | ||||
| void MenuFactory::append_menu_item_clone(wxMenu* menu) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 liz.li
						liz.li