From 7f4e6328fac3a03b255de5341c5bf9271d186c97 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Tue, 16 Apr 2019 10:39:17 +0200 Subject: [PATCH 1/5] Fixed trianglemeshslicer perl bindings, thus the unit tests. --- xs/xsp/TriangleMesh.xsp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xs/xsp/TriangleMesh.xsp b/xs/xsp/TriangleMesh.xsp index edfb4a198..be2239c05 100644 --- a/xs/xsp/TriangleMesh.xsp +++ b/xs/xsp/TriangleMesh.xsp @@ -180,6 +180,8 @@ SV* TriangleMesh::slice(z) std::vector z CODE: + THIS->require_shared_vertices(); // TriangleMeshSlicer needs this + // convert doubles to floats std::vector z_f = cast(z); From 7aa4fd082731c56057e4019f6e64c0fd9dec338f Mon Sep 17 00:00:00 2001 From: bubnikv Date: Tue, 16 Apr 2019 10:53:55 +0200 Subject: [PATCH 2/5] Another fix of the perl bindings --- xs/xsp/TriangleMesh.xsp | 1 + 1 file changed, 1 insertion(+) diff --git a/xs/xsp/TriangleMesh.xsp b/xs/xsp/TriangleMesh.xsp index be2239c05..e519f9210 100644 --- a/xs/xsp/TriangleMesh.xsp +++ b/xs/xsp/TriangleMesh.xsp @@ -212,6 +212,7 @@ TriangleMesh::cut(z, upper, lower) TriangleMesh* upper; TriangleMesh* lower; CODE: + THIS->require_shared_vertices(); // TriangleMeshSlicer needs this TriangleMeshSlicer mslicer(THIS); mslicer.cut(z, upper, lower); From 554176b97fadf7d67d320dbd2777c7877ce3013c Mon Sep 17 00:00:00 2001 From: Vojtech Kral Date: Mon, 15 Apr 2019 13:36:20 +0200 Subject: [PATCH 3/5] Http: Fix redirecting of post requests, fix #2018 --- src/slic3r/Utils/Http.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/Utils/Http.cpp b/src/slic3r/Utils/Http.cpp index 801c5cf40..79c4ecfa9 100644 --- a/src/slic3r/Utils/Http.cpp +++ b/src/slic3r/Utils/Http.cpp @@ -228,6 +228,7 @@ std::string Http::priv::body_size_error() void Http::priv::http_perform() { ::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_WRITEDATA, static_cast(this)); ::curl_easy_setopt(curl, CURLOPT_READFUNCTION, form_file_read_cb); From dfa924e8eb6d2a5a17d251675c39a6558ffc4641 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Tue, 16 Apr 2019 13:47:37 +0200 Subject: [PATCH 4/5] Ctrl+C and Ctrl+V for Copy and Paste refactored in the same way as Ctrl+A for Select All --- src/slic3r/GUI/GLCanvas3D.cpp | 16 ++++++++++++++++ src/slic3r/GUI/GUI_ObjectList.cpp | 4 ++++ src/slic3r/GUI/KBShortcutsDialog.cpp | 2 ++ src/slic3r/GUI/MainFrame.cpp | 4 ++-- 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 2c86bfd97..e656bec9b 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -2240,6 +2240,22 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) #endif /* __APPLE__ */ post_event(SimpleEvent(EVT_GLCANVAS_SELECT_ALL)); 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__ case WXK_BACK: // the low cost Apple solutions are not equipped with a Delete key, use Backspace instead. #else /* __APPLE__ */ diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index 5216ed981..f8ad8b7bb 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -589,6 +589,10 @@ void ObjectList::key_event(wxKeyEvent& event) } else if (wxGetKeyState(wxKeyCode('A')) && wxGetKeyState(WXK_CONTROL/*WXK_SHIFT*/)) 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 event.Skip(); } diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index fb84c2d27..eb3d6fcd7 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -131,6 +131,8 @@ void KBShortcutsDialog::fill_shortcuts() 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(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("S", L("Gizmo scale"))); plater_shortcuts.push_back(Shortcut("R", L("Gizmo rotate"))); diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index b356f629d..4814a35d9 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -381,9 +381,9 @@ void MainFrame::init_menubar() 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"); - 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"); Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { evt.Enable(can_select()); }, item_select_all->GetId()); From 25bfebfe8ee3295aa09efb60183ea2fca150856c Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Tue, 16 Apr 2019 13:53:57 +0200 Subject: [PATCH 5/5] Fixed typo in shortcuts dialog --- src/slic3r/GUI/KBShortcutsDialog.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index eb3d6fcd7..65abba319 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -174,8 +174,8 @@ void KBShortcutsDialog::fill_shortcuts() Shortcuts layers_slider_shortcuts; 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 Down"), L("Move current slider thump Down"))); + 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 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 Right"),L("Set lower thumb to current slider thumb"))); layers_slider_shortcuts.push_back(Shortcut("+", L("Add color change marker for current layer")));