mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-07 23:17:35 -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