mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-05 22:16:10 +08:00
remove duplicit codes
This commit is contained in:
parent
2a106c7e6d
commit
6807615c75
@ -499,76 +499,55 @@ wxMenu* MenuFactory::append_submenu_add_generic(wxMenu* menu, ModelVolumeType ty
|
|||||||
return sub_menu;
|
return sub_menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuFactory::append_menu_item_add_text(wxMenu* menu, ModelVolumeType type, bool is_submenu_item/* = true*/)
|
static void append_menu_itemm_add_(const wxString& name, GLGizmosManager::EType gizmo_type, wxMenu *menu, ModelVolumeType type, bool is_submenu_item) {
|
||||||
{
|
auto add_ = [type, gizmo_type](const wxCommandEvent & /*unnamed*/) {
|
||||||
auto add_text = [type](wxCommandEvent& evt) {
|
const GLCanvas3D *canvas = plater()->canvas3D();
|
||||||
GLCanvas3D* canvas = plater()->canvas3D();
|
const GLGizmosManager &mng = canvas->get_gizmos_manager();
|
||||||
GLGizmosManager& mng = canvas->get_gizmos_manager();
|
GLGizmoBase *gizmo_base = mng.get_gizmo(gizmo_type);
|
||||||
GLGizmoBase* gizmo = mng.get_gizmo(GLGizmosManager::Emboss);
|
|
||||||
GLGizmoEmboss* emboss = dynamic_cast<GLGizmoEmboss *>(gizmo);
|
|
||||||
assert(emboss != nullptr);
|
|
||||||
if (emboss == nullptr) return;
|
|
||||||
|
|
||||||
ModelVolumeType volume_type = type;
|
ModelVolumeType volume_type = type;
|
||||||
// no selected object means create new object
|
// no selected object means create new object
|
||||||
if (volume_type == ModelVolumeType::INVALID)
|
if (volume_type == ModelVolumeType::INVALID)
|
||||||
volume_type = ModelVolumeType::MODEL_PART;
|
volume_type = ModelVolumeType::MODEL_PART;
|
||||||
|
|
||||||
auto screen_position = canvas->get_popup_menu_position();
|
auto screen_position = canvas->get_popup_menu_position();
|
||||||
if (screen_position.has_value()) {
|
if (gizmo_type == GLGizmosManager::Emboss) {
|
||||||
emboss->create_volume(volume_type, *screen_position);
|
auto emboss = dynamic_cast<GLGizmoEmboss *>(gizmo_base);
|
||||||
} else {
|
assert(emboss != nullptr);
|
||||||
emboss->create_volume(volume_type);
|
if (emboss == nullptr) return;
|
||||||
}
|
if (screen_position.has_value()) {
|
||||||
|
emboss->create_volume(volume_type, *screen_position);
|
||||||
|
} else {
|
||||||
|
emboss->create_volume(volume_type);
|
||||||
|
}
|
||||||
|
} else if (gizmo_type == GLGizmosManager::Svg) {
|
||||||
|
auto svg = dynamic_cast<GLGizmoSVG *>(gizmo_base);
|
||||||
|
assert(svg != nullptr);
|
||||||
|
if (svg == nullptr) return;
|
||||||
|
if (screen_position.has_value()) {
|
||||||
|
svg->create_volume(volume_type, *screen_position);
|
||||||
|
} else {
|
||||||
|
svg->create_volume(volume_type);
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if ( type == ModelVolumeType::MODEL_PART
|
if (type == ModelVolumeType::MODEL_PART || type == ModelVolumeType::NEGATIVE_VOLUME || type == ModelVolumeType::PARAMETER_MODIFIER ||
|
||||||
|| type == ModelVolumeType::NEGATIVE_VOLUME
|
type == ModelVolumeType::INVALID // cannot use gizmo without selected object
|
||||||
|| type == ModelVolumeType::PARAMETER_MODIFIER
|
) {
|
||||||
|| type == ModelVolumeType::INVALID // cannot use gizmo without selected object
|
wxString item_name = wxString(is_submenu_item ? "" : _(ADD_VOLUME_MENU_ITEMS[int(type)].first) + ": ") + name;
|
||||||
) {
|
|
||||||
wxString item_name = is_submenu_item ? "" : _(ADD_VOLUME_MENU_ITEMS[int(type)].first) + ": ";
|
|
||||||
item_name += _L("Text");
|
|
||||||
menu->AppendSeparator();
|
menu->AppendSeparator();
|
||||||
const std::string icon_name = is_submenu_item ? "" : ADD_VOLUME_MENU_ITEMS[int(type)].second;
|
const std::string icon_name = is_submenu_item ? "" : ADD_VOLUME_MENU_ITEMS[int(type)].second;
|
||||||
append_menu_item(menu, wxID_ANY, item_name, "", add_text, icon_name, menu);
|
append_menu_item(menu, wxID_ANY, item_name, "", add_, icon_name, menu);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuFactory::append_menu_item_add_svg(wxMenu *menu, ModelVolumeType type, bool is_submenu_item /* = true*/)
|
void MenuFactory::append_menu_item_add_text(wxMenu* menu, ModelVolumeType type, bool is_submenu_item/* = true*/){
|
||||||
{
|
append_menu_itemm_add_(_L("Text"), GLGizmosManager::Emboss, menu, type, is_submenu_item);
|
||||||
auto open_svg = [type](wxCommandEvent &evt) {
|
}
|
||||||
GLCanvas3D* canvas = plater()->canvas3D();
|
|
||||||
GLGizmosManager& mng = canvas->get_gizmos_manager();
|
|
||||||
GLGizmoBase* gizmo = mng.get_gizmo(GLGizmosManager::Svg);
|
|
||||||
GLGizmoSVG* svg = dynamic_cast<GLGizmoSVG *>(gizmo);
|
|
||||||
assert(svg != nullptr);
|
|
||||||
if (svg == nullptr) return;
|
|
||||||
|
|
||||||
ModelVolumeType volume_type = type;
|
|
||||||
// no selected object means create new object
|
|
||||||
if (volume_type == ModelVolumeType::INVALID)
|
|
||||||
volume_type = ModelVolumeType::MODEL_PART;
|
|
||||||
|
|
||||||
auto screen_position = canvas->get_popup_menu_position();
|
void MenuFactory::append_menu_item_add_svg(wxMenu *menu, ModelVolumeType type, bool is_submenu_item /* = true*/){
|
||||||
if (screen_position.has_value()) {
|
append_menu_itemm_add_(_L("Svg"), GLGizmosManager::Svg, menu, type, is_submenu_item);
|
||||||
svg->create_volume(volume_type, *screen_position);
|
|
||||||
} else {
|
|
||||||
svg->create_volume(volume_type);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if ( type == ModelVolumeType::MODEL_PART
|
|
||||||
|| type == ModelVolumeType::NEGATIVE_VOLUME
|
|
||||||
|| type == ModelVolumeType::PARAMETER_MODIFIER
|
|
||||||
|| type == ModelVolumeType::INVALID // cannot use gizmo without selected object
|
|
||||||
) {
|
|
||||||
wxString item_name = is_submenu_item ? "" : _(ADD_VOLUME_MENU_ITEMS[int(type)].first) + ": ";
|
|
||||||
item_name += _L("SVG");
|
|
||||||
menu->AppendSeparator();
|
|
||||||
const std::string icon_name = is_submenu_item ? "" : ADD_VOLUME_MENU_ITEMS[int(type)].second;
|
|
||||||
append_menu_item(menu, wxID_ANY, item_name, "", open_svg, icon_name, menu);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuFactory::append_menu_items_add_volume(MenuType menu_type)
|
void MenuFactory::append_menu_items_add_volume(MenuType menu_type)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user