From 545db33a9752fe3610653ad61357fa09f5b72e5e Mon Sep 17 00:00:00 2001 From: Ray Ackley <38403586+rackley096794@users.noreply.github.com> Date: Tue, 3 Nov 2020 13:18:37 -0500 Subject: [PATCH 01/10] Update How to build - Windows.md Fixing up Visual Studio 2019 build steps as they were missing a few steps that caused issues during building. Ref: https://github.com/prusa3d/PrusaSlicer/issues/3743. Also moved the current step-by-step instructions to the top of the page and left the older/outdated instructions for reference purposes at the bottom as they still contain some useful details. --- doc/How to build - Windows.md | 84 +++++++++++++++++------------------ 1 file changed, 40 insertions(+), 44 deletions(-) diff --git a/doc/How to build - Windows.md b/doc/How to build - Windows.md index cd5227dafc..6490f5bbbe 100644 --- a/doc/How to build - Windows.md +++ b/doc/How to build - Windows.md @@ -1,5 +1,44 @@ +# Step by Step Visual Studio 2019 Instructions -# This how-to is out of date +Install Visual Studio Community 2019 from [visualstudio.microsoft.com/vs/](https://visualstudio.microsoft.com/vs/) +Select all workload options for C++ + +Install git for Windows from [gitforwindows.org](https://gitforwindows.org/) +Download and run the exe accepting all defaults + +Clone the respository. To place it in C:\PrusaSlicer, run: +c:\>git clone https://github.com/prusa3d/PrusaSlicer.git + +Go to the Windows Start Menu and Click on "Visual Studio 2019" folder, then select the ->"x64 Native Tools Command Prompt" to open a command window and run the following: + +cd c:\PrusaSlicer\deps +mkdir build +cd build +cmake .. -G "Visual Studio 16 2019" -DDESTDIR="c:\PrusaSlicer" + +msbuild /m ALL_BUILD.vcxproj // This took 13.5 minutes on my machine: core I7-7700K @ 4.2Ghz with 32GB main memory and 20min on a average laptop + +cd c:\PrusaSlicer\ +mkdir build +cd build +cmake .. -G "Visual Studio 16 2019" -DCMAKE_PREFIX_PATH="c:\PrusaSlicer\usr\local" + +Double-click c:\PrusaSlicer\build\PrusaSlicer.sln to open in Visual Studio 2019. +OR +Open Visual Studio for C++ development (VS asks this the first time you start it). + +Select PrusaSlicer_app_gui as your startup project (right-click->Set as Startup Project). + +Run Build->Rebuild Solution once to populate all required dependency modules. This is NOT done automatically when you build/run. If you run both Debug and Release variants, you will need to do this once for each. + +Debug->Start Debugging or press F5 + +PrusaSlicer should start. You're up and running! + +note: Thanks to @douggorgen for the original guide, as an answer for a issue + + +# The below information is out of date, but still useful for reference purposes We have switched to MS Visual Studio 2019. @@ -122,47 +161,4 @@ Refer to the CMake scripts inside the `deps` directory to see which dependencies intermediate files, which are not handled correctly by either `b2.exe` or possibly `ninja` (?). -# Noob guide (step by step) -Install Visual Studio Community 2019 from -[visualstudio.microsoft.com/vs/](https://visualstudio.microsoft.com/vs/) -Select all workload options for C++ - -Install git for Windows from -[gitforwindows.org](https://gitforwindows.org/) -download and run the exe accepting all defaults - -download PrusaSlicer-master.zip from github -I downloaded this to c:\PrusaSlicer and unzipped to c:\PrusaSlicer\PrusaSlicer-master\ so this will be my prefix for all my steps. Substitute your prefix. - -Go to the Windows Start Menu and Click on "Visual Studio 2019" folder, then select the ->"x64 Native Tools Command Prompt" to open a command window - -cd c:\PrusaSlicer\PrusaSlicer-master\deps - -mkdir build - -cd build - -cmake .. -G "Visual Studio 16 2019" -DDESTDIR="c:\PrusaSlicer\PrusaSlicer-master" - -msbuild /m ALL_BUILD.vcxproj // This took 13.5 minutes on my machine: core I7-7700K @ 4.2Ghz with 32GB main memory and 20min on a average laptop - -cd c:\PrusaSlicer\PrusaSlicer-master\ - -mkdir build - -cd build - -cmake .. -G "Visual Studio 16 2019" -DCMAKE_PREFIX_PATH="c:\PrusaSlicer\PrusaSlicer-master\usr\local" - -open Visual Studio for c++ development (VS asks this the first time you start it) - -Open->Project/Solution or File->Open->Project/Solution (depending on which dialog comes up first) - -click on c:\PrusaSlicer\PrusaSlicer-master\build\PrusaSlicer.sln - -Debug->Start Debugging or Debug->Start Without debugging -PrusaSlicer should start. You're up and running! - - -note: Thanks to @douggorgen for the original guide, as an answer for a issue From 48877614e2138001eda6ff598bbd2b390022d4bf Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Thu, 14 Jan 2021 12:51:28 +0100 Subject: [PATCH 02/10] Fix of --scale-to-fit not accepting any input as valid (#5772) Fixed parsing of Point3, fortunately Point3 was used at just a single command line parameter, thus this was not a big deal. --- src/libslic3r/Config.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/Config.hpp b/src/libslic3r/Config.hpp index 8cdacd59f3..12c19eaefe 100644 --- a/src/libslic3r/Config.hpp +++ b/src/libslic3r/Config.hpp @@ -1163,8 +1163,8 @@ public: { UNUSED(append); char dummy; - return sscanf(str.data(), " %lf , %lf , %lf %c", &this->value(0), &this->value(1), &this->value(2), &dummy) == 2 || - sscanf(str.data(), " %lf x %lf x %lf %c", &this->value(0), &this->value(1), &this->value(2), &dummy) == 2; + return sscanf(str.data(), " %lf , %lf , %lf %c", &this->value(0), &this->value(1), &this->value(2), &dummy) == 3 || + sscanf(str.data(), " %lf x %lf x %lf %c", &this->value(0), &this->value(1), &this->value(2), &dummy) == 3; } private: From 21d01291fb4c3a79be537e694ce02ca2c537263d Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Fri, 15 Jan 2021 09:34:03 +0100 Subject: [PATCH 03/10] Updated windows building guide to build dependencies out of the PrusaSlicer source tree. --- doc/How to build - Windows.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/doc/How to build - Windows.md b/doc/How to build - Windows.md index 7207a20e5a..5c54d098e2 100644 --- a/doc/How to build - Windows.md +++ b/doc/How to build - Windows.md @@ -1,29 +1,35 @@ # Step by Step Visual Studio 2019 Instructions -Install Visual Studio Community 2019 from [visualstudio.microsoft.com/vs/](https://visualstudio.microsoft.com/vs/) +Install Visual Studio Community 2019 from [visualstudio.microsoft.com/vs/](https://visualstudio.microsoft.com/vs/). Older versions are not supported as PrusaSlicer requires support for C++17. Select all workload options for C++ Install git for Windows from [gitforwindows.org](https://gitforwindows.org/) Download and run the exe accepting all defaults -Clone the respository. To place it in C:\PrusaSlicer, run: -c:\>git clone https://github.com/prusa3d/PrusaSlicer.git +Clone the respository. To place it in C:\src\PrusaSlicer, run: +``` +c:> mkdir src +c:> cd src +c:\src> git clone https://github.com/prusa3d/PrusaSlicer.git +``` Go to the Windows Start Menu and Click on "Visual Studio 2019" folder, then select the ->"x64 Native Tools Command Prompt" to open a command window and run the following: -cd c:\PrusaSlicer\deps +``` +cd c:\src\PrusaSlicer\deps mkdir build cd build -cmake .. -G "Visual Studio 16 2019" -DDESTDIR="c:\PrusaSlicer" +cmake .. -G "Visual Studio 16 2019" -DDESTDIR="c:\src\PrusaSlicer-deps" msbuild /m ALL_BUILD.vcxproj // This took 13.5 minutes on my machine: core I7-7700K @ 4.2Ghz with 32GB main memory and 20min on a average laptop -cd c:\PrusaSlicer\ +cd c:\src\PrusaSlicer\ mkdir build cd build -cmake .. -G "Visual Studio 16 2019" -DCMAKE_PREFIX_PATH="c:\PrusaSlicer\usr\local" +cmake .. -G "Visual Studio 16 2019" -DCMAKE_PREFIX_PATH="c:\src\PrusaSlicer-deps\usr\local" +``` -Double-click c:\PrusaSlicer\build\PrusaSlicer.sln to open in Visual Studio 2019. +Double-click c:\src\PrusaSlicer\build\PrusaSlicer.sln to open in Visual Studio 2019. OR Open Visual Studio for C++ development (VS asks this the first time you start it). From 59911e7c35c61725834dc30c46bf964eb4774fbc Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Fri, 15 Jan 2021 09:34:50 +0100 Subject: [PATCH 04/10] Slight improvement in Hilbert infill by using constexpr --- src/libslic3r/Fill/FillPlanePath.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/Fill/FillPlanePath.cpp b/src/libslic3r/Fill/FillPlanePath.cpp index a7a33b13d7..7beaf2f08e 100644 --- a/src/libslic3r/Fill/FillPlanePath.cpp +++ b/src/libslic3r/Fill/FillPlanePath.cpp @@ -101,9 +101,9 @@ Pointfs FillArchimedeanChords::_generate(coord_t min_x, coord_t min_y, coord_t m // static inline Point hilbert_n_to_xy(const size_t n) { - static const int next_state[16] = { 4,0,0,12, 0,4,4,8, 12,8,8,4, 8,12,12,0 }; - static const int digit_to_x[16] = { 0,1,1,0, 0,0,1,1, 1,0,0,1, 1,1,0,0 }; - static const int digit_to_y[16] = { 0,0,1,1, 0,1,1,0, 1,1,0,0, 1,0,0,1 }; + static constexpr const int next_state[16] { 4,0,0,12, 0,4,4,8, 12,8,8,4, 8,12,12,0 }; + static constexpr const int digit_to_x[16] { 0,1,1,0, 0,0,1,1, 1,0,0,1, 1,1,0,0 }; + static constexpr const int digit_to_y[16] { 0,0,1,1, 0,1,1,0, 1,1,0,0, 1,0,0,1 }; // Number of 2 bit digits. size_t ndigits = 0; From d63e681bf30d73d8536245f192ba456f372c90d3 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Fri, 15 Jan 2021 09:40:13 +0100 Subject: [PATCH 05/10] Further improvement of how to build on windows guide --- doc/How to build - Windows.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/doc/How to build - Windows.md b/doc/How to build - Windows.md index 5c54d098e2..3df17b88f9 100644 --- a/doc/How to build - Windows.md +++ b/doc/How to build - Windows.md @@ -1,11 +1,15 @@ # Step by Step Visual Studio 2019 Instructions +### Install the tools + Install Visual Studio Community 2019 from [visualstudio.microsoft.com/vs/](https://visualstudio.microsoft.com/vs/). Older versions are not supported as PrusaSlicer requires support for C++17. Select all workload options for C++ Install git for Windows from [gitforwindows.org](https://gitforwindows.org/) Download and run the exe accepting all defaults +### Download sources + Clone the respository. To place it in C:\src\PrusaSlicer, run: ``` c:> mkdir src @@ -13,8 +17,9 @@ c:> cd src c:\src> git clone https://github.com/prusa3d/PrusaSlicer.git ``` +### Compile the dependencies. +Dependencies are updated seldomly, thus they are compiled out of the PrusaSlicer source tree. Go to the Windows Start Menu and Click on "Visual Studio 2019" folder, then select the ->"x64 Native Tools Command Prompt" to open a command window and run the following: - ``` cd c:\src\PrusaSlicer\deps mkdir build @@ -22,13 +27,19 @@ cd build cmake .. -G "Visual Studio 16 2019" -DDESTDIR="c:\src\PrusaSlicer-deps" msbuild /m ALL_BUILD.vcxproj // This took 13.5 minutes on my machine: core I7-7700K @ 4.2Ghz with 32GB main memory and 20min on a average laptop +``` +### Generate Visual Studio project file for PrusaSlicer, referencing the precompiled dependencies. +Go to the Windows Start Menu and Click on "Visual Studio 2019" folder, then select the ->"x64 Native Tools Command Prompt" to open a command window and run the following: +``` cd c:\src\PrusaSlicer\ mkdir build cd build cmake .. -G "Visual Studio 16 2019" -DCMAKE_PREFIX_PATH="c:\src\PrusaSlicer-deps\usr\local" ``` +### Compile PrusaSlicer. + Double-click c:\src\PrusaSlicer\build\PrusaSlicer.sln to open in Visual Studio 2019. OR Open Visual Studio for C++ development (VS asks this the first time you start it). From aa19870c5410e4cff3caa567524b211d8250a5ad Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Fri, 15 Jan 2021 10:56:02 +0100 Subject: [PATCH 06/10] Updated doc/Localization_guide.md --- doc/Localization_guide.md | 35 +++++++++++++++++++++++++---- doc/images/long_text_on_button.png | Bin 0 -> 11913 bytes 2 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 doc/images/long_text_on_button.png diff --git a/doc/Localization_guide.md b/doc/Localization_guide.md index 8e34deef55..8dfbc54904 100644 --- a/doc/Localization_guide.md +++ b/doc/Localization_guide.md @@ -16,7 +16,7 @@ Full manual for GNUgettext can be seen here: http://www.gnu.org/software/gettext https://github.com/prusa3d/PrusaSlicer/tree/master/resources/localization 2. Open this file in PoEdit as "Edit a translation" 3. Apply your corrections to the translation -4. Push changed PrusaSlicer.po and PrusaSlicer.mo (will create automatically after saving of PrusaSlicer.po in PoEdit) back to to the enter folder. +4. Push changed PrusaSlicer.po and PrusaSlicer.mo (will create automatically after saving of PrusaSlicer.po in PoEdit) into the original folder. ### Scenario 2. How do I add a new language support 1. Get file PrusaSlicer.pot here : @@ -71,6 +71,33 @@ https://github.com/prusa3d/PrusaSlicer/tree/master/resources/localization/list.t ``` Notice, in this Catalog it will be totally same strings for initial text and translated. -When you have Catalog to translation open POT or PO file in PoEdit and start to translation, -it's very important to keep attention to every gaps and punctuation. Especially with -formatted strings. (using %d, %s, etc.) \ No newline at end of file +When you have Catalog to translation open POT or PO file in PoEdit and start translating. + + +## General guidelines for PrusaSlicer translators + + +- We recommend using *PoEdit* application for translation (as described above). It will help you eliminate most punctuation errors and will show you strings with "random" translations (if the fuzzy parameter was used). + +- To check how the translated text looks on the UI elements, test it :) If you use *PoEdit*, all you need to do is save the file. At this point, a MO file will be created. Rename it PrusaSlicer.mo, and you can run PrusaSlicer (see above). + +- If you see an encoding error (garbage characters instead of Unicode) somewhere in PrusaSlicer, report it. It is likely not a problem of your translation, but a bug in the software. + +- See on which UI elements the translated phrase will be used. Especially if it's a button, it is very important to decide on the translation and not write alternative translations in parentheses, as this will significantly increase the width of the button, which is sometimes highly undesirable: + +![Long text on button](images/long_text_on_button.png) + +- If you decide to use autocorrect or any batch processing tool, the output requires very careful proofreading. It is very easy to make it do changes that break things big time. + +- **Any formatting parts of the phrases must remain unchanged.** For example, you should not change `%1%` to `%1 %`, you should not change `%%` to `%` (for percent sign) and similar. This will lead to application crashes. + +- Please pay attention to spaces, line breaks (\n) and punctuation marks. **Don't add extra line breaks.** This is especially important for parameter names. + +- Description of the parameters should not contain units of measurement. For example, "Enable fan if layer print time is less than ~~n seconds~~" + +- For units of measurement, use the international system of units. Use "s" instead of "sec". + +- If the phrase doesn't have a dot at the end, don't add it. And if it does, then don't forget to :) + +- It is useful to stick to the same terminology in the application (especially with basic terms such as "filament" and similar). Stay consistent. Otherwise it will confuse users. + diff --git a/doc/images/long_text_on_button.png b/doc/images/long_text_on_button.png new file mode 100644 index 0000000000000000000000000000000000000000..5f4ca87be247275a178d3c28e9a45b7af420504c GIT binary patch literal 11913 zcmbVybySq?`ZYOpcf){ylnl}!-CY8Lv>+utAl)!@D4~FqAV|wg4c(p6jewMNNDX`s zzVCO|IcuHY`hDx;4`%Lp>aJ&B``Y`8($Y}G!=}bYLPEk*R+7^}LP7xn-|sOW{zpHf zHv~S=++~#YFo8cm%vUfZBt|4 z?{wo2#JoHw%6__N+5&>iPXA zv*!lCPfNDEzZzZcwca^UJi7>GxMg&^o+>eL-Jh?yBufh)K|fwTtgC$~NOO7GD|rW5 z_C0KdcWYz{2UoP-iF!U=xf=00LL3IR+PS8J&8@o>Ox5Lvpyn*{zqsIipPK}7FgYo! zPLK3maap?QxZqT8V?;p7c@ZeDHWqPpDswRH(v$JUD!|%2v>gLV`-ioboTHk|7;W>SipHB94RW4^zwiW3MKilcSMwRVympSA5rrxR1WcB*RLK!&tTkctrnW$;D#Rfc-#|AQtTIJC z2jL}gmk%@_VHLzCF6`MeMkij^O~j^lG9=m~A{x)NvUI_um+;$0+-G?$w_jiTP^fB3 z4R0}K*kOhsN%vWHOfx-y9mC9C7(O6QM5F83Km*RTRL9`2;&TQW4)$XZ^v2|$s8I7d z*|IC?!uoK6x`Yc^+J^X^GJ% z($m|qX?}{$yjyJ#^)FMDlbcj^gb3$URYCmD#uYD52A>$4ZcP^JQqs_fbrr#2u#3p3 zcI2#QzU0-_)y?>!Fjx_Dyr*SlmlGivoTu@_1WQg%Zo|S-3i$Zca;Q@8b8cTD%LoQj zD``uLjm<)9y)Gvd4m$el5PO zqa%5~cFLNiv|asD;y&>=Zdmw$pH6 z-Xi0o+LQF1A`G~2q8X(KNewG=!WwC4QI(~G4fc&xJWgA!7`j;a0bLgroVRRg=^_`0&(?HLVepNz%B0>2RBXd33QFDqdo)g@yvz7HJipkk2ZcMx zMuMt#D1&>d1YTKNsOVB^A}PgMsqiIP+epbx>Nat%1+`rM!1231?iKbrpnX7*x|IMi z&$*|sM^^VLT6=mK0%M=FT%xR8_6W`MjOxhQqEm?kf_Mc8YP#X|j-;kbSvtA;cNtnw zm+ynoCgrK-Rj}}NY^_g|ssxNA9ArLz<6O`%_frW;tw~g_sYeEbcZFF&7<%laM+c3E zK7oh(`vN9g%IDuTwMo zUDCZ%OLw%8K8pQvxWgWMVaYl%QjWNW^kRC52{$JjgOTINPY^b{6p6nTwHzM$*;bnh zIBz{9s-3CcWesK7?^JzgbaegK9PnykRC;M)YCgQj{{dM!Thj}9@cC- zV3wKHaPg)2K6LGT|8hL3t0}EbYWs28uOOZX0={xaROfsio_AE0ek*QK#+e68KEw~F zD&xu8#(hmf6MnLUX%Th&SP31k$vp{HB$Q4`8xl#t;Bz0imE~30(z4t=L85gk(q{vo zkjw54E0g^?LaxYRf{B7A-PQBng#LA+R#jpC^k0&wr8Q$IWA7;x_sNykBO+wZox;3N}^!0{RG8+cNCplCR&UweCsh|;fwA$V> z%?vF2BVgJ21qCA#B(96fRwN(RyQilIAHo4(1j547Me6nFr|w_B94k5j7}|y9XHjxN zo&35Sdusu7@$fh?9Tb2jVnv3pLmBb7*ge z4oa2ae8v2A+(mB)7?be*{J3ZAt5xT~22*bnSUv(uOR0>!HrD(WvE|5q2S+^0`$RL_ zwK}*jcDZ$bbrU?(dbeWcQ5*ZD6%7dp%-CNvvZ7!1NLIl890trmAUiZxB440n;Mv%5}~D)leyt8)gwq1{_YDji%pBk=p99<(R10v$L_wRK14M z+R4-v2b4;M>U|Db zq${$|yTUekKk(`{&_V_@@dD?A-mNdAGBNf%o}s<)oLgmsHquy;TTKp(I%naib$BUy z-Mp$-S!(zaFv1WU7u zrW0)7&R2*dVo(AOXNZ7Su3z%Tc6g$=3 zI=|8dm`Fo{Q~b2tej55CzKD9(z?E-rdge=M(2zb8RUPxFamxVs(rIuujb}SnB}`VA zhsyjxLA$OwHKe?^>Tq`99VPw#Pz0>V3IK+;C;e>4!_EOuzlGfIuiU*6zrQ`Ls&EcC z&3HKCO9+Lfgkw>WxKad1S;XcA(KQMd*C%(w=vK(gALlwnb<=&Wk@>DQbcS20ztfY5 zGiGB?_O-ep^l{@nm*WH5LG|y+@2nZ9oC`n~ejr3=_G%4A`%~kF+~{_?J(k~9jJq!1 zqq#py4>Np0GBGLq&S@zE!Q&RSx*06=~HM0uAW{On57 zMaGXx^Y(yK_*qTtyHT_4*^AbHV@@NPBB2k==>qz5hzfW=@fiYdApo_CiSH)l6-cFr78p~0EV(v*)~q=^15#Cg9qOY3-64~~((Xh= z^I<=!P%2)AV=_QUx#lFpLd@V>VOt+vChlHwTUEq#w-+4kPb58sl|k#?37BVa&rfQG0d9a{UGwq6*)p z#j^#C3F`B5qL!~W$>YrBXIxr4h}YAT)jo%B6P;kh2!yNE)L7%C+pWb1?fQ_oy23&4m7!irg@sqovmQ#^D{C`0=5lXv@;5 z#0{65PxTj?o-zu?cq#1XZOA|#sbo7{^Q+2h?8@V_-zJBX+7z74$Swr)cqL`^CxIvu zH?qKCM-7zp``rSb7>Pp}CD~QxOZv>2jvv6Jk2$r4gbw5J+u{{DNhD-Cf|q_BypxU3 zUxG$gv6Y&6|5BoEC|^OAl`9ijyLJlSn{v>4S?_}E+;YYGb8E}>;@2F)nLXE1n@6gV z2my6o8q-RoFm|>~Q0D)Yh58xi?<|+Y{fpk>{lx_*$By#9$l{sAw2G>NegiU|E~WFD zzpC}X@fR_X9CrrSziKs5)^&-o@1&oQtwGSHj!8m274gOysV>Pwom5!g3Hx93fAZOV z%pQ%R{{5o4Os~){!Rr#4Hx>NX%99Mr-uI-m!iMzqwTDL>e*F2^tRC0BUwwZ)06Gu>HJ=@=$sP((FMDs%36DsZpX>D13o0ao(b|Px z032xnVW}=Pydb3$#%{ap>DY|v`Z{~+A)GGOeO3TF)?k zG!mp&8;*3{yBaWNU~FF_RVUtT=pwm{8Ooc>hOG{sekON*boQB*5jEY`Vbv6y%2-ib zO_qJP@^rm9DnA8E%rWrAaQ_mO*h7rLevU(`q=i7jZ3LZ$2zDKMlooiE_RM+kevKfI zQUtL(RZ{P{Z)CgxcU=cP1U7#JYx{a{!tv#?6+rKWOfLSVr|h(zinWFUG#K00*Eea; ze@kqo{dem0-85 zcfHYBzX|Z^v7~(l_`tIxku+t1gihhUv^)aRUsNQGY>A}{cy{2O_uycBT-;iIf`t9v zZvu@h(eSFOs@nD4u#;J|d(sbe(L_YrSpXR6J%7`pg^~GpmT&U7ghYpm!m04e4d7f& z|3Q!m{-zz`@L)CET{wLnoSN%VrP_qc{6_{ZW~_Th)yGd53|Z~ku*!^a21CH? zMTp|d0S|K)#9-<@Ime)Jbl@lF0BD{SBUN<8J5K{P2tU7`w|d^<_sW>5ex{YP0S7m- z#z+znF#0}#JOiC9iUV&!g=WWMcD6TiCY}*3&=Ead0a8?*^w#jVUVqT#=216B-sa?S7~B1nn4aUe#^6w20*b1DC)vv@~Cf0BzT{PN@A! z1m>i=_uoe+Ds;_qcaK)QuPW>)sntCldqnag5ZP_Spvu6?u=o*5F|H$BZdgYM*gnXK znM8ZfI6BBfJ2LBc3LWNrTP$cB{^Z>Qba~5dP##ae-mAEXjNolNFtf$^U~Rs`ZDt*) z+&(cYdZ3VC0_cIv=9K{^;{zRC>~3o+ypULJ$D9qM;sJ5rFG1r`m-Bp{Eh*tqD2&)+ zGS#|pxO|H zrceS&N*;&imoTsb~&YDZT^+3br`AVuj@D0Rzc29QUOHyl--sR!sPAF z9uTt~9~fm?;&aA`Mj`x#7;ujZ1H&)R5-DKwN3^Tp5_6Dm$`q}%%y&tcQF*Pl8A6zz z2-+q)^GlZFc4M0EWbCY(VAzo)Q^;C31wCe_pnQ@T^l?;LFdsveb<(e^9<7aEUFq8B zOgN+y&bf9=Ynr`Wjw@I?-@S`+D9#8L9RM99^%ckB__APW6E@k^1o&bo=x`;>YvS;t zIz%ghBa7oaLa#RWKlAap6~*BdrRH9zrv7^lMHos-&9bwP%vT$qmmZ-tX|dId>W)|^ z-pGuJa7La!W>P*FR%s5XuyW)mgt1&9(Gx>!I4drkKr`Pc)>hz13w z-8xms=2#t6-)f4%pRs~^7oP+i#{l3oS$9``z2ZxUqODuT@+AG8t_ z5t-W~gkASIk96P9bBt?Kq-+H2CDB!FAW2*$!it`&fwqN9KHZO^T;kbBp#a#oZD_$K zMY=DvC3lMoh^6BYH%evcm+oBJLeP^%8$f79J!CZdSbDj`ZtMA}_LR!pQVQ9i!gL>s ziMlyoCD|)XpCu z#+N&qV!o2X+GbDhNZ-AC$DX3{_M&lp`4u3(dT@0MG@pFw+Y$a6Kp)_)vB8`awSBo( zkDOSA0R2GxA$Ar4ZnPE z+H@*<8Nyo)K?kxgxZs&3^|JActlrN#*6~TD_gse9Xwp&>E=J4o1(#`cIhZJyM9iWs z@luxNOvaO(DN#5x!_tD^)$o0~brJ=wHx_9(U~?M9l&$5>p&i@2#7IGCJzrQzRX4Hw z;kgzb+GRue{(zJ5ofX)sP4m}DYSwO)Q(Y=QvVioX{kF8BESw1!@5=OD$?O}~tne}? zIVIPJFw!N&G)<(0tJAlEAXC6Tg`<(G+9E!}L|IdU_iQQ;eL8(t9_$HT(M)zWn!YMN zQ9_*PBIKK|le&GEMsMepIpV)?bK&AyT-*^K?C)DtoWP+LR1}fqgyl{^+-TldJJ>w= zHuI$B#l`^#YYA5OG)hDSYZZLqL$ioyEje$D@vOs*y08Q=>@k#Hsfm@TM1B-ySrY>} zwX`rRmJF{KdLQlc2e1YEuWRQjGg)p+{`!WeiY0U|%9}iV(Q6P7geZ=>{2`Ash?;dG z%@iZ{W;rbGG0lhf=#NaoBvx8qv^!KZN9YujiW~xRd-vIyM;bG>yE)6C!8J6+2PZqu zW=rSlG(YF=yVijxW>at6fY`6oa@AULn<|OgFkc|DEDIqf&YvxQH0>?DSMhK_rbv6T zI=w7G67u!bz23y+eggVyf2n8j%7#DX2)KT!R0XR+>do){GdpSLt+;n`u^=hcla?)hU~MNgJI zYejTtRstzE{{rX!^zUtGSzt@SGW{UhgB^WMeSHN!AHDlEdc+oZ!UpYc|B@YmEw6oq z5qO00EV^_E5UBGT`Zy8#5;Vb^%p(PSB%DyJJ#3jywFRET?YWL6sQLA|xsDc8`9;U< zwfdobz}|sqPb#ULfo!8;mSZz#$I1zz6NKGMd$LYn&sgZAKn6w~ooN6L&Kh}iS-6z9 zG0xgS(m+f20A5;kC7CEF*h>48!Gaug&aI&=l}enJip%WnvqZfqD3&~JD6sp~$`3&6 z32$4e85HlUO1PiC5UJE&qG>F7XDXuY8j+y>C4P!X8JEKV0vJ(~ydQDm!!(Pi%(|0< z;OupCQ~yNuC~;({dgLn`)D*i;i8KAd7pKs;&p&fjS-;&N4m^Mf4=TU$z0G+44iINg zO^RZ5`!-%Ndf=i~IjdQytD_kUU6+EX=;_N<@o$wMcE)t$>Ja}#A?d=8iRstOCoehP zSyP3_sjv9p3ko5kQ)nNBh=)LjiOO8UgeW;9w(EwlWrGqWqd~NUHH;ehN1H}RbaHi`f<(8zJ_o~ z-yDg{r75AxrlrrBzN&{~nwM3Ty!iShKf))qEDR(<1zM6VrD=mQjlJ#T}vZ~3tlb<}-L zZHN%83ZCduK!9c))L*L{xVAlcrw*cl@d zxN)xL<-5@R{rx*7><6KEdc0DgsAg1Qs6kHvLO@3|dj`)JtO|at7W=ENY2C{If`^Bp zXktmmhRV=q(BOrsP9=YBd}GV7nx>}J&B&+>84mBWCH9>n$D2>BC?W|Bb*a3y0YZ7` zdFYKLZ>^{djZVC(-Y``+#qAikxQ&cjly{RO%EAZI<6&V;EkiyGvkUb{mK)?BGg`tI zOm$_?DW4lh8cD{x_G9sw^qgJL-8$C6S4Ul5i%DQDAyxx6&NOICn3E~d3VuSB!gtg3 z8nU0xI?@Z6wvf=ik7g%Gj~Oo=L`n2tBCAPjMgM#y$T3d&bS%e;`-HgETg1fTkdcq! zm_Yb1FRes2jxvGvMzZU6NyK+aWK33!yU#hItp>#Q^dfU|a3@-+z3jN2En=+zGo*cm zhA?{_3bmxhs~6%NJ(e6X8RwxGb!o1Uyr_mnm8!VSm^+(|m~#WaG%_wGy{c7g9--^0 zow7#5Ui7B768wnUnEIfb%eI)RdF+WH9{m+VQ0j6=X6u2&^u$CPBI8}UNp??JeKb$` z5NuPTUNWLcw1Etoa&<-FntOepnqZZ`u|dqE>AbG7iMNQDqjS`ZR>KC01@QSFY5~mf zUmiO@F*_Rxj=9)_a&u;h>a%r_DLyg9`0-vVEH?9SB)m4`rkhA9H#K;^7Qu}r=!wn8 zdSTqqlTyv_0^PE{ag}$#E(TQ=3r|orBk}BN%mgLN z^YUsmklyz3(dc1{UQYzi2PF*9P0i(;tq0E)kc4v_z6&p+U?KaQd;hX)_Af>w%ds#viO-zV*kyDaG(N z4HE_}{@(XkoZ3Cur7`RwUf#Xz>$|jC_W7`N{3BeSB(w8dc;nvjR&T-Jlzz5~kPQ1f zY>!7TTWFq^Z>;uyy*I|?dc?2Ny14Nov5@z`Kjw;~ePFe#mPL&D`w5)(4ApaTFi<4Hy z5f#vCvO`~D5?nak&Dp-?L66p|V$bN~m;+^pf;RCwOt7}Lj;_yY4Xz^ISf^G!Gof3& z0C!cvqHTYp${Cd0xtVsS?81kWliKVJIMip1>l>Fl$b1%Sy(HWG53%bP2as2$c4@r8 zwNNi)icS;y;Q_n$@EPazW#URd$Pe;i1?!&r)@(*3$H*0>Ku&4Z-l}gSvt&)w6pl4w z7A3AiA$5*LLmG4?cbd3eM2urwru4!4`V}g~9Mc|?*WX_U)%f$974q>oR=9nAuC=LB zCVr_ssgNXQ9tT(wDK=(iBFyXilCz5TlfM?)-F~P_6_z`Ig~?gU_rNK|n&h`$Pmd(7 z5h_epdx=9H-nbei*>S8}IyqrjRE1RTzIKrkF^GeSbK`W=3I?{y8eTo8o^zh{QLBS< zyVB9?*3X0L4K*7~JqN)1+~{WgLR|qR6wj*)P6#>r^^ho-_AZ4t8WIS|Dn>6{&LJ6}q0>+dJDvYn$p+A_V;T>KB|yZU1&sZZ2DwS+e}j~QGQ z?9DdT1m(ua8eTl1IF}0Dw|+@`lG-sl@$69b_JO{15ZXjeho0u=HHyd0&D|Kny_##9 z8(JcLf3Waed)heed~(h)iRqyh(w;f&q)a`K-^_n7vv8HkkgY zIqLbQ&cbLgr7;}+_$Oh64JQeZkB-(Q_4K+@l)OuEWvZ6V6_e+&B(7Qa2dKqxj92BE zK0@SMvma57?kil?-%g6G1Q^fsJIrpo&CYJU((aE4?ki`Qw7UN(?JmJLJyKuug0WR zaunuesNuqFbNu&`mi`J4QbwU;8XR$+%;PKVqY^wZZ=jU?z_JT%4);PozeIF@tlUs3sk^=pmev$~Ujdp02P@<8kww04}1O0MkjifbQ- zWn6z?A9G!mJX9?pZrRM}1!k#_%}EW31SA@L@w6u#NX4{qF2rDoSm<YB0P{U#@L$`^ftUEY~RO{v=`~Cj?h%4aciOE-e9Sk#7M#Z-` zDF{C2IMw>VaA)ck`^uckP{n*>69c|pvrLu%!g>K`59s7#9Tk0v9 zF$0X9MF5$K^&8O)AlJ%-;x7y{hM!P00CJtdetab~mJzTAZsL>NH@&^drY@rXR_J(e zZ3#J7j*79U*i%u+rhh6RpIE-}M_TrDcjHw6iUJ-S__)VH*y^~Z;sPA43~~5rznfD0 zQ3(Sb1-*E!8@czr_M1nTSAbr>w-}O&**xfaK; z6WupikdYF#a(hhMF8f5xgcMMAKjQbld~Aj&WM!lftbB1(+p8em6Xx8gQH*KFvRgGo z?qrJ@U{(lZ3%PP%w6FZTfD~!DrLNZbxEG{UL^bJ?z)>a}%u;IPblL2bWM!^^>S0oz zJ#&<9a4~$5rMk>FHw$^9Q9NsY9|B^BuoDP}wU9SfBLziyZ)5r=@`gtd-OGR#SaJ+^ ztDk1Wd^mD{%6dKDB)l_vQqGbDWbn6S;ehaG9=`My9?c2Jf`a#Q7dqq>NZ3|tvJe_)3$(yDbe4s@1yqd^Zu5f+w+{&3222B zDC(Qg6!&U>2M@;qtDz7RA|iteq>EEiu^wFhZ9@kmGdi`^OSM=2>n8R$6xLG2q3X_U z7Mxq|mVRF+HY}MOdaRE(570z*$9Npkm0{&gELInW{?DhRkrXvQcV>c>(;zDsKQ!ITF-G40+C ztzQg3&Yj)%S5}uQFW*{dWk*e-B;_yb59&+|i%V6=;0^LWR08Q;hG!QzAOB zYB9~Q^JAF?Dv=+m;9Pyq*a0#lneM!onD_zixRhnFYfrzojBjiG7 z^9SgxX4fkfmHEYvt|m?{axyr%GRc5MX{uY#Dd0kJO63Z{9Zn$$Eu1A$W zRKiB)EOPOv&%KF{WsB|sLdiCaBf(ut?lb_!UV@=PLuQ!SXT-JL>N_qFZu2Anwuy&v zRlvuy2(!>x;>Z@QV2HnxTKrShlGXkYuVLaqL Date: Fri, 15 Jan 2021 13:46:14 +0100 Subject: [PATCH 07/10] Bumped up boost version from 1.70.0 to 1.75.0 mainly due to an issue with an updated Xcode / clang incorrectly reporting that it supports __cpp_lib_uncaught_exceptions while it does not if targeting older platforms. This issue has been fixed in boost 1.74.0 and 1.75.0 --- deps/deps-linux.cmake | 4 ++-- deps/deps-macos.cmake | 4 ++-- deps/deps-mingw.cmake | 4 ++-- deps/deps-windows.cmake | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/deps/deps-linux.cmake b/deps/deps-linux.cmake index 420638d2f0..ff40c27fdf 100644 --- a/deps/deps-linux.cmake +++ b/deps/deps-linux.cmake @@ -13,8 +13,8 @@ include("deps-unix-common.cmake") ExternalProject_Add(dep_boost EXCLUDE_FROM_ALL 1 - URL "https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz" - URL_HASH SHA256=882b48708d211a5f48e60b0124cf5863c1534cd544ecd0664bb534a4b5d506e9 + URL "https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.gz" + URL_HASH SHA256=aeb26f80e80945e82ee93e5939baebdca47b9dee80a07d3144be1e1a6a66dd6a BUILD_IN_SOURCE 1 CONFIGURE_COMMAND ./bootstrap.sh --with-libraries=system,iostreams,filesystem,thread,log,locale,regex diff --git a/deps/deps-macos.cmake b/deps/deps-macos.cmake index f985cc5610..8dd7953bb5 100644 --- a/deps/deps-macos.cmake +++ b/deps/deps-macos.cmake @@ -18,8 +18,8 @@ include("deps-unix-common.cmake") ExternalProject_Add(dep_boost EXCLUDE_FROM_ALL 1 - URL "https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz" - URL_HASH SHA256=882b48708d211a5f48e60b0124cf5863c1534cd544ecd0664bb534a4b5d506e9 + URL "https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.gz" + URL_HASH SHA256=aeb26f80e80945e82ee93e5939baebdca47b9dee80a07d3144be1e1a6a66dd6a BUILD_IN_SOURCE 1 CONFIGURE_COMMAND ./bootstrap.sh --with-toolset=clang diff --git a/deps/deps-mingw.cmake b/deps/deps-mingw.cmake index 89b7e2b437..2ab13c4129 100644 --- a/deps/deps-mingw.cmake +++ b/deps/deps-mingw.cmake @@ -9,8 +9,8 @@ include("deps-unix-common.cmake") ExternalProject_Add(dep_boost EXCLUDE_FROM_ALL 1 - URL "https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz" - URL_HASH SHA256=882b48708d211a5f48e60b0124cf5863c1534cd544ecd0664bb534a4b5d506e9 + URL "https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.gz" + URL_HASH SHA256=aeb26f80e80945e82ee93e5939baebdca47b9dee80a07d3144be1e1a6a66dd6a BUILD_IN_SOURCE 1 CONFIGURE_COMMAND bootstrap.bat BUILD_COMMAND b2.exe diff --git a/deps/deps-windows.cmake b/deps/deps-windows.cmake index ac93b49320..5d343c403c 100644 --- a/deps/deps-windows.cmake +++ b/deps/deps-windows.cmake @@ -55,8 +55,8 @@ endmacro() ExternalProject_Add(dep_boost EXCLUDE_FROM_ALL 1 - URL "https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz" - URL_HASH SHA256=882b48708d211a5f48e60b0124cf5863c1534cd544ecd0664bb534a4b5d506e9 + URL "https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.gz" + URL_HASH SHA256=aeb26f80e80945e82ee93e5939baebdca47b9dee80a07d3144be1e1a6a66dd6a BUILD_IN_SOURCE 1 CONFIGURE_COMMAND bootstrap.bat BUILD_COMMAND b2.exe From d28d8dda75cf339f14ca4c5038fbce6a65f57b7d Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Fri, 15 Jan 2021 18:07:14 +0100 Subject: [PATCH 08/10] Updated boost requies date_time library to be compiled. --- deps/deps-linux.cmake | 2 +- deps/deps-macos.cmake | 2 +- deps/deps-mingw.cmake | 1 + deps/deps-windows.cmake | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/deps/deps-linux.cmake b/deps/deps-linux.cmake index ff40c27fdf..2da2890976 100644 --- a/deps/deps-linux.cmake +++ b/deps/deps-linux.cmake @@ -17,7 +17,7 @@ ExternalProject_Add(dep_boost URL_HASH SHA256=aeb26f80e80945e82ee93e5939baebdca47b9dee80a07d3144be1e1a6a66dd6a BUILD_IN_SOURCE 1 CONFIGURE_COMMAND ./bootstrap.sh - --with-libraries=system,iostreams,filesystem,thread,log,locale,regex + --with-libraries=system,iostreams,filesystem,thread,log,locale,regex,date_time "--prefix=${DESTDIR}/usr/local" BUILD_COMMAND ./b2 -j ${NPROC} diff --git a/deps/deps-macos.cmake b/deps/deps-macos.cmake index 8dd7953bb5..bf9501ca02 100644 --- a/deps/deps-macos.cmake +++ b/deps/deps-macos.cmake @@ -23,7 +23,7 @@ ExternalProject_Add(dep_boost BUILD_IN_SOURCE 1 CONFIGURE_COMMAND ./bootstrap.sh --with-toolset=clang - --with-libraries=system,iostreams,filesystem,thread,log,locale,regex + --with-libraries=system,iostreams,filesystem,thread,log,locale,regex,date_time "--prefix=${DESTDIR}/usr/local" BUILD_COMMAND ./b2 -j ${NPROC} diff --git a/deps/deps-mingw.cmake b/deps/deps-mingw.cmake index 2ab13c4129..c97346bb03 100644 --- a/deps/deps-mingw.cmake +++ b/deps/deps-mingw.cmake @@ -21,6 +21,7 @@ ExternalProject_Add(dep_boost --with-log --with-locale --with-regex + --with-date_time "--prefix=${DESTDIR}/usr/local" "address-model=${DEPS_BITS}" "toolset=${DEP_BOOST_TOOLSET}" diff --git a/deps/deps-windows.cmake b/deps/deps-windows.cmake index 5d343c403c..81d52b8424 100644 --- a/deps/deps-windows.cmake +++ b/deps/deps-windows.cmake @@ -68,6 +68,7 @@ ExternalProject_Add(dep_boost --with-log --with-locale --with-regex + --with-date_time "--prefix=${DESTDIR}/usr/local" "address-model=${DEPS_BITS}" "toolset=${DEP_BOOST_TOOLSET}" From d06aa60691025dfa261bca8b247c1e7255296829 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Fri, 15 Jan 2021 19:47:51 +0100 Subject: [PATCH 09/10] Fixing Perl bindings after update of Boost. --- xs/src/xsinit.h | 1 + 1 file changed, 1 insertion(+) diff --git a/xs/src/xsinit.h b/xs/src/xsinit.h index 2082dfb883..cbb55077ba 100644 --- a/xs/src/xsinit.h +++ b/xs/src/xsinit.h @@ -75,6 +75,7 @@ #undef times #undef accept #undef wait + #undef abort // Breaks compilation with Eigen matrices embedded into Slic3r::Point. #undef malloc From 9a2310ae98d78763b92c8f25c893e2e721b7de91 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Mon, 18 Jan 2021 09:33:19 +0100 Subject: [PATCH 10/10] Fix of [prusa3d/PrusaSlicer] Remove unnecessary null pointer checks (#5813) Don't use if (ptr) delete ptr; call delete ptr; directly, it contains the test for null ptr. --- src/slic3r/GUI/ExtraRenderers.cpp | 3 +-- src/slic3r/GUI/GUI_Preview.cpp | 7 ++----- src/slic3r/GUI/Plater.cpp | 15 ++++----------- 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/src/slic3r/GUI/ExtraRenderers.cpp b/src/slic3r/GUI/ExtraRenderers.cpp index 27e2c12245..584896dd59 100644 --- a/src/slic3r/GUI/ExtraRenderers.cpp +++ b/src/slic3r/GUI/ExtraRenderers.cpp @@ -49,8 +49,7 @@ BitmapTextRenderer::~BitmapTextRenderer() { #ifdef SUPPORTS_MARKUP #ifdef wxHAS_GENERIC_DATAVIEWCTRL - if (m_markupText) - delete m_markupText; + delete m_markupText; #endif //wxHAS_GENERIC_DATAVIEWCTRL #endif // SUPPORTS_MARKUP } diff --git a/src/slic3r/GUI/GUI_Preview.cpp b/src/slic3r/GUI/GUI_Preview.cpp index bca27fa21c..36c1960d3f 100644 --- a/src/slic3r/GUI/GUI_Preview.cpp +++ b/src/slic3r/GUI/GUI_Preview.cpp @@ -36,11 +36,8 @@ View3D::View3D(wxWindow* parent, Model* model, DynamicPrintConfig* config, Backg View3D::~View3D() { - if (m_canvas != nullptr) - delete m_canvas; - - if (m_canvas_widget != nullptr) - delete m_canvas_widget; + delete m_canvas; + delete m_canvas_widget; } bool View3D::init(wxWindow* parent, Model* model, DynamicPrintConfig* config, BackgroundSlicingProcess* process) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 80826eab91..4d6b1178f9 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -595,17 +595,10 @@ struct Sidebar::priv Sidebar::priv::~priv() { - if (object_manipulation != nullptr) - delete object_manipulation; - - if (object_settings != nullptr) - delete object_settings; - - if (frequently_changed_parameters != nullptr) - delete frequently_changed_parameters; - - if (object_layers != nullptr) - delete object_layers; + delete object_manipulation; + delete object_settings; + delete frequently_changed_parameters; + delete object_layers; } void Sidebar::priv::show_preset_comboboxes()