From 661086554af7d255f51438e3d4e26d0a70241655 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Wed, 19 Dec 2018 13:06:24 +0100 Subject: [PATCH 1/4] Added "Keyboard Shortcuts" dialog --- src/slic3r/CMakeLists.txt | 2 + src/slic3r/GUI/GUI_App.cpp | 8 ++ src/slic3r/GUI/GUI_App.hpp | 1 + src/slic3r/GUI/KBShortcutsDialog.cpp | 152 +++++++++++++++++++++++++++ src/slic3r/GUI/KBShortcutsDialog.hpp | 32 ++++++ src/slic3r/GUI/MainFrame.cpp | 3 + 6 files changed, 198 insertions(+) create mode 100644 src/slic3r/GUI/KBShortcutsDialog.cpp create mode 100644 src/slic3r/GUI/KBShortcutsDialog.hpp diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 3b6bad16d..d79421439 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -10,6 +10,8 @@ add_library(libslic3r_gui STATIC GUI/AboutDialog.hpp GUI/SysInfoDialog.cpp GUI/SysInfoDialog.hpp + GUI/KBShortcutsDialog.cpp + GUI/KBShortcutsDialog.hpp GUI/AppConfig.cpp GUI/AppConfig.hpp GUI/BackgroundSlicingProcess.cpp diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index e4db9b6e1..88c77c193 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -35,6 +35,7 @@ #include "Preferences.hpp" #include "Tab.hpp" #include "SysInfoDialog.hpp" +#include "KBShortcutsDialog.hpp" namespace Slic3r { namespace GUI { @@ -301,6 +302,13 @@ void GUI_App::system_info() dlg.Destroy(); } +void GUI_App::keyboard_shortcuts() +{ + KBShortcutsDialog dlg; + dlg.ShowModal(); + dlg.Destroy(); +} + // static method accepting a wxWindow object as first parameter bool GUI_App::catch_error(std::function cb, // wxMessageDialog* message_dialog, diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index 3c2b4a21f..81175b7ca 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -115,6 +115,7 @@ public: void recreate_GUI(); void system_info(); + void keyboard_shortcuts(); void load_project(wxWindow *parent, wxString& input_file); void import_model(wxWindow *parent, wxArrayString& input_files); static bool catch_error(std::function cb, diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp new file mode 100644 index 000000000..25419b438 --- /dev/null +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -0,0 +1,152 @@ +#include "KBShortcutsDialog.hpp" +#include "I18N.hpp" +#include "..\libslic3r\Utils.hpp" +#include "GUI.hpp" +#include + +namespace Slic3r { +namespace GUI { + +KBShortcutsDialog::KBShortcutsDialog() + : wxDialog(NULL, wxID_ANY, _(L("Slic3r Prusa Edition - Keyboard Shortcuts")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) +{ + SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW)); + + auto main_sizer = new wxBoxSizer(wxVERTICAL); + + // logo + wxBitmap logo_bmp = wxBitmap(from_u8(Slic3r::var("Slic3r_32px.png")), wxBITMAP_TYPE_PNG); + + // fonts + wxFont head_font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).Bold(); + head_font.SetPointSize(19); + + wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); + font.SetPointSize(10); + const wxFont bold_font = font.Bold(); +#ifdef __WXOSX__ + font.SetPointSize(12); + bold_font.SetPointSize(14); +#endif /*__WXOSX__*/ + + fill_shortcuts(); + + auto panel = new wxScrolledWindow(this, wxID_ANY, wxDefaultPosition, wxSize(500, 600)); + panel->SetScrollbars(0, 20, 1, 2); + auto sizer = new wxBoxSizer(wxVERTICAL); + panel->SetSizer(sizer); + main_sizer->Add(panel, 1, wxEXPAND | wxALL, 0); + + for (auto& sc : m_full_shortcuts) + { + wxBoxSizer* hsizer = new wxBoxSizer(wxHORIZONTAL); + sizer->Add(hsizer, 0, wxEXPAND | wxTOP, 25); + + // logo + auto *logo = new wxStaticBitmap(panel, wxID_ANY, logo_bmp); + hsizer->Add(logo, 0, wxEXPAND | wxLEFT | wxRIGHT, 15); + + // head + wxStaticText* head = new wxStaticText(panel, wxID_ANY, sc.first, wxDefaultPosition, wxSize(400,-1)); + head->SetFont(head_font); + hsizer->Add(head, 0, wxALIGN_CENTER_VERTICAL); + + // Shortcuts list + auto grid_sizer = new wxFlexGridSizer(2, 10, 25); + sizer->Add(grid_sizer, 0, wxEXPAND | wxLEFT | wxTOP, 10); + + for (auto pair : sc.second) + { + auto shortcut = new wxStaticText(panel, wxID_ANY, _(pair.first)); + shortcut->SetFont(bold_font); + grid_sizer->Add(shortcut, -1, wxALIGN_CENTRE_VERTICAL); + + auto description = new wxStaticText(panel, wxID_ANY, _(pair.second)); + description->SetFont(font); + grid_sizer->Add(description, -1, wxALIGN_CENTRE_VERTICAL); + } + } + + wxStdDialogButtonSizer* buttons = this->CreateStdDialogButtonSizer(wxOK); + + this->SetEscapeId(wxID_CLOSE); + this->Bind(wxEVT_BUTTON, &KBShortcutsDialog::onCloseDialog, this, wxID_OK); + main_sizer->Add(buttons, 0, wxEXPAND | wxALL, 15); + + this->Bind(wxEVT_LEFT_DOWN, &KBShortcutsDialog::onCloseDialog, this); + + SetSizer(main_sizer); + main_sizer->SetSizeHints(this); +} + +void KBShortcutsDialog::fill_shortcuts() +{ + Shortcuts main_shortcuts; + main_shortcuts.reserve(25); + + main_shortcuts.push_back(Shortcut("Ctrl+O", L("Open project STL/OBJ/AMF/3MF with config, delete bed"))); + main_shortcuts.push_back(Shortcut("Ctrl+I", L("Import STL//OBJ/AMF/3MF without config, keep bed"))); + main_shortcuts.push_back(Shortcut("Ctrl+L", L("Load Config from .ini/amf/3mf/gcode"))); + main_shortcuts.push_back(Shortcut("Ctrl+Alt+L", L("Load Config from .ini/amf/3mf/gcode and merge"))); + main_shortcuts.push_back(Shortcut("Ctrl+G", L("Export Gcode"))); + main_shortcuts.push_back(Shortcut("Ctrl+S", L("Save project (3MF)"))); + main_shortcuts.push_back(Shortcut("Ctrl+R", L("(Re)slice"))); + main_shortcuts.push_back(Shortcut("Ctrl+U", L("Quick slice"))); + main_shortcuts.push_back(Shortcut("Ctrl+Alt+U", L("Quick slice and Save as"))); + main_shortcuts.push_back(Shortcut("Ctrl+Shift+U", L("Repeat last quick slice"))); + main_shortcuts.push_back(Shortcut("Ctrl+1", L("Select Plater Tab"))); + main_shortcuts.push_back(Shortcut("Ctrl+2", L("Select Print Settings Tab"))); + main_shortcuts.push_back(Shortcut("Ctrl+3", L("Select Filament Setting Tab"))); + main_shortcuts.push_back(Shortcut("Ctrl+4", L("Select Printer Setting Tab"))); + main_shortcuts.push_back(Shortcut("Ctrl+5", L("Switch to 3D"))); + main_shortcuts.push_back(Shortcut("Ctrl+6", L("Switch to Preview"))); + main_shortcuts.push_back(Shortcut("Ctrl+P", L("Preferences"))); + main_shortcuts.push_back(Shortcut("0-6", L("Camera view "))); + main_shortcuts.push_back(Shortcut("+", L("Add Instance to selected object "))); + main_shortcuts.push_back(Shortcut("-", L("Remove Instance from selected object"))); + main_shortcuts.push_back(Shortcut("PgUp/PgDn", L("Switch between 3D and Preview"))); + main_shortcuts.push_back(Shortcut("Shift+LeftMouse",L("Select multiple object/Move multiple object"))); + + m_full_shortcuts.emplace(_(L("Main Shortcuts")), main_shortcuts); + + + Shortcuts plater_shortcuts; + plater_shortcuts.reserve(20); + + plater_shortcuts.push_back(Shortcut("A", L("Arrange"))); + 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("M", L("Gizmo move"))); + plater_shortcuts.push_back(Shortcut("S", L("Gizmo scale"))); + plater_shortcuts.push_back(Shortcut("R", L("Gizmo rotate"))); + plater_shortcuts.push_back(Shortcut("C", L("Gizmo cut"))); + plater_shortcuts.push_back(Shortcut("F", L("Gizmo Place face on bed"))); + plater_shortcuts.push_back(Shortcut("L", L("Gizmo SLA support points"))); + plater_shortcuts.push_back(Shortcut("B", L("Zoom to Bed"))); + plater_shortcuts.push_back(Shortcut("Z", L("Zoom to all objects in scene, if none selected"))); + plater_shortcuts.push_back(Shortcut("Z", L("Zoom to selected object"))); + plater_shortcuts.push_back(Shortcut("I", L("Zoom in"))); + plater_shortcuts.push_back(Shortcut("O", L("Zoom out"))); + plater_shortcuts.push_back(Shortcut("ESC", L("Unselect gizmo, keep object selection"))); + + m_full_shortcuts.emplace(_(L("Plater Shortcuts")), plater_shortcuts); + + + Shortcuts preview_shortcuts; + preview_shortcuts.reserve(2); + + preview_shortcuts.push_back(Shortcut(L("Arrow Up"), L("Upper Layer"))); + preview_shortcuts.push_back(Shortcut(L("Arrow Down"), L("Lower Layer"))); + + m_full_shortcuts.emplace(_(L("Preview Shortcuts")), preview_shortcuts); +} + +void KBShortcutsDialog::onCloseDialog(wxEvent &) +{ + this->EndModal(wxID_CLOSE); + this->Close(); +} + +} // namespace GUI +} // namespace Slic3r diff --git a/src/slic3r/GUI/KBShortcutsDialog.hpp b/src/slic3r/GUI/KBShortcutsDialog.hpp new file mode 100644 index 000000000..8517544b5 --- /dev/null +++ b/src/slic3r/GUI/KBShortcutsDialog.hpp @@ -0,0 +1,32 @@ +#ifndef slic3r_GUI_KBShortcutsDialog_hpp_ +#define slic3r_GUI_KBShortcutsDialog_hpp_ + +#include +#include + +namespace Slic3r { +namespace GUI { + +class KBShortcutsDialog : public wxDialog +{ + typedef std::pair Shortcut; + typedef std::vector< Shortcut > Shortcuts; + typedef std::map ShortcutsMap; + + wxString text_info {wxEmptyString}; + + ShortcutsMap m_full_shortcuts; + +public: + KBShortcutsDialog(); + + void fill_shortcuts(); + +private: + void onCloseDialog(wxEvent &); +}; + +} // namespace GUI +} // namespace Slic3r + +#endif diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 4d4ee17ae..2211023f0 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -432,6 +432,9 @@ void MainFrame::init_menubar() [this](wxCommandEvent&) { wxLaunchDefaultBrowser("http://github.com/prusa3d/slic3r/issues/new"); }); append_menu_item(helpMenu, wxID_ANY, _(L("About Slic3r")), _(L("Show about dialog")), [this](wxCommandEvent&) { Slic3r::GUI::about(); }); + helpMenu->AppendSeparator(); + append_menu_item(helpMenu, wxID_ANY, _(L("Keyboard Shortcuts")) + "\t?", _(L("Show the list of the keyboard shortcuts")), + [this](wxCommandEvent&) { wxGetApp().keyboard_shortcuts(); }); } // menubar From d46fd6d9576938297315f44328500344314df7aa Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Wed, 19 Dec 2018 13:54:27 +0100 Subject: [PATCH 2/4] New icons --- resources/icons/overlay/cut_hover.png | Bin 1382 -> 1777 bytes resources/icons/overlay/cut_off.png | Bin 1395 -> 1773 bytes resources/icons/overlay/cut_on.png | Bin 1393 -> 2673 bytes resources/icons/overlay/layflat_hover.png | Bin 2249 -> 2071 bytes resources/icons/overlay/layflat_off.png | Bin 2098 -> 2018 bytes resources/icons/overlay/layflat_on.png | Bin 2090 -> 2599 bytes resources/icons/overlay/move_hover.png | Bin 2081 -> 2022 bytes resources/icons/overlay/move_off.png | Bin 2073 -> 1909 bytes resources/icons/overlay/move_on.png | Bin 1917 -> 2410 bytes resources/icons/overlay/rotate_hover.png | Bin 2314 -> 2361 bytes resources/icons/overlay/rotate_off.png | Bin 2091 -> 2132 bytes resources/icons/overlay/rotate_on.png | Bin 2097 -> 3307 bytes resources/icons/overlay/scale_hover.png | Bin 2459 -> 1837 bytes resources/icons/overlay/scale_off.png | Bin 2452 -> 1776 bytes resources/icons/overlay/scale_on.png | Bin 2449 -> 2243 bytes resources/icons/toolbar.png | Bin 15742 -> 17622 bytes resources/icons/toolbar141.png | Bin 0 -> 23453 bytes resources/icons/view_toolbar.png | Bin 21977 -> 11913 bytes 18 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/icons/toolbar141.png diff --git a/resources/icons/overlay/cut_hover.png b/resources/icons/overlay/cut_hover.png index eccce02430a0914f7f195992cc920048c5bf37ba..5efdefc5e88343099779b989b1ff242e041ec20c 100644 GIT binary patch delta 1031 zcmV+i1o->r3h@oF9s*!wWj8Z0Wj19kI5TE4Ei^DRW-T~3F)=M;V`XMyGGR6|GB{x( zAb4$XO-(vPZ)0_BWo~pyL_H#SZE!ARX=FM^Gch$VH#kN{LP0|@F-15*ML9+}G(ki| zLqSG0F*7ieegYgIMl&%rFgG|wMnXYDF)>9rK}9)6IW$2;LqkDEH8C?Vlez+CBsMu= zH8nUhW-T#hHZUzTVKOx>IXN~kEiz_gGG$?AVPa-AIg>;KDkNfJVKg={H8?FZH#IXY zVKp=|Enze^GA%J=GG;b5V=-Z4Hf58N144flD>1tO00RL@L_t(|+U%P>XcR#d$Fp|{ z7e5FjxeJ6yND~N>B0`EZL9sCqgfsyqAmP9&g?NfKf~2ufQ7mjMECf-ou@Rz$8UkV= zXc5FRg@O=24?XWlZqMJqD^AhlHv4h2w{PLcPTszmdHc`qeC?c5tJOM^e55)OeyD!{ zDu4>00wnt|-QfQSu}%k;;HzNLPD}1FY5^#B7@k21&Il#34Y#cT@?Sp*MOcH;x@)6i zD~gZPRsvAg5Ili06d?5vpOjoHi|6tv+bLyjN!bHd3V{DS zY{DCu2%#&Rkg`o3^VSG}Ulty~HY`I|hy$7~sbgE}%(hejeCFUItixo4qt{8P)6_i| zxd2@2gS$|LOOR>75I!SyS0$FdNCdz>3m@PeOj$6OnUYvcOtYa0Abs;KaN&OnbXzo` z>z0^Yi7_390D1Th(-zNcrzOUGvjTWo4=@9oRmXAGY!yIaTa{P?Ul1|AZVZ+w z!Zt(tnE2kq_88k<(pTXZoYr1IUjhH!U~C(~K*j-a>IRARk8UuifzW?Zcma9K1-LD- z1}=bUxr->fVfp)Blvs5xpaQ4>!3yBUL@-Y)S6*&t9S+*QC~9JqSeqXu>9V+f81ejR ztk=R%W4$|i%Jt)@|Ig$7E&M#*@4KDT4HCg_k;z4{MJBg{GIW!aZj;lElDbt^H%sew zc^d?%dm60x!GxnfoYW%~Ar(LcPytkc$_i>(q+L@y;X#mdyl)ftE!U7Zb_4Gmo_ER5Y;T%8S#oJ^dIOx!Gu zCf6~^C_oii;#9PYDNQ9QG1=HOEipwm+1S`b*CZ{;Lf6vF%v9GT*)Y+>ILXw)$jD@} z3$vDrg<+Dhp_!$zuBA~*qOOIpNt&)@YO=9zl3`M!S)!@2SyH0qraR~7?W^-yMlq6{{d?YV>YX8Tj&X1 zlh)iVoE|#Y%-@M5PX4R){p|mP$Wk$gB%DyRUM7%AX6tCyO0_=zfnb&wtoOWO;-SN}S6CBP2qc^cWk3TBN^GK^AAY?U6S=-ScXD)mXJ+5F^+zn&85kTE zg*VQBy?ELFZvXFccJ|j^9sXA6`*-P;{l{)GOYW1h`ycRXfAZh@RvvxRt;H*CBY*29 z{@(lWvu-s5!yWbwKm!;UuKG9M`yDMgXH(qX;&Eg2SPY b>IXy_qA!I#Z!%NL0h#IP>gTe~DWM4fXJhO; diff --git a/resources/icons/overlay/cut_off.png b/resources/icons/overlay/cut_off.png index 4d0f8c93f0e9c5d8cdc887e1be907f4d6a29d3f7..3e442101c0971058d03cda7ffbbc309855c5cfa0 100644 GIT binary patch delta 1027 zcmV+e1pNE+3hfQB9s*!wWj8Z0Wj19kI5TE4Ei^DRW-T~3F)=M;V`XMyGGR6|GB{x( zAb4$XO-(vPZ)0_BWo~pyL_H#SZE!ARX=FM^Gch$VH#kB@LP0|@F-15*ML9+}G(ki| zLqSG0F*7ieegYgIMl&%rFgG|sMnXYDF)>9rK}9)6IW$2;LqkDEH8C?Vlez+CBsMu= zH8nUhW-T#hHZUzTVKOx>IXN~kEiz_gGG$?AVPa-AIg>;KDkNfJVKg={H8?FZH#IXY zVKp=|Enze^GA%J=GG;b5V=-Z4Hf58N144gQbyV>H00R9v!Q4gJ|5zJoe7c8Tgo+Gw0rW=FiN1&0VKnueYW7$h4*WPyv5b z02M$5NcUm7!G959oerFbuYyTCO}WRo1)$tPcm`WAFKmfzuw@01|N1#7!#WIkt__K; zEIv+42|!r`@B}JQg3MohGIFgVz5^{G0OicVH+Tud4fqd>ugNo)SOLi2509VVME`-N7CuMC**?m?Dfd33^ z!W$Tkpeq}dvP~T`)(C)KFFb%9ScLWn2Q=+c$Bxw5+f)JYnTAiW0b?Su_itrsKES}j;NQ}is1@N;TU7a0ig(x)MK}M%>92S<1J46U;#0H@b^j5XXNsIY^&JzlfDUNX#53RN%EfM zbV7WWvA@Q4i1Z?uq3T;~*Twe|rz7(2Ud8?a+fmXNB>z)vcf{A!WhOoqC}B5C>XW2T zi|;*bkFgyjy#&ADqV@v%3Iy*46Wa)eG7d;mH)z@fZ#Nj$K;R@g;L@-|~SAK421CH6gC~9JqSQ{TD>9V+f81emStjoer zV_kcC%Jt)D@XzBtP5eCG6S$qz4HDsQktxKmMW(QaGIW!aZj;lElDbt^H%sewc^d@q xJPlU-V8YQKPU?z~3ZNeXr~oQJdXL`%3;=asyLiOpHxB>+002ovPDHLkV1mEVs2KnN delta 646 zcmaFM`$_i>(q+L@y;X#mdyl)ftG)T%8S^4Gmo_ER5Y;T%8S#oJ^dIOx!Gu zCf6~^C_ojN;#9PYDNQ9QG1=HOEipwm+1S`b*CZ{;Lf6vF%v9GT*)Y+>ILXw)$jD@} z3$vDrg<+Dhp_!$zuBA~*qOOIpNt&)@YO=9zl3`M!S)!@2SyH0q}3|Ln>~)xxL@(u!GEjk8>=d-bC!$VX>3rk;aXkB6%0gS0u_7|+(aJ|WZmyyGkwQXYU z=Js334(3J;>&zH7Lk)sZD&K4t^u(MpT2%LRVW;DH<|N*;&l!6d8J1Xa+?%^KE~~88 z?#$=eUiTJ<95>y`d@^=wrSVF>ZBN#yqz63v@z=PutXgXGfz^PXgHS#89-?^@3PjEMEec5V8jw)Cn&>DsBcQl(M^SQr}q-{+3Vp1;(pb4C37 zb36AvJ3Hb3(x)0q4f%eIDDHD$P7sXTFLsMz@(BjDRSf^O2CsCxd4Kng-7^1vxIO*I n*7`6$nWsq!rpIB?N96+ycT{68zEixE3KI2n^>bP0l+XkK^7!;z diff --git a/resources/icons/overlay/cut_on.png b/resources/icons/overlay/cut_on.png index 967d1545858b99150f1b22d473f18ea138ba922a..c1f7bf62dd3f462dd00113a6e0a371c179c776e3 100644 GIT binary patch delta 1934 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 diff --git a/resources/icons/overlay/layflat_hover.png b/resources/icons/overlay/layflat_hover.png index 31ee91f46d283bcfc136535723fef614656eb32d..4db9d63d92224cc4476724303a2b63d423667c7d 100644 GIT binary patch delta 1327 zcmV+~19rK}9)6IW$2;LqkDEH8C?Vlez+CBsMu= zH8nUhW-T#hHZUzTVKOx>IXN~kEiz_gGG$?AVPa-AIg>;KDkNfJVKg={H8?FZH#IXY zVKp=|Enze^GA%J=GG;b5V=-Z4Hf58N144h;Z4*-f00bvVL_t(|+U%NLNK`=-$9K0S z=%o;pw$@@1tEH9lK?f+WB#PzNHO$N?Px3AEcR*iL`ckUxmUU^pd*BwUpP&|UycrN+OcwxghN4iC8j zN?Z{FXs_H%{7V+358TUSV^HCigIskGt~ud!N9bb!)c_3Kih9Z|JHa@|r>YGeC9tZj zeX0lnL;UYiC_ov9TsV`Bsytu~C{XDE>~Zf94r6Wzfl7}5akqt>N&(y#|0;iS01XCA zfLetDtmgPH&Ss+u4~T(6(5=w@D>?p0-4FtCvxAY`=TkFZl)4f6*c7Qjbqp*lyqt*T zV*NMtc~Y4GFnm6$+h7N{06J5W(NTr*ALYYQml6SBJQ>*mHiGq-`PYVzS8@ESUjK)U zr$MJZ-~`wPHl!Gz%lJ1fctC$}_E(}hOD+!M`_l}jTXFnvQYHXO3wQzJuZd=3N%2ot zWlOCH5EPjG5>&f*%@s~Y65W5yZ2XIQzyZ*Q*?%r08RhE8Eh0cQFMa7sl`l8zzw-jX z{TJ~O_pz*GBq{#GR{IQEFgk>a45#z;azN|uUfR_k|KMsFtP{r|Y>5Y=9 zYjGG~z=kj2kEX#4=mj4Dt@EA82R()vArEO_x1??H7hV#(oDhWG5s>I;bKhJiUQrMD z0e*qgzJKrZ$Qz1z$yoww+0b5GkgG!@D+N%LVFQzBWl$~({F}&*Ea|% z;Of2nEWjI`-(U-#CvCcK$oK!79y&vO0?!N~lh#A%^%$yi_&k(O0O3^t#tpIiHyIuu z0&78?UE^8kanKGLL6pOaJc{lR8!2Cq-Wfc^_L1AtyFtwOPE>z)c)6kM-Ukk6*b2)^ zaM?VB4rFIA-m6wUz^VY0G-+qo%G=;?V7tid+Y}_s2{q39jY+zTz<4Je6@W#cmEaWk z3Cdvnh|lFk#xiIu7kL+W-3!J`%>iC5wmksuz86&uZ+ksyJGc+-+6{r5pbfnDr~u2@ z2HOJAZSN(-`YTH>S`QB{rvsVjX)uO{yc+&7(c^Fjhk%z$hwW7$ABz6BxE4SQpaswZ lXaTeUS^zCTzLviN3;^L7`a^P$h|B;0002ovPDHLkV1hKFIWzzO delta 1506 zcmV<81s(dA5Xlj+9s*!vGBP+cIc72~G%;o{Ei^S`GA&|aWn?WhWM*PxG+}0CVly=& zAb4$XO-(vPZ)0_BWo~pyL_H#SZE!ARX=FM@MKU=?MK?o5Loh=zF-15yGe$&3LoqT! zG(s{oMmaK*egYgIMMW|>MnyM5MME${F)>9rI5S2>MME(%LNr1$G)6fxlez+CBrrB& zH#0Y6H!WpjVPP#aI5=W0I5;siEo5e9Vq-8hV>L1~W|Kq%DkL~EVP-jDGd3+{Ibt*| zF*h_YEjT%4H!UzTIXN|9VPa-9W;m0Q144hv%4bSj%7i7zXomn8-Lv(-S*G#SFkLJe9- zjH8wW(MHPTpMMcGxFbF4)d69cA1YiJ&3+eAbiR1Df zumD5s3DW?XN`X~L2ORr>0fH{B&~VmDX;##lr?rUz^P+hM%lPbF&iHc1`cKV_;OupB&Q z5&3g^kK(@|g7=?7EwIe{OYr_RBL+YgsYDsd7LgCG8{FLJ)&Ngi=KX*9&KiIT1GHL1 zejViZy1m)00X_nkEg*jtEKBDBR|deM$5G?Jjx0C88s7C>T6<&p!sj)u*@^WJ2bH9z; zHv;gwYg%jpnspi7_JU4=}J<$N*skVwWXfo<+zNibpQrtGZ~XIbHHPEiQu^9bMmeBrnHf7MseWE(bv( z;ak+yq-QP&0Stfem*38bh*G_*9+}2tA7jL7uYIOF2)?ZeJ7um3@;V|Uhezvb(?u7L z`~%)KIg+}W24|tx>pz0wjA(cmRSPOr=ZCB+FAuJ1@W+3Cjyr3p@ zh@A)0zLed6xX&$e?Mu`Bb~XzPQol+$2G<={d+-{;!@6Um3sqTcmquBJ+XsLIWMrpnXYyw?L% zj#?#IZsaiE8*T?d8T9gVjXZ;3d&)tuCk1*8&|`pZCI1UB0E}$qS6MGN5C8xG07*qo IM6N<$f_y}r=>Px# diff --git a/resources/icons/overlay/layflat_off.png b/resources/icons/overlay/layflat_off.png index 4feadbaf4db2d3e339a4259d748dfa9ec4d981b2..393dfb37f05adab834eb529b819e74312402629a 100644 GIT binary patch delta 1274 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 M07*qoM6N<$f-1#9WdHyG diff --git a/resources/icons/overlay/layflat_on.png b/resources/icons/overlay/layflat_on.png index 93a1869577049acb59daa0e364b1d73a6f95db22..adb04e6e04c40291d8c95ab8bc43d977a06e5471 100644 GIT binary patch delta 1859 zcmV-J2fX;I5T_Kd9s*!wWj8Z0Wj19kI5TE4Ei^DRW-T~3F)=M;V`XMyGGR6|GB{x( zAb4$XO-(vPZ)0_BWo~pyL_H#SZE!ARX=FM^GchtaGd4v=LP0|@F-15*ML9+}G(ki| zLqSG0F*7ieegYgIMl&%oI5RdxMnXYDF)>9rK}9)6IW$2;LqkDEH8C?Vlez+CBsMu= zH8nUhW-T#hHZUzTVKOx>IXN~kEiz_gGG$?AVPa-AIg>;KDkNfJVKg={H8?FZH#IXY zVKp=|Enze^GA%J=GG;b5V=-Z4Hf58N144g@6Y{YD00uWnL_t(|+U%KaOjB1F$NNSp z&=K7CtO-iDqGg#6?ih z;lS4qXnAK41&W0^E<~V!rO*~G)Y9%8BMBcY_O`dTR_{M)fVP)=&hI||=RD^*bQ*t+ z_C4(#7K8SVivmCapa4(+C;$`y3IGLwG@UqcVzt?9K0P@(`Bh_MV{UPA@%ps1v|vvG zpp#t+cXoDuf??QPeSLkuOeRC(;^Gj2K){=tnlkqE^q@^mP3X02*U-AUx{0?A0GrLG z8w`eT&YnH{*O@bC)C=#!2*}CFK|Fr}gj4|e`T60OFJC?w8yj1s(P(DueUD5aqyi`@ zDN$_Owk;tnEbKg<>mZQa+}xFNxqKynhwym30KHy6rBb^>) z(t8|$QmGV!CsX)3{}Tx$FE1}~cz9Tsn3z~$_rZ`A{yTQ;K*q+#bnc!!)SWwbp23$w zp@;%ehrJPnP*PG70zwict-@n4Xdv1oApB8}1AzXIj*foqV2ITA?b}2BfvT#i20RX6 z=gyrXKR-WCd3iZ$0J5^O5S@Qcr|;)w=K(AvBTxejk_8|$GgAWn-`?JC@Hl{lWaP+Th!U&_ zVOdOiL*!&~;F^xT%lG$uw&D=pWJIK3Io#abJV+XV03QbP?nhy}zubQyP2ykxM_8e&#HsB$4eJaeqk_gvj1HM@cwenvfa_#4}R}9-n`jAGy1B*JbwIm zfK30##Kc6xo&YHTeo%h|r$04XhQ56;(QYppfx(al0CtY}d_K=n|GNZ07RCvR4`Ijs z+%|cah-5^BU>_0o4)L_doCa_xfiE4Mp4VRLF%1%tjEE3yqQb^0t|ad4&DM*2qwfu3 zkCsSA52*D0A>>9frKscA>D+*wWZlg2(_Pzu6|9FxS5&nON?Q_^N$JMKFm~Jqe z8ydj$RqM>gcp+N=n~9CXv$`cVK@6o*DHRHZ{iK-d@v6S*2cX#LU%_K>m-ASB zkw23s^kZ_tYOvZcXEi01KD}sXZT2rHC_qwEQ<3=i_^8m(&}9&aMx#MnT3XPWni{ma zx_Z=Nu{aH6Vq)T0Sy|bGqeqYaL%0PDW~-%sX!c=B1ZRKE;d{>-7Jmlb3$Dl(y?3P- zQ`x&7c7k7?1-v*908zos&(B9vQc@5QDTxOT9N3Cs*lcfa??7v7D{dg*sRsrH1qp84 zxPiOoaQIvRR((~w#E19a8ozM;-|3MT^cZw{^PY%(7OTxFzcloR)ye0#7|7bSYY`YB zcz_fY6(xTZ78ZU8ilCp|1^}vQPsCo}_o=K(?REHf@#bZ+f*9`R%u4O~jC8R&WSV6+suEP{v0Z^x@~cLwWLxh4**%IP$=N> zd8El?!a(VL>B*BPm|For{kAnEEo)Uk>b%uvAv*LuA>0j-?;7;YQ34-PMX#yd+b8c- z1iWopG6GJ^g5onIersNW@Qh5N5;M+0FdRok8Kd-dUKM4bD&lM xceKPP02BZU00n>oKmnitPyi?ZUatQI7y!*LS0FHpVWR*5002ovPDHLkV1hBCPf`E? delta 1346 zcmV-I1-<&G6si!g9s*!vGBP+cIc72~G%;o{Ei^S`GA&|aWn?WhWM*PxG+}0CVly=& zAb4$XO-(vPZ)0_BWo~pyL_H#SZE!ARX=FM@MKU=?MK?4>Loh=zF-15yGe$&3LoqT! zG(s{oMmaK*egYgIL^wh>GBQInMME${F)>9rI5S2>MME(%LNr1$G)6fxlez+CBrrB& zH#0Y6H!WpjVPP#aI5=W0I5;siEo5e9Vq-8hV>L1~W|Kq%DkL~EVP-jDGd3+{Ibt*| zF*h_YEjT%4H!UzTIXN|9VPa-9W;m0Q144fsDLC!`00cToL_t(|+U#3dNEJ~So*8pN zBcnuGgz%xThc*l)w6c1Mq>uz3LV9p32+0a*p~wg;+H5zh45FxrsHltzjKU})EDAL8 z!65S?(iU2-%e~Y0bI-#~?A}?+RaLHE*x1+@he0nXDH#w!Fw{Cn4S4`30YH2_hKIl$_R)J_1B7S_ zrvM^Dpe}$s*)-rTgt-S~gewGucmN1yV|X6qkU`)CunQjXZA66t$kPR$0oeu){{n0W z&O!+9NC|;rgXGClfYU%Lgv*Qg5CDIPB$n(ZS-iw`pc>xL8L1wy%?5e0LZA&o)-o|8 z#{+P~=@{C9cux1)4Qv4}!XxxZ@PGpx$t%p0E>J>cRYhJ8U!%8zOZ^`U?Ur3zHHnL;!rzG7L*4Z1|{- z3&2#alaPETl3~9H52$3#4cTm?<7E)DpUTSK7|F;tWA>MbD1*BtBu|Z$Dx(K$He!D^ zhH?pAzX7xV)^Pz~M~!4z!S;U@*kR@b&Eo7AVOSvH?AKuSdmI&jJ=oYUA^A4ol-ZN4 zc)&tnii~9svp*<802$w@xefC7t(<5@fG5B^iOAD4#!XgFHZ1^KUgiN;B@y5V?y1A_ zX2Ir4Fc-ry<=RDXX{1q)CH^5=pk zEGL%2Af61+qwW?>_a+v;+;@^@0yxNGQiQz%&fDHEoAm$?rw{G`)C0JdaOP9dkgy;j z4gt#@7GOSRza?bJa=-)f8F{k$VUlDAu!1#6+8iQ(#Rz$)%HW!SpI-;57F3sK0qX&t z&;0)Yn|WQ#R0zQRso{S}88?xBhx;4a46)Z^XzN^|_?wn?j9#LsF}!NyQ3XJJg5rNL zIT|Qsf9ekift?WJy8$6)P~8R=TO|Jx$bbO9MGHWo@)*b+=8z_k&o{ZDD!_0UNH;0K zDv-ZyYTeEw34)-H!kWcjp!Hg5ih#sT4AT|=`vX4>p7xZIAMbx`YBmQ@t0}MpTnuq8 z*|`CD!$b^wfz?48EOe7|AzZ8Jog2@UAX@`8v%SDAkT2jh6A&Vc<%fC0{Tbv-tz4Ju zIsk-q778B}|Klfa27)gzoc%GAefk7=!>l&Al zqUkn+a07*qoM6N<$ Eg8RlTEdT%j diff --git a/resources/icons/overlay/move_hover.png b/resources/icons/overlay/move_hover.png index 8cd66cab912066852721cce6e3a7fb9bbf3c47c1..322736553060145b8f9d9caafbbcb2bc0daddf4e 100644 GIT binary patch delta 1278 zcmV9rK}9)6IW$2;LqkDEH8C?Vlez+CBsMu= zH8nUhW-T#hHZUzTVKOx>IXN~kEiz_gGG$?AVPa-AIg>;KDkNfJVKg={H8?FZH#IXY zVKp=|Enze^GA%J=GG;b5V=-Z4Hf58N144iNhv=>V00Z_(L_t(|+U#3ROB+EL-ks)D zX{g|_w2_`YN}-h^YICt5f>-+oq~f8_tJmHN!9U=+Ac9_kN@=~696c9f@hG&U=%LW2 z?@ON0W!UWQe6P(8yo}k&&dl@7%=9%W90{*x7%; zR~wBdRDHn5wW*!%7gu9tnff3*0N~pspCN5L`~QzX0{j8VI^-Y}2_hi)SG4Vav+&=c zNDv{x58FbLAVPx=O@b%`_>d%svVadof+!RC5F`jk;AeHgXOJ-K-4iq@?@8(;4@r(` z^26tUNcIR^YXotxsalm5<_`MeKA(Tto@kuqChEGv1Z0k?MeaggSdtBr2_oS}dgm@x z*CadqQTAq;NP6egwkzy}fDB@IE1Z)|5||%S+kL9OlT1@v*HIjUS3+m?txF@yM zrSF7~1{D+@pU<}iw&*3v3CaG5_7i-k$Ps%-vPENdf)S7~b-a2@B&P*5`=Wn^h2uV+ zk{r<-nkJ#NumJub54eL8V@zW|p=JR*+v?*C1@xGzZIXM6!~Ep;ND+S>(LVGOc0q#H zP7tQx3phCpeukv0C^LB1smEAz3_iljf25V%QZ!wxSQ|w=Mw*xQPN-P|&mP_s>^z&X zOC9$&XMFYuAK?5?VN7EZgr$F#--CyDj_uoap!nM8`y6BK**Ffu#OZ{Tz4_|HEjZ5N}41u^GM)$9wBYrA+|b?f!skJc%FZAt~nG1&QmT4 z$mCojp5I4QXS)oeNFL)FV;X@ktOE*=u!>C1G`zQ_0|J`pdm3Y{nu1sI1i3@@uwWLM zgrsF)BCl*`a#A$=1;Ab<7f%BZRaoDM3>mcD_NNF05{s65R_78T~ZkVkG$;FU1J~ z$lEWaof_1?Qrd>k-oVbw%Zb+(xn&+~sX0=^lgUyd@NFCqt* zqpk?pf>QjZl1o6Arcn9x|fIJdHf%onT1FU?r9JvNxn*R|>A>j~@mR+uV=?F-W5c~%darMK= oF)tMX6#*3i6#*J!UH%F%00yCiCqegjj{pDw07*qoM6N<$g0f~V3;+NC delta 1337 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 RN5B98002ovPDHLkV1lg{*?a&1 delta 1572 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 delta 1347 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 delta 1353 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 M07*qoM6N<$g1sdOssI20 diff --git a/resources/icons/overlay/scale_off.png b/resources/icons/overlay/scale_off.png index fac0350995400c1b59f121c36d677ebf94ed1756..81bacddfe03be000dd56769a466028dc8a0ba608 100644 GIT binary patch delta 1030 zcmV+h1o``v6YveN9s*!wWj8Z0Wj19kI5TE4Ei^DRW-T~3F)=M;V`XMyGGR6|GB{x( zAb4$XO-(vPZ)0_BWo~pyL_H#SZE!ARX=FM^GcZCpGBYtoLP0|@F-15*ML9+}G(ki| zLqSG0F*7ieegYgIMl&!%I5IOZMnXYDF)>9rK}9)6IW$2;LqkDEH8C?Vlez+CBsMu= zH8nUhW-T#hHZUzTVKOx>IXN~kEiz_gGG$?AVPa-AIg>;KDkNfJVKg={H8?FZH#IXY zVKp=|Enze^GA%J=GG;b5V=-Z4Hf58N144ho&7Cj+00RI?L_t(|+U%N5YZO5chG%3K z#e)Ym@uUZDV)P_}5KYL{PeME?2u2i9;xQiLDGC}y6+)JNFN1KK1}#~t1Hx$56xahsvm}2)8g)Qh z9z?L!0f)hkH6)swU^;6e;J$reKJxqktKhC72P}gV+-?CsLUO`XN&-~){*iNluRPK= zDsuiWbvQ2J&;@=r`0VeLMmRl|&%_x4WR;M9<&g9GNT4aOIjgIHO@MK5F2W5-gm2(& z+QHidF#aFFe=p_UOfi;H_%eT6`5`3FYo5wW9nkD@xzNu7g%IEc_)ug4j7bp5uiNzz z;E4b(3xH+fBE1`Mc?3KG7hInLzT^Oh1$YeJxLgNZmSs=`aJvo|00)1a%>l4MupLau z6c7R2oC3F8uLA~T3Wxx1*8vYfm&-|zc3RUe@ljU=pe<(Y7zMkK5Eqn@aUO^L+@$w! zci{h{`1^3!4Q6qEM7dsl&misK>`WlO4$rbp&h}<#7_5NfTAvB!{eKM{(){!F-D2AL zjbJQD&T1S(AB7g`W0*C+wwtoT)01)g#kKt~zdjJ3c07*qoM6N<$f}9$* A1^@s6 delta 1711 zcmV;g22lC%4U`kG9s*!vGBP+cIc72~G%;o{Ei^S`GA&|aWn?WhWM*PxG+}0CVly=& zAb4$XO-(vPZ)0_BWo~pyL_H#SZE!ARX=FMvH$_G?Lqjq~G(t5oF-15*FhoX1LqRq& zF*!ssGC4AnegYgII7Ki)HZnp(Ml?b+F)>9rK`=x{Mnge1GBG(sGBPG%+nSH8?gcVmL5kEjVLjG-EPmHf1w4VUt7yDkL{JFg7@2H8(9XIbvlk zW@a=tEjeT|H!Ws0G&MLfGGbz4H8qox144f+6m~OZj#s{Z+sBs_Wvh0iQ!?tY6M#%KTvQ6FM z$R2?WbvRIpvgmY*4`9ku3KUwP?S1e5J5bVek(NR#_x_Wc{`2oW_x#T9o^yWZocn)A z5d?V;5wT&2$W0Ema;_z&Pk2qifOn}W_llfcV$09>fp;3{`BM4toH~e{Bw|fxcUu}qd;>AQ&KKR=k zM!x*!ma_-^PuJ;lcBE;Z0)L;y{`G$+SH|1HfB#YKs=cejp9lZYrLhz5UT|Cif7hz8 z~I1JZJ#p5R9V9Ubsd%jVF>!$pr;WFK{xYn2Nb&t;1GpB#o1sG5d zocq}PG3dtm{uKDzM)#)b<*Ks-)U^Yxj?4UH{L(PpZ;p^FFAh=ddo7MuhDSVq{W(P6 zT_MEVMwr{X&)F>`%X1KKvC;#pqU4Hy#@OCnXYEbnG|xiZGC&QkjFijzCRnR*{~tDz zqal95N)M++$gp8IZ+o-Z-Y|dQ;;6}bN0;m5oKW8JcC-Cd&jjoCr#t`dp^j~riXgt0V7}q%z%B?1n7mgua==| z7-#wM3R9>P02l!)VAlIk9={0~aYu2w{pQ=)+6v1wc%jF^) z8yl}zR8&|fisFMpz^JgL9Hlr%xE#~`a>spjHUR7E>x=X9@-pZ0jV2`}ElEg7h$<*3 z_&I3j0kEnPc2}5#`tQ&p5KBo(QMa|V?Lkp=&bu|w^N7i0I@EvB(czl)900~}2tS*~ zgPF}{?R+%e^Hzm=($mv*k_rTa0O0>FlZUDePGc2?3}V4SI+230~ zj?>`EGkv5@lqzsjkiVM?Py!_tmGISXJP}lTjO+ zHbuXX8$;+tsRBO{_eatIH3xA{M67c{GM$xS$Z=W_dvF0pC5rjsyy*xw+XU zfMVvO@w8wTi)BVwADAdfvIu{9n7)3&O5b?ry!|3D5v#_DqlHl$%aYZm-+RgKsU%0p zW=wQaw{ijvhI6Iys}!NM>ba&3UF-b#?V`$B!THp2@udeI7rYAF;O7 zq%H*iScmKM%cpIP;D7j-E_3I~uxG)q?Q)+h`E|J7yKH%R`I3^7l4OD)WWjDYNs>%W zP0h_CM~-v_RR+DSYn-*;^T(KJKI@qB`<(ahnQlt}&L4ntZ2>1pOr^7XXJJ5EEsi4S z!*Yfga5wzF^plz7=SmA9i2#WJi2#WJi2#X!kg$IR7y$b+J+7GN$-Dpn002ovPDHLk FV1l;LA!+~s diff --git a/resources/icons/overlay/scale_on.png b/resources/icons/overlay/scale_on.png index 4d4c075f385ccd68cf5ec27253e2762851fba7a3..271116858dec48051fb3230078b3c53ff3286c5b 100644 GIT binary patch delta 1500 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 diff --git a/resources/icons/toolbar.png b/resources/icons/toolbar.png index 75faea658e47d9c645d244696849410014bea213..e5eabd536dcfbcd19417064357f5802de0aafbc5 100644 GIT binary patch literal 17622 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 literal 15742 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 E4{q)*q5uE@ literal 21977 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 From b7c506170dfdecb1c5b27bcf4b348e5de5e62230 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Wed, 19 Dec 2018 14:01:13 +0100 Subject: [PATCH 3/4] Fixed OSX build + Added shortcut (?) for "Keyboard Shortcuts" dialog --- src/slic3r/GUI/GLCanvas3D.cpp | 3 +++ src/slic3r/GUI/GLCanvas3D.hpp | 1 + src/slic3r/GUI/KBShortcutsDialog.cpp | 3 ++- src/slic3r/GUI/Plater.cpp | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index e01e1dbbe..c266c41d0 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -3624,6 +3624,7 @@ wxDEFINE_EVENT(EVT_GLCANVAS_RIGHT_CLICK, Vec2dEvent); wxDEFINE_EVENT(EVT_GLCANVAS_MODEL_UPDATE, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_REMOVE_OBJECT, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_ARRANGE, SimpleEvent); +wxDEFINE_EVENT(EVT_GLCANVAS_QUESTION_MARK, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_INCREASE_INSTANCES, Event); wxDEFINE_EVENT(EVT_GLCANVAS_INSTANCE_MOVED, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_WIPETOWER_MOVED, Vec3dEvent); @@ -4777,6 +4778,8 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) case 43: { post_event(Event(EVT_GLCANVAS_INCREASE_INSTANCES, +1)); break; } // key - case 45: { post_event(Event(EVT_GLCANVAS_INCREASE_INSTANCES, -1)); break; } + // key ? + case 63: { post_event(SimpleEvent(EVT_GLCANVAS_QUESTION_MARK)); break; } // key A/a case 65: case 97: { post_event(SimpleEvent(EVT_GLCANVAS_ARRANGE)); break; } diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 08368a131..d4449aa7a 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -105,6 +105,7 @@ wxDECLARE_EVENT(EVT_GLCANVAS_RIGHT_CLICK, Vec2dEvent); wxDECLARE_EVENT(EVT_GLCANVAS_MODEL_UPDATE, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_REMOVE_OBJECT, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_ARRANGE, SimpleEvent); +wxDECLARE_EVENT(EVT_GLCANVAS_QUESTION_MARK, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_INCREASE_INSTANCES, Event); // data: +1 => increase, -1 => decrease wxDECLARE_EVENT(EVT_GLCANVAS_INSTANCE_MOVED, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_WIPETOWER_MOVED, Vec3dEvent); diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index 25419b438..87010f081 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -1,6 +1,6 @@ #include "KBShortcutsDialog.hpp" #include "I18N.hpp" -#include "..\libslic3r\Utils.hpp" +#include "libslic3r/Utils.hpp" #include "GUI.hpp" #include @@ -104,6 +104,7 @@ void KBShortcutsDialog::fill_shortcuts() main_shortcuts.push_back(Shortcut("0-6", L("Camera view "))); main_shortcuts.push_back(Shortcut("+", L("Add Instance to selected object "))); main_shortcuts.push_back(Shortcut("-", L("Remove Instance from selected object"))); + main_shortcuts.push_back(Shortcut("?", L("Show keyboard shortcuts list"))); main_shortcuts.push_back(Shortcut("PgUp/PgDn", L("Switch between 3D and Preview"))); main_shortcuts.push_back(Shortcut("Shift+LeftMouse",L("Select multiple object/Move multiple object"))); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index ea8a83871..ca2ae2420 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1186,6 +1186,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) view3D_canvas->Bind(EVT_GLCANVAS_MODEL_UPDATE, [this](SimpleEvent&) { this->schedule_background_process(); }); view3D_canvas->Bind(EVT_GLCANVAS_REMOVE_OBJECT, [q](SimpleEvent&) { q->remove_selected(); }); view3D_canvas->Bind(EVT_GLCANVAS_ARRANGE, [this](SimpleEvent&) { arrange(); }); + view3D_canvas->Bind(EVT_GLCANVAS_QUESTION_MARK, [this](SimpleEvent&) { wxGetApp().keyboard_shortcuts(); }); view3D_canvas->Bind(EVT_GLCANVAS_INCREASE_INSTANCES, [this](Event &evt) { if (evt.data == 1) this->q->increase_instances(); else if (this->can_decrease_instances()) this->q->decrease_instances(); }); view3D_canvas->Bind(EVT_GLCANVAS_INSTANCE_MOVED, [this](SimpleEvent&) { update(); }); From 0dcdcf74fc136ec90c2ea5912c25f43b4230d7ce Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Wed, 19 Dec 2018 14:44:37 +0100 Subject: [PATCH 4/4] Visual hints in the 3D scene when sidebar matrix fields have focus (wip [position+scale+size] and disabled) --- src/libslic3r/Technologies.hpp | 2 + src/slic3r/GUI/3DScene.cpp | 124 ++++++++++++++++++++++ src/slic3r/GUI/3DScene.hpp | 35 +++++++ src/slic3r/GUI/GLCanvas3D.cpp | 185 +++++++++++++++++++++++++++++++++ src/slic3r/GUI/GLCanvas3D.hpp | 28 +++++ 5 files changed, 374 insertions(+) diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp index 0f0ae974b..797272223 100644 --- a/src/libslic3r/Technologies.hpp +++ b/src/libslic3r/Technologies.hpp @@ -42,6 +42,8 @@ #define ENABLE_TOOLBAR_BACKGROUND_TEXTURE (1 && ENABLE_1_42_0) // Renders a small sphere in the center of the bounding box of the current selection when no gizmo is active #define ENABLE_RENDER_SELECTION_CENTER (0 && ENABLE_1_42_0) +// Show visual hints in the 3D scene when sidebar matrix fields have focus +#define ENABLE_SIDEBAR_VISUAL_HINTS (0 && ENABLE_1_42_0) #endif // _technologies_h_ diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index 09c3443c3..012203450 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -1868,6 +1868,130 @@ void _3DScene::point3_to_verts(const Vec3crd& point, double width, double height GUI::GLCanvas3DManager _3DScene::s_canvas_mgr; +#if ENABLE_SIDEBAR_VISUAL_HINTS +GLModel::GLModel() + : m_useVBOs(false) +{ +} + +GLModel::~GLModel() +{ + m_volume.release_geometry(); +} + +void GLModel::set_color(float* color, unsigned int size) +{ + m_volume.set_render_color(color, size); +} + +void GLModel::set_scale(const Vec3d& scale) +{ + m_volume.set_volume_scaling_factor(scale); +} + +void GLModel::render() const +{ + if (m_useVBOs) + render_VBOs(); + else + { + } +} + +void GLModel::render_VBOs() const +{ + ::glEnable(GL_BLEND); + ::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + ::glCullFace(GL_BACK); + ::glEnableClientState(GL_VERTEX_ARRAY); + ::glEnableClientState(GL_NORMAL_ARRAY); + + GLint current_program_id; + ::glGetIntegerv(GL_CURRENT_PROGRAM, ¤t_program_id); + GLint color_id = (current_program_id > 0) ? glGetUniformLocation(current_program_id, "uniform_color") : -1; + + m_volume.render_VBOs(color_id, -1, -1); + + ::glBindBuffer(GL_ARRAY_BUFFER, 0); + ::glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + + ::glDisableClientState(GL_VERTEX_ARRAY); + ::glDisableClientState(GL_NORMAL_ARRAY); + + ::glDisable(GL_BLEND); +} + +GLArrow::GLArrow() + : GLModel() +{ +} + +bool GLArrow::on_init(bool useVBOs) +{ + Pointf3s vertices; + std::vector triangles; + + // top face + vertices.emplace_back(0.5, 0.0, -0.1); + vertices.emplace_back(0.5, 2.0, -0.1); + vertices.emplace_back(1.0, 2.0, -0.1); + vertices.emplace_back(0.0, 3.0, -0.1); + vertices.emplace_back(-1.0, 2.0, -0.1); + vertices.emplace_back(-0.5, 2.0, -0.1); + vertices.emplace_back(-0.5, 0.0, -0.1); + + // bottom face + vertices.emplace_back(0.5, 0.0, 0.1); + vertices.emplace_back(0.5, 2.0, 0.1); + vertices.emplace_back(1.0, 2.0, 0.1); + vertices.emplace_back(0.0, 3.0, 0.1); + vertices.emplace_back(-1.0, 2.0, 0.1); + vertices.emplace_back(-0.5, 2.0, 0.1); + vertices.emplace_back(-0.5, 0.0, 0.1); + + // bottom face + triangles.emplace_back(0, 6, 1); + triangles.emplace_back(6, 5, 1); + triangles.emplace_back(5, 4, 3); + triangles.emplace_back(5, 3, 1); + triangles.emplace_back(1, 3, 2); + + // top face + triangles.emplace_back(7, 8, 13); + triangles.emplace_back(13, 8, 12); + triangles.emplace_back(12, 10, 11); + triangles.emplace_back(8, 10, 12); + triangles.emplace_back(8, 9, 10); + + // side face + triangles.emplace_back(0, 1, 8); + triangles.emplace_back(8, 7, 0); + triangles.emplace_back(1, 2, 9); + triangles.emplace_back(9, 8, 1); + triangles.emplace_back(2, 3, 10); + triangles.emplace_back(10, 9, 2); + triangles.emplace_back(3, 4, 11); + triangles.emplace_back(11, 10, 3); + triangles.emplace_back(4, 5, 12); + triangles.emplace_back(12, 11, 4); + triangles.emplace_back(5, 6, 13); + triangles.emplace_back(13, 12, 5); + triangles.emplace_back(6, 0, 7); + triangles.emplace_back(7, 13, 6); + + m_useVBOs = useVBOs; + + if (m_useVBOs) + m_volume.indexed_vertex_array.load_mesh_full_shading(TriangleMesh(vertices, triangles)); + else + m_volume.indexed_vertex_array.load_mesh_flat_shading(TriangleMesh(vertices, triangles)); + + m_volume.finalize_geometry(m_useVBOs); + return true; +} +#endif // ENABLE_SIDEBAR_VISUAL_HINTS + std::string _3DScene::get_gl_info(bool format_as_html, bool extensions) { return s_canvas_mgr.get_gl_info(format_as_html, extensions); diff --git a/src/slic3r/GUI/3DScene.hpp b/src/slic3r/GUI/3DScene.hpp index 97b0310e5..169b0c740 100644 --- a/src/slic3r/GUI/3DScene.hpp +++ b/src/slic3r/GUI/3DScene.hpp @@ -583,6 +583,41 @@ private: GLVolumeCollection& operator=(const GLVolumeCollection &); }; +#if ENABLE_SIDEBAR_VISUAL_HINTS +class GLModel +{ +protected: + GLVolume m_volume; + bool m_useVBOs; + +public: + GLModel(); + virtual ~GLModel(); + + bool init(bool useVBOs) { return on_init(useVBOs); } + + void set_color(float* color, unsigned int size); + void set_scale(const Vec3d& scale); + + void render() const; + +protected: + virtual bool on_init(bool useVBOs) = 0; + +private: + void render_VBOs() const; +}; + +class GLArrow : public GLModel +{ +public: + GLArrow(); + +protected: + virtual bool on_init(bool useVBOs); +}; +#endif // ENABLE_SIDEBAR_VISUAL_HINTS + class _3DScene { static GUI::GLCanvas3DManager s_canvas_mgr; diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index c266c41d0..7facc3623 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -1154,6 +1154,12 @@ GLCanvas3D::Selection::VolumeCache::VolumeCache(const Vec3d& position, const Vec } #endif // ENABLE_MODELVOLUME_TRANSFORM +#if ENABLE_SIDEBAR_VISUAL_HINTS +const float GLCanvas3D::Selection::RED[3] = { 1.0f, 0.0f, 0.0f }; +const float GLCanvas3D::Selection::GREEN[3] = { 0.0f, 1.0f, 0.0f }; +const float GLCanvas3D::Selection::BLUE[3] = { 0.0f, 0.0f, 1.0f }; +#endif // ENABLE_SIDEBAR_VISUAL_HINTS + GLCanvas3D::Selection::Selection() : m_volumes(nullptr) , m_model(nullptr) @@ -1183,6 +1189,19 @@ void GLCanvas3D::Selection::set_volumes(GLVolumePtrs* volumes) _update_valid(); } +#if ENABLE_SIDEBAR_VISUAL_HINTS +bool GLCanvas3D::Selection::init(bool useVBOs) +{ + if (m_arrow.init(useVBOs)) + { + m_arrow.set_scale(5.0 * Vec3d::Ones()); + return true; + } + + return false; +} +#endif // ENABLE_SIDEBAR_VISUAL_HINTS + void GLCanvas3D::Selection::set_model(Model* model) { m_model = model; @@ -2055,6 +2074,50 @@ void GLCanvas3D::Selection::render_center() const } #endif // ENABLE_RENDER_SELECTION_CENTER +#if ENABLE_SIDEBAR_VISUAL_HINTS +void GLCanvas3D::Selection::render_sidebar_hints(const std::string& sidebar_field) const +{ + if (sidebar_field.empty()) + return; + + ::glClear(GL_DEPTH_BUFFER_BIT); + ::glEnable(GL_DEPTH_TEST); + + ::glEnable(GL_LIGHTING); + + ::glPushMatrix(); + + const Vec3d& center = get_bounding_box().center(); + + if (is_single_full_instance()) + ::glTranslated(center(0), center(1), center(2)); + else if (is_single_volume() || is_single_modifier()) + { + const GLVolume* volume = (*m_volumes)[*m_list.begin()]; + Transform3d orient_matrix = volume->get_instance_transformation().get_matrix(true, false, true, true) * volume->get_volume_transformation().get_matrix(true, false, true, true); + const Vec3d& offset = get_bounding_box().center(); + + ::glTranslated(offset(0), offset(1), offset(2)); + ::glMultMatrixd(orient_matrix.data()); + } + else + ::glTranslated(center(0), center(1), center(2)); + + if (boost::starts_with(sidebar_field, "position")) + _render_sidebar_position_hints(sidebar_field); + else if (boost::starts_with(sidebar_field, "rotation")) + _render_sidebar_rotation_hints(sidebar_field); + else if (boost::starts_with(sidebar_field, "scale")) + _render_sidebar_scale_hints(sidebar_field); + else if (boost::starts_with(sidebar_field, "size")) + _render_sidebar_size_hints(sidebar_field); + + ::glPopMatrix(); + + ::glDisable(GL_LIGHTING); +} +#endif // ENABLE_SIDEBAR_VISUAL_HINTS + void GLCanvas3D::Selection::_update_valid() { m_valid = (m_volumes != nullptr) && (m_model != nullptr); @@ -2457,6 +2520,101 @@ void GLCanvas3D::Selection::_render_bounding_box(const BoundingBoxf3& box, float ::glEnd(); } +#if ENABLE_SIDEBAR_VISUAL_HINTS +void GLCanvas3D::Selection::_render_sidebar_position_hints(const std::string& sidebar_field) const +{ + if (boost::ends_with(sidebar_field, "x")) + { + ::glRotated(-90.0, 0.0, 0.0, 1.0); + _render_sidebar_position_hint(X); + } + else if (boost::ends_with(sidebar_field, "y")) + _render_sidebar_position_hint(Y); + else if (boost::ends_with(sidebar_field, "z")) + { + ::glRotated(90.0, 1.0, 0.0, 0.0); + _render_sidebar_position_hint(Z); + } +} + +void GLCanvas3D::Selection::_render_sidebar_rotation_hints(const std::string& sidebar_field) const +{ +} + +void GLCanvas3D::Selection::_render_sidebar_scale_hints(const std::string& sidebar_field) const +{ + if (boost::ends_with(sidebar_field, "x") || requires_uniform_scale()) + { + ::glPushMatrix(); + ::glRotated(-90.0, 0.0, 0.0, 1.0); + _render_sidebar_scale_hint(X); + ::glPopMatrix(); + } + + if (boost::ends_with(sidebar_field, "y") || requires_uniform_scale()) + { + ::glPushMatrix(); + _render_sidebar_scale_hint(Y); + ::glPopMatrix(); + } + + if (boost::ends_with(sidebar_field, "z") || requires_uniform_scale()) + { + ::glPushMatrix(); + ::glRotated(90.0, 1.0, 0.0, 0.0); + _render_sidebar_scale_hint(Z); + ::glPopMatrix(); + } +} + +void GLCanvas3D::Selection::_render_sidebar_size_hints(const std::string& sidebar_field) const +{ + _render_sidebar_scale_hints(sidebar_field); +} + +void GLCanvas3D::Selection::_render_sidebar_position_hint(Axis axis) const +{ + float color[3]; + switch (axis) + { + case X: { ::memcpy((void*)color, (const void*)RED, 3 * sizeof(float)); break; } + case Y: { ::memcpy((void*)color, (const void*)GREEN, 3 * sizeof(float)); break; } + case Z: { ::memcpy((void*)color, (const void*)BLUE, 3 * sizeof(float)); break; } + } + + m_arrow.set_color(color, 3); + m_arrow.render(); +} + +void GLCanvas3D::Selection::_render_sidebar_rotation_hint(Axis axis, double length) const +{ +} + +void GLCanvas3D::Selection::_render_sidebar_scale_hint(Axis axis) const +{ + float color[3]; + switch (axis) + { + case X: { ::memcpy((void*)color, (const void*)RED, 3 * sizeof(float)); break; } + case Y: { ::memcpy((void*)color, (const void*)GREEN, 3 * sizeof(float)); break; } + case Z: { ::memcpy((void*)color, (const void*)BLUE, 3 * sizeof(float)); break; } + } + + m_arrow.set_color(color, 3); + + ::glTranslated(0.0, 5.0, 0.0); + m_arrow.render(); + + ::glTranslated(0.0, -10.0, 0.0); + ::glRotated(180.0, 0.0, 0.0, 1.0); + m_arrow.render(); +} + +void GLCanvas3D::Selection::_render_sidebar_size_hint(Axis axis, double length) const +{ +} +#endif // ENABLE_SIDEBAR_VISUAL_HINTS + void GLCanvas3D::Selection::_synchronize_unselected_instances() { std::set done; // prevent processing volumes twice @@ -3788,6 +3946,11 @@ bool GLCanvas3D::init(bool useVBOs, bool use_legacy_opengl) if (!_init_toolbar()) return false; +#if ENABLE_SIDEBAR_VISUAL_HINTS + if (!m_selection.init(m_use_VBOs)) + return false; +#endif // ENABLE_SIDEBAR_VISUAL_HINTS + #if ENABLE_REMOVE_TABS_FROM_PLATER post_event(SimpleEvent(EVT_GLCANVAS_INIT)); #endif // ENABLE_REMOVE_TABS_FROM_PLATER @@ -4165,6 +4328,10 @@ void GLCanvas3D::render() // this position is used later into on_mouse() to drag the objects m_mouse.scene_position = _mouse_to_3d(m_mouse.position.cast()); +#if ENABLE_SIDEBAR_VISUAL_HINTS + _render_selection_sidebar_hints(); +#endif // ENABLE_SIDEBAR_VISUAL_HINTS + _render_current_gizmo(); #if ENABLE_SHOW_CAMERA_TARGET _render_camera_target(); @@ -5671,6 +5838,11 @@ bool GLCanvas3D::_init_toolbar() icons_data.icon_border_size = 1; icons_data.icon_gap_size = 1; +// icons_data.filename = "toolbar141.png"; +// icons_data.icon_size = 52; +// icons_data.icon_border_size = 0; +// icons_data.icon_gap_size = 0; + BackgroundTexture::Metadata background_data; background_data.filename = "toolbar_background.png"; background_data.left = 16; @@ -6577,6 +6749,19 @@ void GLCanvas3D::_render_sla_slices() const } } +#if ENABLE_SIDEBAR_VISUAL_HINTS +void GLCanvas3D::_render_selection_sidebar_hints() const +{ + if (m_use_VBOs) + m_shader.start_using(); + + m_selection.render_sidebar_hints(m_sidebar_field); + + if (m_use_VBOs) + m_shader.stop_using(); +} +#endif // ENABLE_SIDEBAR_VISUAL_HINTS + void GLCanvas3D::_update_volumes_hover_state() const { for (GLVolume* v : m_volumes.volumes) diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index d4449aa7a..e73e1d835 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -368,6 +368,12 @@ class GLCanvas3D public: class Selection { +#if ENABLE_SIDEBAR_VISUAL_HINTS + static const float RED[3]; + static const float GREEN[3]; + static const float BLUE[3]; +#endif // ENABLE_SIDEBAR_VISUAL_HINTS + public: typedef std::set IndicesList; @@ -495,6 +501,9 @@ public: #if ENABLE_RENDER_SELECTION_CENTER GLUquadricObj* m_quadric; #endif // ENABLE_RENDER_SELECTION_CENTER +#if ENABLE_SIDEBAR_VISUAL_HINTS + mutable GLArrow m_arrow; +#endif // ENABLE_SIDEBAR_VISUAL_HINTS public: Selection(); @@ -503,6 +512,9 @@ public: #endif // ENABLE_RENDER_SELECTION_CENTER void set_volumes(GLVolumePtrs* volumes); +#if ENABLE_SIDEBAR_VISUAL_HINTS + bool init(bool useVBOs); +#endif // ENABLE_SIDEBAR_VISUAL_HINTS Model* get_model() const { return m_model; } void set_model(Model* model); @@ -580,6 +592,9 @@ public: #if ENABLE_RENDER_SELECTION_CENTER void render_center() const; #endif // ENABLE_RENDER_SELECTION_CENTER +#if ENABLE_SIDEBAR_VISUAL_HINTS + void render_sidebar_hints(const std::string& sidebar_field) const; +#endif // ENABLE_SIDEBAR_VISUAL_HINTS private: void _update_valid(); @@ -595,6 +610,16 @@ public: void _render_selected_volumes() const; void _render_synchronized_volumes() const; void _render_bounding_box(const BoundingBoxf3& box, float* color) const; +#if ENABLE_SIDEBAR_VISUAL_HINTS + void _render_sidebar_position_hints(const std::string& sidebar_field) const; + void _render_sidebar_rotation_hints(const std::string& sidebar_field) const; + void _render_sidebar_scale_hints(const std::string& sidebar_field) const; + void _render_sidebar_size_hints(const std::string& sidebar_field) const; + void _render_sidebar_position_hint(Axis axis) const; + void _render_sidebar_rotation_hint(Axis axis, double length) const; + void _render_sidebar_scale_hint(Axis axis) const; + void _render_sidebar_size_hint(Axis axis, double length) const; +#endif // ENABLE_SIDEBAR_VISUAL_HINTS void _synchronize_unselected_instances(); void _synchronize_unselected_volumes(); #if ENABLE_ENSURE_ON_BED_WHILE_SCALING @@ -1055,6 +1080,9 @@ private: void _render_camera_target() const; #endif // ENABLE_SHOW_CAMERA_TARGET void _render_sla_slices() const; +#if ENABLE_SIDEBAR_VISUAL_HINTS + void _render_selection_sidebar_hints() const; +#endif // ENABLE_SIDEBAR_VISUAL_HINTS void _update_volumes_hover_state() const; void _update_gizmos_data();