diff --git a/cad/PrusaSlicer/Makefile b/cad/PrusaSlicer/Makefile --- a/cad/PrusaSlicer/Makefile +++ b/cad/PrusaSlicer/Makefile @@ -1,7 +1,6 @@ PORTNAME= PrusaSlicer DISTVERSIONPREFIX=version_ -DISTVERSION= 2.6.0 -PORTREVISION= 9 +DISTVERSION= 2.7.2 CATEGORIES= cad DIST_SUBDIR= PrusaSlicer @@ -14,9 +13,13 @@ BUILD_DEPENDS= cereal>=1.3.0.10:devel/cereal \ cgal>=5.0.2:math/cgal \ - opencascade>=7.7.0:cad/opencascade + opencascade>=7.7.0:cad/opencascade \ + libbgcode>=0.2.0:cad/libbgcode -LIB_DEPENDS= libtbb.so:devel/onetbb \ +LIB_DEPENDS+= libbgcode_convert.so:cad/libbgcode \ + libbgcode_binarize.so:cad/libbgcode \ + libbgcode_core.so:cad/libbgcode \ + libtbb.so:devel/onetbb \ libboost_log.so:devel/boost-libs \ libImath.so:math/Imath \ libnlopt.so:math/nlopt \ @@ -38,7 +41,8 @@ libharfbuzz.so:print/harfbuzz \ libwayland-egl.so:graphics/wayland -USES= cmake cpe desktop-file-utils eigen:3 gettext gl pkgconfig jpeg iconv gnome xorg +USES= cmake cpe desktop-file-utils eigen:3 gettext gl gnome iconv \ + jpeg pkgconfig xorg CPE_VENDOR= prusa3d USE_GITHUB= yes GH_ACCOUNT= prusa3d @@ -50,7 +54,8 @@ CMAKE_ARGS+= -DwxWidgets_CONFIG_EXECUTABLE="${WX_CONFIG}" \ -DSLIC3R_GTK=3 \ -DSLIC3R_FHS=1 \ - -DSLIC3R_PCH=OFF + -DSLIC3R_PCH=OFF \ + -DSLIC3R_BUILD_TESTS=OFF PORTDATA= * diff --git a/cad/PrusaSlicer/distinfo b/cad/PrusaSlicer/distinfo --- a/cad/PrusaSlicer/distinfo +++ b/cad/PrusaSlicer/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1690319127 -SHA256 (PrusaSlicer/prusa3d-PrusaSlicer-version_2.6.0_GH0.tar.gz) = a15f68e3b18a047c8c9a18a9d91629d2c777be1932087684cf6d2332d0888e77 -SIZE (PrusaSlicer/prusa3d-PrusaSlicer-version_2.6.0_GH0.tar.gz) = 56430180 +TIMESTAMP = 1709292528 +SHA256 (PrusaSlicer/prusa3d-PrusaSlicer-version_2.7.2_GH0.tar.gz) = 0af8ab83ad33cdebc1d13d37d8ed3b2125d84532eb4bca7618c422bf7648ebee +SIZE (PrusaSlicer/prusa3d-PrusaSlicer-version_2.7.2_GH0.tar.gz) = 64915607 diff --git a/cad/PrusaSlicer/files/patch-CMakeLists.txt b/cad/PrusaSlicer/files/patch-CMakeLists.txt --- a/cad/PrusaSlicer/files/patch-CMakeLists.txt +++ b/cad/PrusaSlicer/files/patch-CMakeLists.txt @@ -1,6 +1,6 @@ ---- CMakeLists.txt.orig 2023-06-19 12:07:14 UTC +--- CMakeLists.txt.orig 2024-02-29 13:03:32 UTC +++ CMakeLists.txt -@@ -4,6 +4,7 @@ include(CMakeDependentOption) +@@ -14,6 +14,7 @@ include(CMakeDependentOption) include("version.inc") include(GNUInstallDirs) include(CMakeDependentOption) @@ -8,7 +8,7 @@ set(SLIC3R_RESOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/resources") file(TO_NATIVE_PATH "${SLIC3R_RESOURCES_DIR}" SLIC3R_RESOURCES_DIR_WIN) -@@ -207,7 +208,7 @@ endif () +@@ -218,7 +219,7 @@ endif () endif () endif () @@ -17,7 +17,16 @@ find_package(PkgConfig REQUIRED) if (CMAKE_VERSION VERSION_LESS "3.1") -@@ -446,7 +447,7 @@ find_package(EXPAT REQUIRED) +@@ -248,6 +249,8 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL + # On GCC and Clang, no return from a non-void function is a warning only. Here, we make it an error. + add_compile_options(-Werror=return-type) + ++ add_compile_options(-Wno-enum-constexpr-conversion -Wno-implicit-const-int-float-conversion) ++ + # removes LOTS of extraneous Eigen warnings (GCC only supports it since 6.1) + # https://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221 + if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0) +@@ -457,7 +460,7 @@ find_package(EXPAT REQUIRED) # no matter what. find_package(EXPAT REQUIRED) @@ -26,7 +35,7 @@ if (TARGET EXPAT::EXPAT ) target_link_libraries(libexpat INTERFACE EXPAT::EXPAT) -@@ -627,8 +628,8 @@ elseif (SLIC3R_FHS) +@@ -631,8 +634,8 @@ elseif (SLIC3R_FHS) install(DIRECTORY ${SLIC3R_RESOURCES_DIR}/ DESTINATION ${SLIC3R_FHS_RESOURCES} PATTERN "*/udev" EXCLUDE ) @@ -37,7 +46,7 @@ foreach(SIZE 32 128 192) install(FILES ${SLIC3R_RESOURCES_DIR}/icons/PrusaSlicer_${SIZE}px.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/${SIZE}x${SIZE}/apps RENAME PrusaSlicer.png -@@ -637,7 +638,8 @@ elseif (SLIC3R_FHS) +@@ -641,7 +644,8 @@ elseif (SLIC3R_FHS) DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/${SIZE}x${SIZE}/apps RENAME PrusaSlicer-gcodeviewer.png ) endforeach() diff --git a/cad/PrusaSlicer/files/patch-src_CMakeLists.txt b/cad/PrusaSlicer/files/patch-src_CMakeLists.txt --- a/cad/PrusaSlicer/files/patch-src_CMakeLists.txt +++ b/cad/PrusaSlicer/files/patch-src_CMakeLists.txt @@ -1,15 +1,15 @@ ---- src/CMakeLists.txt.orig 2023-06-19 12:07:14 UTC +--- src/CMakeLists.txt.orig 2023-12-12 14:21:21 UTC +++ src/CMakeLists.txt -@@ -78,7 +78,7 @@ if (SLIC3R_GUI) +@@ -62,7 +62,7 @@ if (SLIC3R_GUI) - find_package(JPEG QUIET) - find_package(TIFF QUIET) + find_package(JPEG MODULE QUIET) + find_package(TIFF MODULE QUIET) # Tiff exported config is broken for static build - find_package(NanoSVG REQUIRED) -+ # find_package(NanoSVG REQUIRED) ++ #find_package(NanoSVG REQUIRED) string(REGEX MATCH "wxpng" WX_PNG_BUILTIN ${wxWidgets_LIBRARIES}) if (PNG_FOUND AND NOT WX_PNG_BUILTIN) -@@ -147,7 +147,7 @@ endif () +@@ -131,7 +131,7 @@ if (NOT WIN32 AND NOT APPLE) set_target_properties(PrusaSlicer PROPERTIES OUTPUT_NAME "prusa-slicer") endif () diff --git a/cad/PrusaSlicer/files/patch-src_libnanosvg_nanosvg.h b/cad/PrusaSlicer/files/patch-src_libnanosvg_nanosvg.h --- a/cad/PrusaSlicer/files/patch-src_libnanosvg_nanosvg.h +++ b/cad/PrusaSlicer/files/patch-src_libnanosvg_nanosvg.h @@ -1,4 +1,4 @@ ---- src/libnanosvg/nanosvg.h.orig 2024-03-17 16:57:39 UTC +--- src/libnanosvg/nanosvg.h.orig 2024-01-12 13:12:38 UTC +++ src/libnanosvg/nanosvg.h @@ -0,0 +1,3106 @@ +/* diff --git a/cad/PrusaSlicer/files/patch-src_libnanosvg_nanosvgrast.h b/cad/PrusaSlicer/files/patch-src_libnanosvg_nanosvgrast.h --- a/cad/PrusaSlicer/files/patch-src_libnanosvg_nanosvgrast.h +++ b/cad/PrusaSlicer/files/patch-src_libnanosvg_nanosvgrast.h @@ -1,4 +1,4 @@ ---- src/libnanosvg/nanosvgrast.h.orig 2024-03-17 16:57:40 UTC +--- src/libnanosvg/nanosvgrast.h.orig 2024-01-12 13:12:38 UTC +++ src/libnanosvg/nanosvgrast.h @@ -0,0 +1,1482 @@ +/* diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_Arrange_Core_NFP_NFPConcave__CGAL.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_Arrange_Core_NFP_NFPConcave__CGAL.cpp new file mode 100644 --- /dev/null +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_Arrange_Core_NFP_NFPConcave__CGAL.cpp @@ -0,0 +1,11 @@ +--- src/libslic3r/Arrange/Core/NFP/NFPConcave_CGAL.cpp.orig 2024-03-01 12:13:10 UTC ++++ src/libslic3r/Arrange/Core/NFP/NFPConcave_CGAL.cpp +@@ -5,6 +5,8 @@ + #include "NFP.hpp" + #include "NFPConcave_CGAL.hpp" + ++#include ++ + #include + #include + #include diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt b/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt --- a/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt @@ -1,6 +1,6 @@ ---- src/libslic3r/CMakeLists.txt.orig 2023-06-19 12:07:14 UTC +--- src/libslic3r/CMakeLists.txt.orig 2024-02-29 13:03:32 UTC +++ src/libslic3r/CMakeLists.txt -@@ -490,7 +490,6 @@ target_link_libraries(libslic3r +@@ -575,7 +575,6 @@ target_link_libraries(libslic3r target_link_libraries(libslic3r libnest2d admesh diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_CutSurface.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_CutSurface.cpp new file mode 100644 --- /dev/null +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_CutSurface.cpp @@ -0,0 +1,10 @@ +--- src/libslic3r/CutSurface.cpp.orig 2024-03-01 11:43:14 UTC ++++ src/libslic3r/CutSurface.cpp +@@ -29,6 +29,7 @@ using namespace Slic3r; + using namespace Slic3r; + #include "ExPolygonsIndex.hpp" + ++#include + #include + #include + #include diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_EmbossShape.hpp b/cad/PrusaSlicer/files/patch-src_libslic3r_EmbossShape.hpp new file mode 100644 --- /dev/null +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_EmbossShape.hpp @@ -0,0 +1,11 @@ +--- src/libslic3r/EmbossShape.hpp.orig 2024-01-12 13:37:33 UTC ++++ src/libslic3r/EmbossShape.hpp +@@ -12,7 +12,7 @@ + #include "Point.hpp" // Transform3d + #include "ExPolygon.hpp" + #include "ExPolygonSerialize.hpp" +-#include "nanosvg/nanosvg.h" // NSVGimage ++#include "libnanosvg/nanosvg.h" // NSVGimage + + namespace Slic3r { + diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_Format_SL1__SVG.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_Format_SL1__SVG.cpp --- a/cad/PrusaSlicer/files/patch-src_libslic3r_Format_SL1__SVG.cpp +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_Format_SL1__SVG.cpp @@ -1,6 +1,6 @@ ---- src/libslic3r/Format/SL1_SVG.cpp.orig 2023-07-21 14:55:56 UTC +--- src/libslic3r/Format/SL1_SVG.cpp.orig 2023-12-12 14:21:21 UTC +++ src/libslic3r/Format/SL1_SVG.cpp -@@ -6,7 +6,8 @@ +@@ -10,7 +10,8 @@ #include "libslic3r/Format/ZipperArchiveImport.hpp" #define NANOSVG_IMPLEMENTATION diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_GCodeSender.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_GCodeSender.cpp --- a/cad/PrusaSlicer/files/patch-src_libslic3r_GCodeSender.cpp +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_GCodeSender.cpp @@ -1,6 +1,6 @@ ---- src/libslic3r/GCodeSender.cpp.orig 2023-07-24 22:05:38 UTC +--- src/libslic3r/GCodeSender.cpp.orig 2023-12-12 14:21:21 UTC +++ src/libslic3r/GCodeSender.cpp -@@ -8,7 +8,7 @@ +@@ -14,7 +14,7 @@ #include #include @@ -9,7 +9,7 @@ #include #endif #ifdef __APPLE__ -@@ -146,7 +146,7 @@ GCodeSender::set_baud_rate(unsigned int baud_rate) +@@ -152,7 +152,7 @@ GCodeSender::set_baud_rate(unsigned int baud_rate) if (ioctl(handle, TCSETS2, &ios)) printf("Error in TCSETS2: %s\n", strerror(errno)); diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_Geometry_VoronoiUtilsCgal.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_Geometry_VoronoiUtilsCgal.cpp new file mode 100644 --- /dev/null +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_Geometry_VoronoiUtilsCgal.cpp @@ -0,0 +1,17 @@ +--- src/libslic3r/Geometry/VoronoiUtilsCgal.cpp.orig 2024-03-01 11:50:11 UTC ++++ src/libslic3r/Geometry/VoronoiUtilsCgal.cpp +@@ -2,6 +2,7 @@ + ///|/ + ///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher + ///|/ ++#include + #include + #include + #include +@@ -325,4 +326,4 @@ VoronoiUtilsCgal::is_voronoi_diagram_planar_angle(cons + return true; + } + +-} // namespace Slic3r::Geometry +\ No newline at end of file ++} // namespace Slic3r::Geometry diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_MeshBoolean.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_MeshBoolean.cpp new file mode 100644 --- /dev/null +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_MeshBoolean.cpp @@ -0,0 +1,11 @@ +--- src/libslic3r/MeshBoolean.cpp.orig 2024-03-01 11:44:05 UTC ++++ src/libslic3r/MeshBoolean.cpp +@@ -8,6 +8,8 @@ + #include "libslic3r/TryCatchSignal.hpp" + #undef PI + ++#include ++ + // Include igl first. It defines "L" macro which then clashes with our localization + #include + #undef L diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_NSVGUtils.hpp b/cad/PrusaSlicer/files/patch-src_libslic3r_NSVGUtils.hpp --- a/cad/PrusaSlicer/files/patch-src_libslic3r_NSVGUtils.hpp +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_NSVGUtils.hpp @@ -1,11 +1,11 @@ ---- src/libslic3r/NSVGUtils.hpp.orig 2023-07-25 16:16:15 UTC +--- src/libslic3r/NSVGUtils.hpp.orig 2023-12-12 14:21:21 UTC +++ src/libslic3r/NSVGUtils.hpp -@@ -3,7 +3,7 @@ - +@@ -11,7 +11,7 @@ #include "Polygon.hpp" #include "ExPolygon.hpp" + #include "EmbossShape.hpp" // ExPolygonsWithIds -#include "nanosvg/nanosvg.h" // load SVG file +#include "libnanosvg/nanosvg.h" // load SVG file + // Helper function to work with nano svg namespace Slic3r { - diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_Platform.hpp b/cad/PrusaSlicer/files/patch-src_libslic3r_Platform.hpp --- a/cad/PrusaSlicer/files/patch-src_libslic3r_Platform.hpp +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_Platform.hpp @@ -1,6 +1,6 @@ ---- src/libslic3r/Platform.hpp.orig 2022-09-06 07:09:19 UTC +--- src/libslic3r/Platform.hpp.orig 2023-12-12 14:21:21 UTC +++ src/libslic3r/Platform.hpp -@@ -25,6 +25,7 @@ enum class PlatformFlavor +@@ -29,6 +29,7 @@ enum class PlatformFlavor WSL, // Microsoft's Windows on Linux (Linux kernel simulated on NTFS kernel) WSL2, // Microsoft's Windows on Linux, version 2 (virtual machine) OpenBSD, // For Platform::BSDUnix diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_Platform.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_Platform.cpp --- a/cad/PrusaSlicer/files/patch-src_libslic3r_Platform.cpp +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_Platform.cpp @@ -1,6 +1,6 @@ ---- src/libslic3r/Platform.cpp.orig 2022-09-06 07:09:19 UTC +--- src/libslic3r/Platform.cpp.orig 2023-12-12 14:21:21 UTC +++ src/libslic3r/Platform.cpp -@@ -86,6 +86,10 @@ void detect_platform() +@@ -90,6 +90,10 @@ void detect_platform() BOOST_LOG_TRIVIAL(info) << "Platform: OpenBSD"; s_platform = Platform::BSDUnix; s_platform_flavor = PlatformFlavor::OpenBSD; diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_SupportSpotsGenerator.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_SupportSpotsGenerator.cpp --- a/cad/PrusaSlicer/files/patch-src_libslic3r_SupportSpotsGenerator.cpp +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_SupportSpotsGenerator.cpp @@ -1,11 +1,11 @@ ---- src/libslic3r/SupportSpotsGenerator.cpp.orig 2023-07-25 08:36:31 UTC +--- src/libslic3r/SupportSpotsGenerator.cpp.orig 2024-02-29 13:03:32 UTC +++ src/libslic3r/SupportSpotsGenerator.cpp -@@ -849,7 +849,7 @@ std::tuple check_stabil - } - } +@@ -1054,7 +1054,7 @@ SliceMappings update_active_object_parts(const Layer } -- auto estimate_conn_strength = [bottom_z](const SliceConnection &conn) { -+ auto estimate_conn_strength = [bottom_z](const SliceConnection &conn) -> float { - if (conn.area < EPSILON) { // connection is empty, does not exists. Return max strength so that it is not picked as the - // weakest connection. - return INFINITY; + } + const float bottom_z = layer->bottom_z(); +- auto estimate_conn_strength = [bottom_z](const SliceConnection &conn) { ++ auto estimate_conn_strength = [bottom_z](const SliceConnection &conn) -> float { + if (conn.area < EPSILON) { // connection is empty, does not exists. Return max strength so that it is not picked as the + // weakest connection. + return INFINITY; diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_Triangulation.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_Triangulation.cpp new file mode 100644 --- /dev/null +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_Triangulation.cpp @@ -0,0 +1,12 @@ +--- src/libslic3r/Triangulation.cpp.orig 2024-03-01 11:48:14 UTC ++++ src/libslic3r/Triangulation.cpp +@@ -2,6 +2,9 @@ + ///|/ + ///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher + ///|/ ++ ++#include ++ + #include "Triangulation.hpp" + #include "IntersectionPoints.hpp" + #include diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_CMakeLists.txt b/cad/PrusaSlicer/files/patch-src_slic3r_CMakeLists.txt --- a/cad/PrusaSlicer/files/patch-src_slic3r_CMakeLists.txt +++ b/cad/PrusaSlicer/files/patch-src_slic3r_CMakeLists.txt @@ -1,7 +1,7 @@ ---- src/slic3r/CMakeLists.txt.orig 2023-06-19 12:07:14 UTC +--- src/slic3r/CMakeLists.txt.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/CMakeLists.txt -@@ -293,7 +293,7 @@ set(SLIC3R_GUI_SOURCES - Utils/WxFontUtils.hpp +@@ -333,7 +333,7 @@ set(SLIC3R_GUI_SOURCES + Utils/WifiScanner.cpp ) -find_package(NanoSVG REQUIRED) @@ -9,7 +9,7 @@ if (APPLE) list(APPEND SLIC3R_GUI_SOURCES -@@ -319,11 +319,12 @@ encoding_check(libslic3r_gui) +@@ -362,11 +362,12 @@ endforeach() encoding_check(libslic3r_gui) @@ -23,4 +23,4 @@ +elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") target_link_libraries(libslic3r_gui ${DBUS_LIBRARIES}) elseif (APPLE) - target_link_libraries(libslic3r_gui ${DISKARBITRATION_LIBRARY}) + target_link_libraries(libslic3r_gui ${DISKARBITRATION_LIBRARY} ${COREWLAN_LIBRARY}) diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_BitmapCache.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_BitmapCache.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_BitmapCache.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_BitmapCache.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/BitmapCache.cpp.orig 2023-07-21 12:45:35 UTC +--- src/slic3r/GUI/BitmapCache.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/BitmapCache.cpp -@@ -15,8 +15,9 @@ +@@ -20,8 +20,9 @@ #include #endif /* __WXGTK2__ */ @@ -12,7 +12,7 @@ namespace Slic3r { namespace GUI { -@@ -68,7 +69,7 @@ wxBitmapBundle* BitmapCache::insert_bndl(const std::st +@@ -73,7 +74,7 @@ wxBitmapBundle* BitmapCache::insert_bndl(const std::st wxVector bitmaps; std::set scales = {1.0}; @@ -21,7 +21,7 @@ #ifdef __APPLE__ scales.emplace(m_scale); -@@ -547,7 +548,7 @@ wxBitmapBundle BitmapCache::mksolid(size_t width_in, s +@@ -554,7 +555,7 @@ wxBitmapBundle BitmapCache::mksolid(size_t width_in, s wxVector bitmaps; std::set scales = { 1.0 }; diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.hpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.hpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.hpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/ConfigWizard.hpp.orig 2023-07-25 09:21:21 UTC +--- src/slic3r/GUI/ConfigWizard.hpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/ConfigWizard.hpp -@@ -22,7 +22,7 @@ namespace DownloaderUtils { +@@ -31,7 +31,7 @@ namespace DownloaderUtils { wxWindow* m_parent{ nullptr }; wxTextCtrl* m_input_path{ nullptr }; bool downloader_checked{ false }; @@ -9,7 +9,7 @@ bool perform_registration_linux{ false }; #endif // __linux__ -@@ -41,7 +41,7 @@ namespace DownloaderUtils { +@@ -50,7 +50,7 @@ namespace DownloaderUtils { bool on_finish(); bool perform_register(const std::string& path_override = {}); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/ConfigWizard.cpp.orig 2023-07-21 14:05:27 UTC +--- src/slic3r/GUI/ConfigWizard.cpp.orig 2024-02-29 13:03:32 UTC +++ src/slic3r/GUI/ConfigWizard.cpp -@@ -60,7 +60,7 @@ +@@ -69,7 +69,7 @@ #include "slic3r/GUI/I18N.hpp" #include "slic3r/Config/Version.hpp" @@ -9,7 +9,7 @@ #define wxLinux_gtk3 true #else #define wxLinux_gtk3 false -@@ -583,7 +583,7 @@ void PageWelcome::set_run_reason(ConfigWizard::RunReas +@@ -596,7 +596,7 @@ void PageWelcome::set_run_reason(ConfigWizard::RunReas const bool data_empty = run_reason == ConfigWizard::RR_DATA_EMPTY; welcome_text->Show(data_empty); cbox_reset->Show(!data_empty); @@ -18,16 +18,16 @@ if (!DesktopIntegrationDialog::is_integrated()) cbox_integrate->Show(true); else -@@ -1474,7 +1474,7 @@ PageDownloader::PageDownloader(ConfigWizard* parent) - " The model will be downloaded into folder you choose bellow." - ), SLIC3R_APP_NAME)); +@@ -1518,7 +1518,7 @@ PageDownloader::PageDownloader(ConfigWizard* parent) + )); + } -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) append_text(wxString::Format(_L( "On Linux systems the process of registration also creates desktop integration files for this version of application." ))); -@@ -1535,7 +1535,7 @@ bool DownloaderUtils::Worker::perform_register(const s +@@ -1579,7 +1579,7 @@ bool DownloaderUtils::Worker::perform_register(const s } //key_full = "\"C:\\Program Files\\Prusa3D\\PrusaSlicer\\prusa-slicer-console.exe\" \"%1\""; key_full = key_string; @@ -36,7 +36,7 @@ // Apple registers for custom url in info.plist thus it has to be already registered since build. // The url will always trigger opening of prusaslicer and we have to check that user has allowed it. (GUI_App::MacOpenURL is the triggered method) #else -@@ -1554,7 +1554,7 @@ void DownloaderUtils::Worker::deregister() +@@ -1598,7 +1598,7 @@ void DownloaderUtils::Worker::deregister() return; } key_full = key_string; @@ -45,7 +45,7 @@ // TODO #else BOOST_LOG_TRIVIAL(debug) << "DesktopIntegrationDialog::undo_downloader_registration"; -@@ -3106,7 +3106,7 @@ bool ConfigWizard::priv::apply_config(AppConfig *app_c +@@ -3063,7 +3063,7 @@ bool ConfigWizard::priv::apply_config(AppConfig *app_c if ((check_unsaved_preset_changes = install_bundles.size() > 0)) header = _L_PLURAL("A new vendor was installed and one of its printers will be activated", "New vendors were installed and one of theirs printers will be activated", install_bundles.size()); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_DesktopIntegrationDialog.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_DesktopIntegrationDialog.hpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_DesktopIntegrationDialog.hpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_DesktopIntegrationDialog.hpp @@ -1,12 +1,15 @@ ---- src/slic3r/GUI/DesktopIntegrationDialog.hpp.orig 2023-07-25 09:25:50 UTC +--- src/slic3r/GUI/DesktopIntegrationDialog.hpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/DesktopIntegrationDialog.hpp -@@ -1,4 +1,4 @@ +@@ -2,7 +2,7 @@ + ///|/ + ///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher + ///|/ -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) #ifndef slic3r_DesktopIntegrationDialog_hpp_ #define slic3r_DesktopIntegrationDialog_hpp_ -@@ -42,4 +42,4 @@ class DesktopIntegrationDialog : public wxDialog (priv +@@ -46,4 +46,4 @@ class DesktopIntegrationDialog : public wxDialog (priv } // namespace Slic3r #endif // slic3r_DesktopIntegrationDialog_hpp_ diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_DesktopIntegrationDialog.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_DesktopIntegrationDialog.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_DesktopIntegrationDialog.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_DesktopIntegrationDialog.cpp @@ -1,6 +1,9 @@ ---- src/slic3r/GUI/DesktopIntegrationDialog.cpp.orig 2023-07-25 09:24:17 UTC +--- src/slic3r/GUI/DesktopIntegrationDialog.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/DesktopIntegrationDialog.cpp -@@ -1,4 +1,4 @@ +@@ -3,7 +3,7 @@ + ///|/ + ///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher + ///|/ -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) #include "DesktopIntegrationDialog.hpp" diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ExtraRenderers.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ExtraRenderers.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ExtraRenderers.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ExtraRenderers.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/ExtraRenderers.cpp.orig 2023-07-25 09:27:23 UTC +--- src/slic3r/GUI/ExtraRenderers.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/ExtraRenderers.cpp -@@ -327,7 +327,7 @@ wxWindow* BitmapChoiceRenderer::CreateEditorCtrl(wxWin +@@ -343,7 +343,7 @@ wxWindow* BitmapChoiceRenderer::CreateEditorCtrl(wxWin c_editor->SetSelection(atoi(data.GetText().c_str())); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Field.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Field.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Field.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Field.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/Field.cpp.orig 2023-07-25 09:29:18 UTC +--- src/slic3r/GUI/Field.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/Field.cpp -@@ -199,7 +199,7 @@ static wxString na_value(bool for_spin_ctrl = false) +@@ -221,7 +221,7 @@ bool Field::is_matched(const std::string& string, cons static wxString na_value(bool for_spin_ctrl = false) { diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GLCanvas3D.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GLCanvas3D.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GLCanvas3D.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GLCanvas3D.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/GLCanvas3D.cpp.orig 2023-07-25 09:31:07 UTC +--- src/slic3r/GUI/GLCanvas3D.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/GLCanvas3D.cpp -@@ -97,7 +97,7 @@ float RetinaHelper::get_scale_factor() { return float( +@@ -108,7 +108,7 @@ float RetinaHelper::get_scale_factor() { return float( #endif // __WXGTK3__ // Fixed the collision between BuildVolume::Type::Convex and macro Convex defined inside /usr/include/X11/X.h that is included by WxWidgets 3.0. diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GLTexture.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GLTexture.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GLTexture.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GLTexture.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/GLTexture.cpp.orig 2023-07-25 16:08:09 UTC +--- src/slic3r/GUI/GLTexture.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/GLTexture.cpp -@@ -21,8 +21,8 @@ +@@ -25,8 +25,8 @@ #define STB_DXT_IMPLEMENTATION #include "stb_dxt/stb_dxt.h" diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI.hpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI.hpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI.hpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/GUI.hpp.orig 2023-07-21 13:10:36 UTC +--- src/slic3r/GUI/GUI.hpp.orig 2024-02-29 13:03:32 UTC +++ src/slic3r/GUI/GUI.hpp -@@ -84,7 +84,7 @@ void desktop_open_folder(const boost::filesystem::path +@@ -88,7 +88,7 @@ void desktop_open_folder(const boost::filesystem::path // Ask the destop to open the directory specified by path using the default file explorer. void desktop_open_folder(const boost::filesystem::path& path); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/GUI.cpp.orig 2023-07-21 15:02:36 UTC +--- src/slic3r/GUI/GUI.cpp.orig 2024-02-29 13:03:32 UTC +++ src/slic3r/GUI/GUI.cpp -@@ -481,7 +481,7 @@ void desktop_open_folder(const boost::filesystem::path +@@ -492,7 +492,7 @@ void desktop_open_folder(const boost::filesystem::path const wxString widepath = path.wstring(); const wchar_t* argv[] = { L"explorer", widepath.GetData(), nullptr }; ::wxExecute(const_cast(argv), wxEXEC_ASYNC, nullptr); @@ -9,7 +9,7 @@ const char* argv[] = { "open", path.string().c_str(), nullptr }; ::wxExecute(const_cast(argv), wxEXEC_ASYNC, nullptr); #else -@@ -490,7 +490,7 @@ void desktop_open_folder(const boost::filesystem::path +@@ -501,7 +501,7 @@ void desktop_open_folder(const boost::filesystem::path #endif } diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/GUI_App.cpp.orig 2023-06-19 12:07:14 UTC +--- src/slic3r/GUI/GUI_App.cpp.orig 2024-02-29 13:03:32 UTC +++ src/slic3r/GUI/GUI_App.cpp -@@ -395,7 +395,7 @@ class SplashScreen : public wxSplashScreen (private) +@@ -403,7 +403,7 @@ class SplashScreen : public wxSplashScreen (private) }; @@ -9,7 +9,7 @@ bool static check_old_linux_datadir(const wxString& app_name) { // If we are on Linux and the datadir does not exist yet, look into the old // location where the datadir was before version 2.3. If we find it there, -@@ -973,7 +973,7 @@ void GUI_App::init_app_config() +@@ -937,7 +937,7 @@ void GUI_App::init_app_config() // Mac : "~/Library/Application Support/Slic3r" if (data_dir().empty()) { @@ -18,8 +18,8 @@ set_data_dir(wxStandardPaths::Get().GetUserDataDir().ToUTF8().data()); #else // Since version 2.3, config dir on Linux is in ${XDG_CONFIG_HOME}. -@@ -1130,7 +1130,8 @@ bool GUI_App::on_init_inner() - { +@@ -1107,7 +1107,8 @@ bool GUI_App::on_init_inner() + // Set initialization of image handlers before any UI actions - See GH issue #7469 wxInitAllImageHandlers(); - @@ -28,7 +28,7 @@ #if defined(_WIN32) && ! defined(_WIN64) // Win32 32bit build. if (wxPlatformInfo::Get().GetArchName().substr(0, 2) == "64") { -@@ -1158,7 +1159,7 @@ bool GUI_App::on_init_inner() +@@ -1135,7 +1136,7 @@ bool GUI_App::on_init_inner() wxCHECK_MSG(wxDirExists(resources_dir), false, wxString::Format("Resources path does not exist or is not a directory: %s", resources_dir)); @@ -37,7 +37,7 @@ if (! check_old_linux_datadir(GetAppName())) { std::cerr << "Quitting, user chose to move their data to new location." << std::endl; return false; -@@ -1263,7 +1264,7 @@ bool GUI_App::on_init_inner() +@@ -1240,7 +1241,7 @@ bool GUI_App::on_init_inner() if (!default_splashscreen_pos) // revert "restore_win_position" value if application wasn't crashed get_app_config()->set("restore_win_position", "1"); @@ -46,7 +46,7 @@ wxYield(); #endif scrn->SetText(_L("Loading configuration")+ dots); -@@ -1411,7 +1412,7 @@ bool GUI_App::on_init_inner() +@@ -1393,7 +1394,7 @@ bool GUI_App::on_init_inner() // and wxEVT_SET_FOCUS before GUI_App::post_init is called) wasn't called before GUI_App::post_init and OpenGL wasn't initialized. // Since issue #9774 Where same problem occured on MacOS Ventura, we decided to have this check on MacOS as well. @@ -55,7 +55,7 @@ if (!m_post_initialized && m_opengl_initialized) { #else if (!m_post_initialized) { -@@ -2054,7 +2055,7 @@ bool GUI_App::switch_language() +@@ -2096,7 +2097,7 @@ bool GUI_App::switch_language() } } @@ -64,7 +64,7 @@ static const wxLanguageInfo* linux_get_existing_locale_language(const wxLanguageInfo* language, const wxLanguageInfo* system_language) { -@@ -2253,7 +2254,7 @@ bool GUI_App::load_language(wxString language, bool in +@@ -2298,7 +2299,7 @@ bool GUI_App::load_language(wxString language, bool in m_language_info_best = wxLocale::FindLanguageInfo(best_language); BOOST_LOG_TRIVIAL(trace) << boost::format("Best translation language detected (may be different from user locales): %1%") % m_language_info_best->CanonicalName.ToUTF8().data(); } @@ -73,7 +73,7 @@ wxString lc_all; if (wxGetEnv("LC_ALL", &lc_all) && ! lc_all.IsEmpty()) { // Best language returned by wxWidgets on Linux apparently does not respect LC_ALL. -@@ -2262,6 +2263,7 @@ bool GUI_App::load_language(wxString language, bool in +@@ -2307,6 +2308,7 @@ bool GUI_App::load_language(wxString language, bool in } #endif } @@ -81,7 +81,7 @@ } const wxLanguageInfo *language_info = language.empty() ? nullptr : wxLocale::FindLanguageInfo(language); -@@ -2306,7 +2308,7 @@ bool GUI_App::load_language(wxString language, bool in +@@ -2351,7 +2353,7 @@ bool GUI_App::load_language(wxString language, bool in } else if (m_language_info_system != nullptr && language_info->CanonicalName.BeforeFirst('_') == m_language_info_system->CanonicalName.BeforeFirst('_')) language_info = m_language_info_system; @@ -90,7 +90,7 @@ // If we can't find this locale , try to use different one for the language // instead of just reporting that it is impossible to switch. if (! wxLocale::IsAvailable(language_info->Language)) { -@@ -2426,7 +2428,7 @@ void GUI_App::add_config_menu(wxMenuBar *menu) +@@ -2471,7 +2473,7 @@ void GUI_App::add_config_menu(wxMenuBar *menu) local_menu->Append(config_id_base + ConfigMenuTakeSnapshot, _L("Take Configuration &Snapshot"), _L("Capture a configuration snapshot")); local_menu->Append(config_id_base + ConfigMenuUpdateConf, _L("Check for Configuration Updates"), _L("Check for configuration updates")); local_menu->Append(config_id_base + ConfigMenuUpdateApp, _L("Check for Application Updates"), _L("Check for new version of application")); @@ -99,7 +99,7 @@ //if (DesktopIntegrationDialog::integration_possible()) local_menu->Append(config_id_base + ConfigMenuDesktopIntegration, _L("Desktop Integration"), _L("Desktop Integration")); #endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) -@@ -2473,7 +2475,7 @@ void GUI_App::add_config_menu(wxMenuBar *menu) +@@ -2519,7 +2521,7 @@ void GUI_App::add_config_menu(wxMenuBar *menu) case ConfigMenuUpdateApp: app_version_check(true); break; @@ -108,7 +108,7 @@ case ConfigMenuDesktopIntegration: show_desktop_integration_dialog(); break; -@@ -3090,7 +3092,7 @@ void GUI_App::show_desktop_integration_dialog() +@@ -3155,7 +3157,7 @@ void GUI_App::show_desktop_integration_dialog() void GUI_App::show_desktop_integration_dialog() { @@ -117,7 +117,7 @@ //wxCHECK_MSG(mainframe != nullptr, false, "Internal error: Main frame not created / null"); DesktopIntegrationDialog dialog(mainframe); dialog.ShowModal(); -@@ -3110,7 +3112,7 @@ void GUI_App::show_downloader_registration_dialog() +@@ -3175,7 +3177,7 @@ void GUI_App::show_downloader_registration_dialog() if (msg.ShowModal() == wxID_YES) { auto downloader_worker = new DownloaderUtils::Worker(nullptr); downloader_worker->perform_register(app_config->get("url_downloader_dest")); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Factories.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Factories.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Factories.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Factories.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/GUI_Factories.cpp.orig 2023-07-21 13:55:55 UTC +--- src/slic3r/GUI/GUI_Factories.cpp.orig 2024-02-29 13:03:32 UTC +++ src/slic3r/GUI/GUI_Factories.cpp -@@ -1345,7 +1345,7 @@ void MenuFactory::sys_color_changed(wxMenuBar* menubar +@@ -1466,7 +1466,7 @@ void MenuFactory::sys_color_changed(wxMenuBar* menubar for (size_t id = 0; id < menubar->GetMenuCount(); id++) { wxMenu* menu = menubar->GetMenu(id); sys_color_changed_menu(menu); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__ObjectLayers.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__ObjectLayers.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__ObjectLayers.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__ObjectLayers.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/GUI_ObjectLayers.cpp.orig 2023-07-25 10:52:56 UTC +--- src/slic3r/GUI/GUI_ObjectLayers.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/GUI_ObjectLayers.cpp -@@ -344,7 +344,7 @@ LayerRangeEditor::LayerRangeEditor( ObjectLayers* pare +@@ -348,7 +348,7 @@ LayerRangeEditor::LayerRangeEditor( ObjectLayers* pare m_enter_pressed = true; // Workaround! Under Linux we have to use CallAfter() to avoid crash after pressing ENTER key // see #7531, #8055, #8408 @@ -9,7 +9,7 @@ wxTheApp->CallAfter([this, edit_fn]() { #endif // If LayersList wasn't updated/recreated, we can call wxEVT_KILL_FOCUS.Skip() -@@ -359,7 +359,7 @@ LayerRangeEditor::LayerRangeEditor( ObjectLayers* pare +@@ -363,7 +363,7 @@ LayerRangeEditor::LayerRangeEditor( ObjectLayers* pare SetValue(m_valid_value); m_call_kill_focus = true; } diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__ObjectManipulation.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__ObjectManipulation.cpp deleted file mode 100644 --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__ObjectManipulation.cpp +++ /dev/null @@ -1,12 +0,0 @@ ---- src/slic3r/GUI/GUI_ObjectManipulation.cpp.orig 2023-07-21 13:50:11 UTC -+++ src/slic3r/GUI/GUI_ObjectManipulation.cpp -@@ -490,7 +490,8 @@ void ObjectManipulation::Show(const bool show) - const Selection& selection = wxGetApp().plater()->canvas3D()->get_selection(); - bool show_world_local_combo = wxGetApp().get_mode() != comSimple && (selection.is_single_full_instance() || selection.is_single_volume_or_modifier()); - if (selection.is_single_volume_or_modifier() && m_word_local_combo->GetCount() < 3) { --#ifdef __linux__ -+ -+#if defined(__linux__) || defined (__FreeBSD__) - m_word_local_combo->Insert(coordinate_type_str(ECoordinatesType::Local), 2); - #else - m_word_local_combo->Insert(coordinate_type_str(ECoordinatesType::Local), wxNullBitmap, 2); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.hpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.hpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.hpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/GUI_Preview.hpp.orig 2023-07-25 11:01:59 UTC +--- src/slic3r/GUI/GUI_Preview.hpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/GUI_Preview.hpp -@@ -85,7 +85,7 @@ class Preview : public wxPanel +@@ -89,7 +89,7 @@ class Preview : public wxPanel BackgroundSlicingProcess* m_process; GCodeProcessorResult* m_gcode_result; diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/GUI_Preview.cpp.orig 2023-07-25 10:57:11 UTC +--- src/slic3r/GUI/GUI_Preview.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/GUI_Preview.cpp -@@ -292,7 +292,7 @@ void Preview::reload_print(bool keep_volumes) +@@ -303,7 +303,7 @@ void Preview::load_print(bool keep_z_range) void Preview::reload_print(bool keep_volumes) { @@ -9,7 +9,7 @@ // We are getting mysterious crashes on Linux in gtk due to OpenGL context activation GH #1874 #1955. // So we are applying a workaround here: a delayed release of OpenGL vertex buffers. if (!IsShown()) -@@ -302,14 +302,14 @@ void Preview::reload_print(bool keep_volumes) +@@ -313,14 +313,14 @@ void Preview::reload_print(bool keep_volumes) } #endif /* __linux__ */ if ( diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Utils.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Utils.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Utils.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Utils.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/GUI_Utils.cpp.orig 2023-07-25 11:03:21 UTC +--- src/slic3r/GUI/GUI_Utils.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/GUI_Utils.cpp -@@ -48,7 +48,7 @@ void on_window_geometry(wxTopLevelWindow *tlw, std::fu +@@ -53,7 +53,7 @@ void on_window_geometry(wxTopLevelWindow *tlw, std::fu // cf. https://groups.google.com/forum/#!topic/wx-users/c7ntMt6piRI // OTOH the geometry is available very soon, so we can call the callback right away callback(); @@ -9,7 +9,7 @@ tlw->Bind(wxEVT_SHOW, [=](wxShowEvent &evt) { // On Linux, the geometry is only available after wxEVT_SHOW + CallAfter // cf. https://groups.google.com/forum/?pli=1#!topic/wx-users/fERSXdpVwAI -@@ -116,7 +116,7 @@ int get_dpi_for_window(const wxWindow *window) +@@ -121,7 +121,7 @@ int get_dpi_for_window(const wxWindow *window) if (hdc == NULL) { return DPI_DEFAULT; } return GetDeviceCaps(hdc, LOGPIXELSX); } diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Gizmos_GLGizmoEmboss.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Gizmos_GLGizmoEmboss.cpp deleted file mode 100644 --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Gizmos_GLGizmoEmboss.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp.orig 2023-07-25 16:07:22 UTC -+++ src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp -@@ -29,7 +29,7 @@ - #include "libslic3r/BuildVolume.hpp" - - #include "imgui/imgui_stdlib.h" // using std::string for inputs --#include "nanosvg/nanosvg.h" // load SVG file -+#include "libnanosvg/nanosvg.h" // load SVG file - - #include - #include diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Gizmos_GLGizmoSVG.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Gizmos_GLGizmoSVG.cpp new file mode 100644 --- /dev/null +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Gizmos_GLGizmoSVG.cpp @@ -0,0 +1,20 @@ +--- src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp.orig 2024-02-29 13:03:32 UTC ++++ src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp +@@ -23,7 +23,7 @@ + #include "libslic3r/ClipperUtils.hpp" // union_ex + + #include "imgui/imgui_stdlib.h" // using std::string for inputs +-#include "nanosvg/nanosvg.h" // load SVG file ++#include "libnanosvg/nanosvg.h" // load SVG file + + #include // detection of change DPI + #include +@@ -560,7 +560,7 @@ void GLGizmoSVG::on_dragging(const UpdateData &data) { + void GLGizmoSVG::on_dragging(const UpdateData &data) { m_rotate_gizmo.dragging(data); } + + #include "slic3r/GUI/BitmapCache.hpp" +-#include "nanosvg/nanosvgrast.h" ++#include "libnanosvg/nanosvgrast.h" + #include "libslic3r/AABBTreeLines.hpp" // aabb lines for draw filled expolygon + + namespace{ diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_IconManager.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_IconManager.cpp new file mode 100644 --- /dev/null +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_IconManager.cpp @@ -0,0 +1,13 @@ +--- src/slic3r/GUI/IconManager.cpp.orig 2024-01-12 13:38:59 UTC ++++ src/slic3r/GUI/IconManager.cpp +@@ -6,8 +6,8 @@ + #include + #include + #include +-#include "nanosvg/nanosvg.h" +-#include "nanosvg/nanosvgrast.h" ++#include "libnanosvg/nanosvg.h" ++#include "libnanosvg/nanosvgrast.h" + #include "libslic3r/Utils.hpp" // ScopeGuard + + #include "3DScene.hpp" // glsafe diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ImGuiWrapper.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ImGuiWrapper.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ImGuiWrapper.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ImGuiWrapper.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/ImGuiWrapper.cpp.orig 2023-07-25 16:14:00 UTC +--- src/slic3r/GUI/ImGuiWrapper.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/ImGuiWrapper.cpp -@@ -35,8 +35,8 @@ +@@ -40,8 +40,8 @@ #include "GUI_App.hpp" #include "../Utils/MacDarkMode.hpp" diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.hpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.hpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.hpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/InstanceCheck.hpp.orig 2023-07-25 11:12:36 UTC +--- src/slic3r/GUI/InstanceCheck.hpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/InstanceCheck.hpp -@@ -11,7 +11,7 @@ +@@ -15,7 +15,7 @@ #include @@ -9,7 +9,7 @@ #include #include #include -@@ -38,7 +38,7 @@ class MainFrame; +@@ -42,7 +42,7 @@ namespace GUI { class MainFrame; diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/InstanceCheck.cpp.orig 2023-06-19 12:07:14 UTC +--- src/slic3r/GUI/InstanceCheck.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/InstanceCheck.cpp -@@ -23,7 +23,7 @@ +@@ -27,7 +27,7 @@ #include #endif //WIN32 @@ -9,7 +9,7 @@ #include /* Pull in all of D-Bus headers. */ #endif //__linux__ -@@ -222,7 +222,7 @@ namespace instance_check_internal +@@ -226,7 +226,7 @@ namespace instance_check_internal return false; } @@ -18,7 +18,7 @@ static bool send_message(const std::string &message_text, const std::string &version) { -@@ -310,7 +310,7 @@ bool instance_check(int argc, char** argv, bool app_co +@@ -314,7 +314,7 @@ bool instance_check(int argc, char** argv, bool app_co hashed_path = std::hash{}(boost::filesystem::system_complete(argv[0]).string()); #else boost::system::error_code ec; diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_KBShortcutsDialog.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_KBShortcutsDialog.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_KBShortcutsDialog.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_KBShortcutsDialog.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/KBShortcutsDialog.cpp.orig 2023-07-25 11:17:47 UTC +--- src/slic3r/GUI/KBShortcutsDialog.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/KBShortcutsDialog.cpp -@@ -54,7 +54,7 @@ KBShortcutsDialog::KBShortcutsDialog() +@@ -59,7 +59,7 @@ KBShortcutsDialog::KBShortcutsDialog() main_sizer->SetSizeHints(this); this->CenterOnParent(); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Mouse3DController.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Mouse3DController.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Mouse3DController.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Mouse3DController.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/Mouse3DController.cpp.orig 2023-07-25 12:02:33 UTC +--- src/slic3r/GUI/Mouse3DController.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/Mouse3DController.cpp -@@ -885,7 +885,7 @@ bool Mouse3DController::connect_device() +@@ -890,7 +890,7 @@ bool Mouse3DController::connect_device() for (const DetectedDevices::value_type& device : detected_devices) { if (device.second.size() == 1) { @@ -9,7 +9,7 @@ hid_device* test_device = hid_open(device.first.first, device.first.second, nullptr); if (test_device == nullptr) { BOOST_LOG_TRIVIAL(error) << "3DConnexion device cannot be opened: " << device.second.front().path << -@@ -910,7 +910,7 @@ bool Mouse3DController::connect_device() +@@ -915,7 +915,7 @@ bool Mouse3DController::connect_device() std::cout << "Test device: " << std::hex << device.first.first << std::dec << "/" << std::hex << device.first.second << std::dec << " \"" << data.path << "\""; #endif // ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OpenGLManager.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OpenGLManager.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OpenGLManager.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OpenGLManager.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/OpenGLManager.cpp.orig 2023-07-21 19:13:54 UTC +--- src/slic3r/GUI/OpenGLManager.cpp.orig 2024-02-29 13:03:32 UTC +++ src/slic3r/GUI/OpenGLManager.cpp -@@ -336,7 +336,7 @@ bool OpenGLManager::init_gl() +@@ -344,7 +344,7 @@ bool OpenGLManager::init_gl() glewExperimental = true; #endif // ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES GLenum err = glewInit(); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OptionsGroup.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OptionsGroup.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OptionsGroup.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OptionsGroup.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/OptionsGroup.cpp.orig 2023-07-25 12:28:59 UTC +--- src/slic3r/GUI/OptionsGroup.cpp.orig 2024-02-29 13:03:32 UTC +++ src/slic3r/GUI/OptionsGroup.cpp -@@ -1051,7 +1051,7 @@ void ogStaticText::SetPathEnd(const std::string& link) +@@ -1081,7 +1081,7 @@ void ogStaticText::SetPathEnd(const std::string& link) void ogStaticText::SetPathEnd(const std::string& link) { @@ -9,7 +9,7 @@ Bind(wxEVT_ENTER_WINDOW, [this, link](wxMouseEvent& event) { SetToolTip(OptionsGroup::get_url(get_app_config()->get("suppress_hyperlinks") != "1" ? link : std::string())); -@@ -1104,7 +1104,7 @@ void ogStaticText::FocusText(bool focus) +@@ -1134,7 +1134,7 @@ void ogStaticText::FocusText(bool focus) SetFont(focus ? Slic3r::GUI::wxGetApp().link_font() : Slic3r::GUI::wxGetApp().normal_font()); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PhysicalPrinterDialog.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PhysicalPrinterDialog.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PhysicalPrinterDialog.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PhysicalPrinterDialog.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/PhysicalPrinterDialog.cpp.orig 2023-06-19 12:07:14 UTC +--- src/slic3r/GUI/PhysicalPrinterDialog.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/PhysicalPrinterDialog.cpp -@@ -458,7 +458,7 @@ void PhysicalPrinterDialog::build_printhost_settings(C +@@ -467,7 +467,7 @@ void PhysicalPrinterDialog::build_printhost_settings(C // Always fill in the "printhost_port" combo box from the config and select it. { Choice* choice = dynamic_cast(m_optgroup->get_field("printhost_port")); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/Plater.cpp.orig 2023-06-19 12:07:14 UTC +--- src/slic3r/GUI/Plater.cpp.orig 2024-02-29 13:03:32 UTC +++ src/slic3r/GUI/Plater.cpp -@@ -2452,7 +2452,7 @@ std::vector Plater::priv::load_files(const std +@@ -2555,7 +2555,7 @@ std::vector Plater::priv::load_files(const std // when loading a project file. However, creating the dialog on heap causes issues on macOS, where it does not // appear at all. Therefore, we create the dialog on stack on Win and macOS, and on heap on Linux, which // is the only system that needed the workarounds in the first place. @@ -9,7 +9,7 @@ auto progress_dlg = new wxProgressDialog(loading, "", 100, find_toplevel_parent(q), wxPD_APP_MODAL | wxPD_AUTO_HIDE); Slic3r::ScopeGuard([&progress_dlg](){ if (progress_dlg) progress_dlg->Destroy(); progress_dlg = nullptr; }); #else -@@ -2498,7 +2498,7 @@ std::vector Plater::priv::load_files(const std +@@ -2602,7 +2602,7 @@ std::vector Plater::priv::load_files(const std bool is_project_file = type_prusa; try { if (type_3mf || type_zip_amf) { @@ -18,7 +18,7 @@ // On Linux Constructor of the ProgressDialog calls DisableOtherWindows() function which causes a disabling of all children of the find_toplevel_parent(q) // And a destructor of the ProgressDialog calls ReenableOtherWindows() function which revert previously disabled children. // But if printer technology will be changes during project loading, -@@ -4428,7 +4428,7 @@ void Plater::priv::on_right_click(RBtnEvent& evt) +@@ -4572,7 +4572,7 @@ void Plater::priv::on_right_click(RBtnEvent& evt) Vec2d mouse_position = evt.data.first; wxPoint position(static_cast(mouse_position.x()), static_cast(mouse_position.y())); @@ -27,7 +27,7 @@ // For some reason on Linux the menu isn't displayed if position is // specified (even though the position is sane). position = wxDefaultPosition; -@@ -5281,7 +5281,7 @@ void Plater::load_project(const wxString& filename) +@@ -5425,7 +5425,7 @@ void Plater::load_project(const wxString& filename) p->reset(); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Preferences.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Preferences.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Preferences.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Preferences.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/Preferences.cpp.orig 2023-07-25 12:35:52 UTC +--- src/slic3r/GUI/Preferences.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/Preferences.cpp -@@ -18,7 +18,7 @@ +@@ -28,7 +28,7 @@ #ifdef WIN32 #include #endif // WIN32 @@ -9,7 +9,7 @@ #include "DesktopIntegrationDialog.hpp" #endif //__linux__ -@@ -688,7 +688,7 @@ void PreferencesDialog::accept(wxEvent&) +@@ -758,7 +758,7 @@ void PreferencesDialog::accept(wxEvent&) downloader->allow(it->second == "1"); if (!downloader->on_finish()) return; diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetComboBoxes.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetComboBoxes.hpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetComboBoxes.hpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetComboBoxes.hpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/PresetComboBoxes.hpp.orig 2023-07-25 12:39:49 UTC +--- src/slic3r/GUI/PresetComboBoxes.hpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/PresetComboBoxes.hpp -@@ -115,7 +115,7 @@ class PresetComboBox : public BitmapComboBox (protecte +@@ -119,7 +119,7 @@ class PresetComboBox : public BitmapComboBox (protecte void validate_selection(bool predicate = false); void update_selection(); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetComboBoxes.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetComboBoxes.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetComboBoxes.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetComboBoxes.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/PresetComboBoxes.cpp.orig 2023-07-25 12:38:23 UTC +--- src/slic3r/GUI/PresetComboBoxes.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/PresetComboBoxes.cpp -@@ -779,7 +779,7 @@ void PlaterPresetComboBox::show_edit_menu() +@@ -787,7 +787,7 @@ void PlaterPresetComboBox::show_edit_menu() [this](wxCommandEvent&) { this->switch_to_tab(); }, "cog", menu, []() { return true; }, wxGetApp().plater()); if (m_type == Preset::TYPE_FILAMENT) { diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PrintHostDialogs.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PrintHostDialogs.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PrintHostDialogs.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PrintHostDialogs.cpp @@ -1,17 +1,17 @@ ---- src/slic3r/GUI/PrintHostDialogs.cpp.orig 2023-07-25 12:41:51 UTC +--- src/slic3r/GUI/PrintHostDialogs.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/PrintHostDialogs.cpp -@@ -100,8 +100,8 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::pat +@@ -105,8 +105,8 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::pat if (size_t extension_start = recent_path.find_last_of('.'); extension_start != std::string::npos) m_valid_suffix = recent_path.substr(extension_start); // .gcode suffix control - auto validate_path = [this](const wxString &path) -> bool { -- if (! path.Lower().EndsWith(m_valid_suffix.Lower())) { +- if (!path.Lower().EndsWith(m_valid_suffix.Lower())) { + auto validate_path = [this](const std::wstring &path) -> bool { + if (! (new wxString(path))->Lower().EndsWith(m_valid_suffix.Lower())) { MessageDialog msg_wingow(this, wxString::Format(_L("Upload filename doesn't end with \"%s\". Do you wish to continue?"), m_valid_suffix), wxString(SLIC3R_APP_NAME), wxYES | wxNO); - if (msg_wingow.ShowModal() == wxID_NO) - return false; -@@ -111,7 +111,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::pat + return msg_wingow.ShowModal() == wxID_YES; + } +@@ -115,7 +115,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::pat auto* btn_ok = add_button(wxID_OK, true, _L("Upload")); btn_ok->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) { @@ -20,7 +20,7 @@ post_upload_action = PrintHostPostUploadAction::None; EndDialog(wxID_OK); } -@@ -121,7 +121,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::pat +@@ -125,7 +125,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::pat if (post_actions.has(PrintHostPostUploadAction::QueuePrint)) { auto* btn_print = add_button(wxID_ADD, false, _L("Upload to Queue")); btn_print->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) { @@ -29,7 +29,7 @@ post_upload_action = PrintHostPostUploadAction::QueuePrint; EndDialog(wxID_OK); } -@@ -131,7 +131,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::pat +@@ -135,7 +135,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::pat if (post_actions.has(PrintHostPostUploadAction::StartPrint)) { auto* btn_print = add_button(wxID_YES, false, _L("Upload and Print")); btn_print->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) { @@ -38,7 +38,7 @@ post_upload_action = PrintHostPostUploadAction::StartPrint; EndDialog(wxID_OK); } -@@ -142,7 +142,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::pat +@@ -146,7 +146,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::pat // Using wxID_MORE as a button identifier to be different from the other buttons, wxID_MORE has no other meaning here. auto* btn_simulate = add_button(wxID_MORE, false, _L("Upload and Simulate")); btn_simulate->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) { @@ -47,7 +47,7 @@ post_upload_action = PrintHostPostUploadAction::StartSimulation; EndDialog(wxID_OK); } -@@ -152,7 +152,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::pat +@@ -156,7 +156,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::pat add_button(wxID_CANCEL); finalize(); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_RemovableDriveManager.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_RemovableDriveManager.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_RemovableDriveManager.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_RemovableDriveManager.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/RemovableDriveManager.cpp.orig 2023-07-25 12:47:49 UTC +--- src/slic3r/GUI/RemovableDriveManager.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/RemovableDriveManager.cpp -@@ -738,7 +738,7 @@ namespace search_for_drives_internal +@@ -744,7 +744,7 @@ namespace search_for_drives_internal //confirms if the file is removable drive and adds it to vector if ( diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp @@ -1,15 +1,6 @@ ---- src/slic3r/GUI/Tab.cpp.orig 2023-07-23 21:37:19 UTC +--- src/slic3r/GUI/Tab.cpp.orig 2024-02-29 13:03:32 UTC +++ src/slic3r/GUI/Tab.cpp -@@ -243,7 +243,7 @@ void Tab::create_preset_tab() - m_h_buttons_sizer->AddSpacer(int(8*scale_factor)); - m_h_buttons_sizer->Add(m_btn_compare_preset, 0, wxALIGN_CENTER_VERTICAL); - -- m_top_hsizer->Add(m_h_buttons_sizer, 1, wxEXPAND | wxALIGN_CENTRE_VERTICAL); -+ m_top_hsizer->Add(m_h_buttons_sizer, 1, wxEXPAND); - m_top_hsizer->AddSpacer(int(16*scale_factor)); - // StretchSpacer has a strange behavior under OSX, so - // There is used just additional sizer for m_mode_sizer with right alignment -@@ -252,7 +252,7 @@ void Tab::create_preset_tab() +@@ -279,7 +279,7 @@ void Tab::create_preset_tab() // Don't set the 2nd parameter to 1, making the sizer rubbery scalable in Y axis may lead // to wrong vertical size assigned to wxBitmapComboBoxes, see GH issue #7176. mode_sizer->Add(m_mode_sizer, 0, wxALIGN_RIGHT); @@ -18,7 +9,16 @@ } // hide whole top sizer to correct layout later m_top_hsizer->ShowItems(false); -@@ -280,7 +280,7 @@ void Tab::create_preset_tab() +@@ -296,7 +296,7 @@ void Tab::create_preset_tab() + m_treectrl = new wxTreeCtrl(panel, wxID_ANY, wxDefaultPosition, wxSize(20 * m_em_unit, -1), + wxTR_NO_BUTTONS | wxTR_HIDE_ROOT | wxTR_SINGLE | wxTR_NO_LINES | wxBORDER_SUNKEN | wxWANTS_CHARS); + m_treectrl->SetFont(wxGetApp().normal_font()); +-#ifdef __linux__ ++#if defined(__linux__) || defined(__FreeBSD__) + m_treectrl->SetBackgroundColour(m_parent->GetBackgroundColour()); + #endif + m_left_sizer->Add(m_treectrl, 1, wxEXPAND); +@@ -310,7 +310,7 @@ void Tab::create_preset_tab() // This helps to process all the cursor key events on Windows in the tree control, // so that the cursor jumps to the last item. m_treectrl->Bind(wxEVT_TREE_SEL_CHANGED, [this](wxTreeEvent&) { @@ -27,7 +27,7 @@ // Events queue is opposite On Linux. wxEVT_SET_FOCUS invokes after wxEVT_TREE_SEL_CHANGED, // and a result wxEVT_KILL_FOCUS doesn't invoke for the TextCtrls. // see https://github.com/prusa3d/PrusaSlicer/issues/5720 -@@ -3427,7 +3427,7 @@ void Tab::load_current_preset() +@@ -3694,7 +3694,7 @@ void Tab::load_current_preset() else #endif wxGetApp().tab_panel()->InsertPage(wxGetApp().tab_panel()->FindPage(this), tab, tab->title()); @@ -36,7 +36,7 @@ int page_id = wxGetApp().tab_panel()->FindPage(tab); wxGetApp().tab_panel()->GetPage(page_id)->Show(true); #endif // __linux__ -@@ -3837,7 +3837,7 @@ bool Tab::tree_sel_change_delayed() +@@ -4115,7 +4115,7 @@ bool Tab::tree_sel_change_delayed() // There is a bug related to Ubuntu overlay scrollbars, see https://github.com/prusa3d/PrusaSlicer/issues/898 and https://github.com/prusa3d/PrusaSlicer/issues/952. // The issue apparently manifests when Show()ing a window with overlay scrollbars while the UI is frozen. For this reason, // we will Thaw the UI prematurely on Linux. This means destroing the no_updates object prematurely. @@ -45,7 +45,7 @@ std::unique_ptr no_updates(new wxWindowUpdateLocker(this)); #else /* On Windows we use DoubleBuffering during rendering, -@@ -3883,7 +3883,7 @@ bool Tab::tree_sel_change_delayed() +@@ -4161,7 +4161,7 @@ bool Tab::tree_sel_change_delayed() if (wxGetApp().mainframe!=nullptr && wxGetApp().mainframe->is_active_and_shown_tab(this)) activate_selected_page(throw_if_canceled); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UnsavedChangesDialog.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UnsavedChangesDialog.hpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UnsavedChangesDialog.hpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UnsavedChangesDialog.hpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/UnsavedChangesDialog.hpp.orig 2023-07-25 12:56:44 UTC +--- src/slic3r/GUI/UnsavedChangesDialog.hpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/UnsavedChangesDialog.hpp -@@ -48,7 +48,7 @@ class ModelNode +@@ -52,7 +52,7 @@ class ModelNode wxString m_mod_color; wxString m_new_color; @@ -9,7 +9,7 @@ wxIcon get_bitmap(const wxString& color); #else wxBitmap get_bitmap(const wxString& color); -@@ -57,7 +57,7 @@ class ModelNode +@@ -61,7 +61,7 @@ class ModelNode public: bool m_toggle {true}; diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UnsavedChangesDialog.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UnsavedChangesDialog.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UnsavedChangesDialog.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UnsavedChangesDialog.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/UnsavedChangesDialog.cpp.orig 2023-07-25 12:52:03 UTC +--- src/slic3r/GUI/UnsavedChangesDialog.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/UnsavedChangesDialog.cpp -@@ -25,7 +25,7 @@ using boost::optional; +@@ -31,7 +31,7 @@ using boost::optional; @@ -9,7 +9,7 @@ #define wxLinux true #else #define wxLinux false -@@ -109,7 +109,7 @@ ModelNode::ModelNode(ModelNode* parent, const wxString +@@ -115,7 +115,7 @@ ModelNode::ModelNode(ModelNode* parent, const wxString UpdateIcons(); } @@ -18,7 +18,7 @@ wxIcon ModelNode::get_bitmap(const wxString& color) #else wxBitmap ModelNode::get_bitmap(const wxString& color) -@@ -118,7 +118,7 @@ wxBitmap ModelNode::get_bitmap(const wxString& color) +@@ -124,7 +124,7 @@ wxBitmap ModelNode::get_bitmap(const wxString& color) wxBitmap bmp = get_solid_bmp_bundle(64, 16, into_u8(color))->GetBitmapFor(m_parent_win); if (!m_toggle) bmp = bmp.ConvertToDisabled(); @@ -27,7 +27,7 @@ return bmp; #else wxIcon icon; -@@ -222,7 +222,7 @@ void ModelNode::UpdateIcons() +@@ -228,7 +228,7 @@ void ModelNode::UpdateIcons() if (!m_toggle) bmp = bmp.ConvertToDisabled(); @@ -36,7 +36,7 @@ m_icon.CopyFromBitmap(bmp); #else m_icon = bmp; -@@ -374,7 +374,7 @@ void DiffModel::GetValue(wxVariant& variant, const wxD +@@ -380,7 +380,7 @@ void DiffModel::GetValue(wxVariant& variant, const wxD case colToggle: variant = node->m_toggle; break; @@ -45,7 +45,7 @@ case colIconText: variant << wxDataViewIconText(node->m_text, node->m_icon); break; -@@ -417,7 +417,7 @@ bool DiffModel::SetValue(const wxVariant& variant, con +@@ -423,7 +423,7 @@ bool DiffModel::SetValue(const wxVariant& variant, con case colToggle: node->m_toggle = variant.GetBool(); return true; @@ -54,7 +54,7 @@ case colIconText: { wxDataViewIconText data; data << variant; -@@ -622,7 +622,7 @@ void DiffViewCtrl::AppendBmpTextColumn(const wxString& +@@ -628,7 +628,7 @@ DiffViewCtrl::DiffViewCtrl(wxWindow* parent, wxSize si void DiffViewCtrl::AppendBmpTextColumn(const wxString& label, unsigned model_column, int width, bool set_expander/* = false*/) { m_columns_width.emplace(this->GetColumnCount(), width); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UpdateDialogs.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UpdateDialogs.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UpdateDialogs.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UpdateDialogs.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/UpdateDialogs.cpp.orig 2023-07-25 12:59:11 UTC +--- src/slic3r/GUI/UpdateDialogs.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/UpdateDialogs.cpp -@@ -142,7 +142,7 @@ AppUpdateDownloadDialog::AppUpdateDownloadDialog( cons +@@ -147,7 +147,7 @@ AppUpdateDownloadDialog::AppUpdateDownloadDialog( cons versions->Add(new wxStaticText(this, wxID_ANY, ver_online.to_string())); content_sizer->Add(versions); content_sizer->AddSpacer(VERT_SPACING); @@ -9,7 +9,7 @@ cbox_run = new wxCheckBox(this, wxID_ANY, _(L("Run installer after download. (Otherwise file explorer will be opened)"))); content_sizer->Add(cbox_run); #endif -@@ -248,7 +248,7 @@ bool AppUpdateDownloadDialog::run_after_download() con +@@ -253,7 +253,7 @@ AppUpdateDownloadDialog::~AppUpdateDownloadDialog() {} bool AppUpdateDownloadDialog::run_after_download() const { diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.hpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.hpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.hpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/wxExtensions.hpp.orig 2023-07-25 13:07:41 UTC +--- src/slic3r/GUI/wxExtensions.hpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/wxExtensions.hpp -@@ -16,7 +16,7 @@ +@@ -20,7 +20,7 @@ #include diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/GUI/wxExtensions.cpp.orig 2023-07-25 13:02:00 UTC +--- src/slic3r/GUI/wxExtensions.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/GUI/wxExtensions.cpp -@@ -22,7 +22,7 @@ +@@ -27,7 +27,7 @@ #include "libslic3r/Color.hpp" @@ -9,7 +9,7 @@ // msw_menuitem_bitmaps is used for MSW and OSX static std::map msw_menuitem_bitmaps; void sys_color_changed_menu(wxMenu* menu) -@@ -92,7 +92,7 @@ wxMenuItem* append_menu_item(wxMenu* menu, int id, con +@@ -97,7 +97,7 @@ wxMenuItem* append_menu_item(wxMenu* menu, int id, con wxBitmapBundle* bmp = icon.empty() ? nullptr : get_bmp_bundle(icon); @@ -18,7 +18,7 @@ if (bmp && bmp->IsOk()) msw_menuitem_bitmaps[id] = icon; #endif /* no __linux__ */ -@@ -110,7 +110,7 @@ wxMenuItem* append_submenu(wxMenu* menu, wxMenu* sub_m +@@ -115,7 +115,7 @@ wxMenuItem* append_submenu(wxMenu* menu, wxMenu* sub_m if (!icon.empty()) { item->SetBitmap(*get_bmp_bundle(icon)); @@ -27,7 +27,7 @@ msw_menuitem_bitmaps[id] = icon; #endif // no __linux__ } -@@ -671,9 +671,9 @@ void ModeButton::focus_button(const bool focus) +@@ -681,9 +681,9 @@ void ModeButton::focus_button(const bool focus) GetParent()->Refresh(); // force redraw a background of the selected mode button #else SetForegroundColour(wxSystemSettings::GetColour(focus ? wxSYS_COLOUR_BTNTEXT : diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_Utils_FontConfigHelp.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_Utils_FontConfigHelp.hpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_Utils_FontConfigHelp.hpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_Utils_FontConfigHelp.hpp @@ -1,6 +1,6 @@ ---- src/slic3r/Utils/FontConfigHelp.hpp.orig 2023-07-25 13:08:59 UTC +--- src/slic3r/Utils/FontConfigHelp.hpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/Utils/FontConfigHelp.hpp -@@ -1,7 +1,7 @@ +@@ -5,7 +5,7 @@ #ifndef slic3r_FontConfigHelp_hpp_ #define slic3r_FontConfigHelp_hpp_ diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_Utils_Serial.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_Utils_Serial.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_Utils_Serial.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_Utils_Serial.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/Utils/Serial.cpp.orig 2023-07-25 13:13:16 UTC +--- src/slic3r/Utils/Serial.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/Utils/Serial.cpp -@@ -49,7 +49,7 @@ +@@ -53,7 +53,7 @@ #include #endif @@ -9,7 +9,7 @@ #include #elif defined __linux__ #include -@@ -342,7 +342,7 @@ void Serial::set_baud_rate(unsigned baud_rate) +@@ -346,7 +346,7 @@ void Serial::set_baud_rate(unsigned baud_rate) ios.c_cc[VTIME] = 1; handle_errno(::ioctl(handle, TCSETS2, &ios)); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_Utils_WifiScanner.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_Utils_WifiScanner.cpp new file mode 100644 --- /dev/null +++ b/cad/PrusaSlicer/files/patch-src_slic3r_Utils_WifiScanner.cpp @@ -0,0 +1,27 @@ +--- src/slic3r/Utils/WifiScanner.cpp.orig 2024-02-29 13:03:32 UTC ++++ src/slic3r/Utils/WifiScanner.cpp +@@ -17,7 +17,7 @@ + #include "WifiScannerMac.h" + #endif + +-#if __linux__ ++#if defined(__linux__) || defined(__FreeBSD__) + #include /* Pull in all of D-Bus headers. */ + #endif //__linux__ + +@@ -353,7 +353,7 @@ std::string WifiScanner::get_psk(const std::string& ss + } + return {}; + } +- ++} // Slic3r + #ifdef _WIN32 + // Fill SSID map. Implementation from Raspberry Pi imager and Win32 Api examples. + // https://github.com/raspberrypi/rpi-imager/blob/qml/src/windows/winwlancredentials.cpp +@@ -489,4 +489,4 @@ void WifiScanner::fill_wifi_map(Slic3r::WifiSsidPskMap + wlanFreeMemoryFunc(interface_list); + } + #endif // _WIN32 +-} // Slic3r +\ No newline at end of file ++//} // Slic3r diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_Utils_WxFontUtils.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_Utils_WxFontUtils.cpp --- a/cad/PrusaSlicer/files/patch-src_slic3r_Utils_WxFontUtils.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_Utils_WxFontUtils.cpp @@ -1,6 +1,6 @@ ---- src/slic3r/Utils/WxFontUtils.cpp.orig 2023-07-25 13:16:26 UTC +--- src/slic3r/Utils/WxFontUtils.cpp.orig 2023-12-12 14:21:21 UTC +++ src/slic3r/Utils/WxFontUtils.cpp -@@ -8,7 +8,7 @@ +@@ -12,7 +12,7 @@ #include #include // wxNativeFontInfo #include @@ -9,7 +9,7 @@ #include "slic3r/Utils/FontConfigHelp.hpp" #endif -@@ -72,7 +72,7 @@ bool WxFontUtils::can_load(const wxFont &font) +@@ -76,7 +76,7 @@ bool WxFontUtils::can_load(const wxFont &font) #elif defined(__APPLE__) return true; //return is_valid_ttf(get_file_path(font)); @@ -18,7 +18,7 @@ return true; // font config check file path take about 4000ms for chech them all //std::string font_path = Slic3r::GUI::get_font_path(font); -@@ -93,7 +93,7 @@ std::unique_ptr WxFontUtils::create_ +@@ -97,7 +97,7 @@ std::unique_ptr WxFontUtils::create_ return nullptr; } return Emboss::create_font_file(file_path.c_str()); @@ -27,7 +27,7 @@ std::string font_path = Slic3r::GUI::get_font_path(font); if (font_path.empty()){ BOOST_LOG_TRIVIAL(error) << "Can not read font('" << get_human_readable_name(font) << "'), " -@@ -114,7 +114,7 @@ EmbossStyle::Type WxFontUtils::get_actual_type() +@@ -118,7 +118,7 @@ EmbossStyle::Type WxFontUtils::get_current_type() return EmbossStyle::Type::wx_win_font_descr; #elif defined(__APPLE__) return EmbossStyle::Type::wx_mac_font_descr; @@ -36,7 +36,7 @@ return EmbossStyle::Type::wx_lin_font_descr; #else return EmbossStyle::Type::undefined; -@@ -348,4 +348,4 @@ std::unique_ptr WxFontUtils::set_bol +@@ -351,4 +351,4 @@ std::unique_ptr WxFontUtils::set_bol // There is NO bold font by wx font.SetWeight(orig_weight); return nullptr; diff --git a/cad/PrusaSlicer/files/patch-tests_libslic3r_test__emboss.cpp b/cad/PrusaSlicer/files/patch-tests_libslic3r_test__emboss.cpp --- a/cad/PrusaSlicer/files/patch-tests_libslic3r_test__emboss.cpp +++ b/cad/PrusaSlicer/files/patch-tests_libslic3r_test__emboss.cpp @@ -1,11 +1,11 @@ ---- tests/libslic3r/test_emboss.cpp.orig 2023-07-25 16:05:40 UTC +--- tests/libslic3r/test_emboss.cpp.orig 2023-12-12 14:21:21 UTC +++ tests/libslic3r/test_emboss.cpp @@ -195,7 +195,7 @@ TEST_CASE("Visualize glyph from font", "[Emboss]") #endif // VISUALIZE #include "test_utils.hpp" --#include "nanosvg/nanosvg.h" // load SVG file -+#include "libnanosvg/nanosvg.h" // load SVG file - #include "libslic3r/NSVGUtils.hpp" +-#include // load SVG file ++#include // load SVG file + #include + #include ExPolygons heal_and_check(const Polygons &polygons) - { diff --git a/cad/PrusaSlicer/pkg-plist b/cad/PrusaSlicer/pkg-plist --- a/cad/PrusaSlicer/pkg-plist +++ b/cad/PrusaSlicer/pkg-plist @@ -1,11 +1,11 @@ bin/prusa-gcodeviewer bin/prusa-slicer lib/OCCTWrapper.so -share/applications/PrusaGcodeviewer.desktop share/applications/PrusaSlicer.desktop -share/icons/hicolor/128x128/apps/PrusaSlicer-gcodeviewer.png +share/applications/PrusaGcodeviewer.desktop +share/icons/hicolor/32x32/apps/PrusaSlicer.png +share/icons/hicolor/32x32/apps/PrusaSlicer-gcodeviewer.png share/icons/hicolor/128x128/apps/PrusaSlicer.png -share/icons/hicolor/192x192/apps/PrusaSlicer-gcodeviewer.png +share/icons/hicolor/128x128/apps/PrusaSlicer-gcodeviewer.png share/icons/hicolor/192x192/apps/PrusaSlicer.png -share/icons/hicolor/32x32/apps/PrusaSlicer-gcodeviewer.png -share/icons/hicolor/32x32/apps/PrusaSlicer.png +share/icons/hicolor/192x192/apps/PrusaSlicer-gcodeviewer.png