mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-06-04 11:14:17 +08:00
Merge branch 'master' of https://github.com/prusa3d/Slic3r into et_copy_and_paste
This commit is contained in:
commit
81abb58d49
@ -2264,6 +2264,22 @@ void GLCanvas3D::on_char(wxKeyEvent& evt)
|
|||||||
#endif /* __APPLE__ */
|
#endif /* __APPLE__ */
|
||||||
post_event(SimpleEvent(EVT_GLCANVAS_SELECT_ALL));
|
post_event(SimpleEvent(EVT_GLCANVAS_SELECT_ALL));
|
||||||
break;
|
break;
|
||||||
|
#ifdef __APPLE__
|
||||||
|
case 'c':
|
||||||
|
case 'C':
|
||||||
|
#else /* __APPLE__ */
|
||||||
|
case WXK_CONTROL_C:
|
||||||
|
#endif /* __APPLE__ */
|
||||||
|
post_event(SimpleEvent(EVT_GLTOOLBAR_COPY));
|
||||||
|
break;
|
||||||
|
#ifdef __APPLE__
|
||||||
|
case 'v':
|
||||||
|
case 'V':
|
||||||
|
#else /* __APPLE__ */
|
||||||
|
case WXK_CONTROL_V:
|
||||||
|
#endif /* __APPLE__ */
|
||||||
|
post_event(SimpleEvent(EVT_GLTOOLBAR_PASTE));
|
||||||
|
break;
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
case WXK_BACK: // the low cost Apple solutions are not equipped with a Delete key, use Backspace instead.
|
case WXK_BACK: // the low cost Apple solutions are not equipped with a Delete key, use Backspace instead.
|
||||||
#else /* __APPLE__ */
|
#else /* __APPLE__ */
|
||||||
|
@ -589,6 +589,10 @@ void ObjectList::key_event(wxKeyEvent& event)
|
|||||||
}
|
}
|
||||||
else if (wxGetKeyState(wxKeyCode('A')) && wxGetKeyState(WXK_CONTROL/*WXK_SHIFT*/))
|
else if (wxGetKeyState(wxKeyCode('A')) && wxGetKeyState(WXK_CONTROL/*WXK_SHIFT*/))
|
||||||
select_item_all_children();
|
select_item_all_children();
|
||||||
|
else if (wxGetKeyState(wxKeyCode('C')) && wxGetKeyState(WXK_CONTROL))
|
||||||
|
wxPostEvent((wxEvtHandler*)wxGetApp().plater()->canvas3D()->get_wxglcanvas(), SimpleEvent(EVT_GLTOOLBAR_COPY));
|
||||||
|
else if (wxGetKeyState(wxKeyCode('V')) && wxGetKeyState(WXK_CONTROL))
|
||||||
|
wxPostEvent((wxEvtHandler*)wxGetApp().plater()->canvas3D()->get_wxglcanvas(), SimpleEvent(EVT_GLTOOLBAR_PASTE));
|
||||||
else
|
else
|
||||||
event.Skip();
|
event.Skip();
|
||||||
}
|
}
|
||||||
|
@ -131,6 +131,8 @@ void KBShortcutsDialog::fill_shortcuts()
|
|||||||
plater_shortcuts.push_back(Shortcut(ctrl+"A", L("Select All objects")));
|
plater_shortcuts.push_back(Shortcut(ctrl+"A", L("Select All objects")));
|
||||||
plater_shortcuts.push_back(Shortcut("Del", L("Delete selected")));
|
plater_shortcuts.push_back(Shortcut("Del", L("Delete selected")));
|
||||||
plater_shortcuts.push_back(Shortcut(ctrl+"Del", L("Delete All")));
|
plater_shortcuts.push_back(Shortcut(ctrl+"Del", L("Delete All")));
|
||||||
|
plater_shortcuts.push_back(Shortcut(ctrl+"C", L("Copy to clipboard")));
|
||||||
|
plater_shortcuts.push_back(Shortcut(ctrl+"V", L("Paste from clipboard")));
|
||||||
plater_shortcuts.push_back(Shortcut("M", L("Gizmo move")));
|
plater_shortcuts.push_back(Shortcut("M", L("Gizmo move")));
|
||||||
plater_shortcuts.push_back(Shortcut("S", L("Gizmo scale")));
|
plater_shortcuts.push_back(Shortcut("S", L("Gizmo scale")));
|
||||||
plater_shortcuts.push_back(Shortcut("R", L("Gizmo rotate")));
|
plater_shortcuts.push_back(Shortcut("R", L("Gizmo rotate")));
|
||||||
@ -172,8 +174,8 @@ void KBShortcutsDialog::fill_shortcuts()
|
|||||||
Shortcuts layers_slider_shortcuts;
|
Shortcuts layers_slider_shortcuts;
|
||||||
layers_slider_shortcuts.reserve(6);
|
layers_slider_shortcuts.reserve(6);
|
||||||
|
|
||||||
layers_slider_shortcuts.push_back(Shortcut(L("Arrow Up"), L("Move current slider thump Up")));
|
layers_slider_shortcuts.push_back(Shortcut(L("Arrow Up"), L("Move current slider thumb Up")));
|
||||||
layers_slider_shortcuts.push_back(Shortcut(L("Arrow Down"), L("Move current slider thump Down")));
|
layers_slider_shortcuts.push_back(Shortcut(L("Arrow Down"), L("Move current slider thumb Down")));
|
||||||
layers_slider_shortcuts.push_back(Shortcut(L("Arrow Left"), L("Set upper thumb to current slider thumb")));
|
layers_slider_shortcuts.push_back(Shortcut(L("Arrow Left"), L("Set upper thumb to current slider thumb")));
|
||||||
layers_slider_shortcuts.push_back(Shortcut(L("Arrow Right"),L("Set lower thumb to current slider thumb")));
|
layers_slider_shortcuts.push_back(Shortcut(L("Arrow Right"),L("Set lower thumb to current slider thumb")));
|
||||||
layers_slider_shortcuts.push_back(Shortcut("+", L("Add color change marker for current layer")));
|
layers_slider_shortcuts.push_back(Shortcut("+", L("Add color change marker for current layer")));
|
||||||
|
@ -381,9 +381,9 @@ void MainFrame::init_menubar()
|
|||||||
|
|
||||||
editMenu->AppendSeparator();
|
editMenu->AppendSeparator();
|
||||||
|
|
||||||
wxMenuItem* item_copy = append_menu_item(editMenu, wxID_ANY, _(L("&Copy")) + "\tCtrl+C", _(L("Copy selection to clipboard")),
|
wxMenuItem* item_copy = append_menu_item(editMenu, wxID_ANY, _(L("&Copy")) + sep + GUI::shortkey_ctrl_prefix() + sep_space + "C", _(L("Copy selection to clipboard")),
|
||||||
[this](wxCommandEvent&) { m_plater->copy_selection_to_clipboard(); }, "copy_menu");
|
[this](wxCommandEvent&) { m_plater->copy_selection_to_clipboard(); }, "copy_menu");
|
||||||
wxMenuItem* item_paste = append_menu_item(editMenu, wxID_ANY, _(L("&Paste")) + "\tCtrl+V", _(L("Paste clipboard")),
|
wxMenuItem* item_paste = append_menu_item(editMenu, wxID_ANY, _(L("&Paste")) + sep + GUI::shortkey_ctrl_prefix() + sep_space + "V", _(L("Paste clipboard")),
|
||||||
[this](wxCommandEvent&) { m_plater->paste_from_clipboard(); }, "paste_menu");
|
[this](wxCommandEvent&) { m_plater->paste_from_clipboard(); }, "paste_menu");
|
||||||
|
|
||||||
Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { evt.Enable(can_select()); }, item_select_all->GetId());
|
Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { evt.Enable(can_select()); }, item_select_all->GetId());
|
||||||
|
@ -228,6 +228,7 @@ std::string Http::priv::body_size_error()
|
|||||||
void Http::priv::http_perform()
|
void Http::priv::http_perform()
|
||||||
{
|
{
|
||||||
::curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
|
::curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
|
||||||
|
::curl_easy_setopt(curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
|
||||||
::curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writecb);
|
::curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writecb);
|
||||||
::curl_easy_setopt(curl, CURLOPT_WRITEDATA, static_cast<void*>(this));
|
::curl_easy_setopt(curl, CURLOPT_WRITEDATA, static_cast<void*>(this));
|
||||||
::curl_easy_setopt(curl, CURLOPT_READFUNCTION, form_file_read_cb);
|
::curl_easy_setopt(curl, CURLOPT_READFUNCTION, form_file_read_cb);
|
||||||
|
@ -180,6 +180,8 @@ SV*
|
|||||||
TriangleMesh::slice(z)
|
TriangleMesh::slice(z)
|
||||||
std::vector<double> z
|
std::vector<double> z
|
||||||
CODE:
|
CODE:
|
||||||
|
THIS->require_shared_vertices(); // TriangleMeshSlicer needs this
|
||||||
|
|
||||||
// convert doubles to floats
|
// convert doubles to floats
|
||||||
std::vector<float> z_f = cast<float>(z);
|
std::vector<float> z_f = cast<float>(z);
|
||||||
|
|
||||||
@ -210,6 +212,7 @@ TriangleMesh::cut(z, upper, lower)
|
|||||||
TriangleMesh* upper;
|
TriangleMesh* upper;
|
||||||
TriangleMesh* lower;
|
TriangleMesh* lower;
|
||||||
CODE:
|
CODE:
|
||||||
|
THIS->require_shared_vertices(); // TriangleMeshSlicer needs this
|
||||||
TriangleMeshSlicer mslicer(THIS);
|
TriangleMeshSlicer mslicer(THIS);
|
||||||
mslicer.cut(z, upper, lower);
|
mslicer.cut(z, upper, lower);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user