cad/PrusaSlicer: update to 2.9.0

Adapted patch provided from Jesper Schmitz Mouridsen

PR:		284821
Reported by:	Torfinn Ingolfsen
Approved by:	teodorsigaev@
This commit is contained in:
Michael Reifenberger 2025-03-09 15:37:10 +01:00
parent 5336c337b8
commit ae9787cdfb
81 changed files with 2965 additions and 3305 deletions

View file

@ -1,7 +1,6 @@
PORTNAME= PrusaSlicer
DISTVERSIONPREFIX=version_
DISTVERSION= 2.8.1
PORTREVISION= 7
DISTVERSION= 2.9.0
CATEGORIES= cad
DIST_SUBDIR= PrusaSlicer
@ -12,12 +11,13 @@ WWW= https://www.prusa3d.com/prusaslicer/
LICENSE= AGPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE
BROKEN= fails to build with Boost>=1.87
#BROKEN= fails to build with Boost>=1.87
BUILD_DEPENDS= cereal>=1.3.0.10:devel/cereal \
cgal>=5.0.2:math/cgal \
opencascade>=7.7.0:cad/opencascade \
libbgcode>=0.2.0_1:cad/libbgcode
libbgcode>=0.2.0_1:cad/libbgcode \
hidapi>=0.14.0:comms/hidapi
LIB_DEPENDS+= libbgcode_convert.so:cad/libbgcode \
libbgcode_binarize.so:cad/libbgcode \
@ -64,5 +64,7 @@ CMAKE_ARGS+= -DwxWidgets_CONFIG_EXECUTABLE="${WX_CONFIG}" \
-DSLIC3R_BUILD_TESTS=OFF
PORTDATA= *
post-patch:
${MKDIR} ${WRKSRC}/bundled_deps/hidapi/libusb
${CP} ${FILESDIR}/hid.c ${WRKSRC}/bundled_deps/hidapi/libusb/hid.c
.include <bsd.port.mk>

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1728981634
SHA256 (PrusaSlicer/prusa3d-PrusaSlicer-version_2.8.1_GH0.tar.gz) = f71033dd4e9fdd8e5ac7b5be5803d0d6d09ec0fd87de92b152b3c6bbae04c103
SIZE (PrusaSlicer/prusa3d-PrusaSlicer-version_2.8.1_GH0.tar.gz) = 69409077
TIMESTAMP = 1739556829
SHA256 (PrusaSlicer/prusa3d-PrusaSlicer-version_2.9.0_GH0.tar.gz) = 515a41dea3bcd2fcadb713b22e4eccfd46fbb7a7ca8dad8440e7b5e29fbbc206
SIZE (PrusaSlicer/prusa3d-PrusaSlicer-version_2.9.0_GH0.tar.gz) = 70604482

1514
cad/PrusaSlicer/files/hid.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,14 +1,6 @@
--- CMakeLists.txt.orig 2024-09-18 13:39:04 UTC
--- CMakeLists.txt.orig 2025-02-14 18:17:10 UTC
+++ CMakeLists.txt
@@ -14,6 +14,7 @@ include(CMakeDependentOption)
include("version.inc")
include(GNUInstallDirs)
include(CMakeDependentOption)
+add_compile_options(-DNDEBUG)
set(SLIC3R_RESOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/resources")
file(TO_NATIVE_PATH "${SLIC3R_RESOURCES_DIR}" SLIC3R_RESOURCES_DIR_WIN)
@@ -234,7 +235,7 @@ endif ()
@@ -233,7 +233,7 @@ endif ()
endif ()
endif ()
@ -17,46 +9,29 @@
find_package(PkgConfig REQUIRED)
if (CMAKE_VERSION VERSION_LESS "3.1")
@@ -263,6 +264,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)
@@ -371,10 +374,10 @@ set(MINIMUM_BOOST_VERSION "1.66.0")
# boost::process was introduced first in version 1.64.0,
# boost::beast::detail::base64 was introduced first in version 1.66.0
set(MINIMUM_BOOST_VERSION "1.66.0")
-set(_boost_components "system;filesystem;thread;log;locale;regex;chrono;atomic;date_time;iostreams;nowide")
+set(_boost_components "system;filesystem;thread;log;log_setup;locale;regex;chrono;atomic;date_time;iostreams;nowide")
find_package(Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS ${_boost_components})
-find_package(Eigen3 3.3.7 REQUIRED)
+find_package(Eigen3 3.3.7 REQUIRED NO_MODULE)
add_library(boost_libs INTERFACE)
add_library(boost_headeronly INTERFACE)
@@ -636,8 +639,8 @@ elseif (SLIC3R_FHS)
@@ -635,8 +635,14 @@ elseif (SLIC3R_FHS)
install(DIRECTORY ${SLIC3R_RESOURCES_DIR}/ DESTINATION ${SLIC3R_FHS_RESOURCES}
PATTERN "*/udev" EXCLUDE
)
- install(FILES src/platform/unix/PrusaSlicer.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
- install(FILES src/platform/unix/PrusaGcodeviewer.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
+ install(FILES src/platform/unix/PrusaSlicer.desktop DESTINATION share/applications)
+ install(FILES src/platform/unix/PrusaGcodeviewer.desktop DESTINATION share/applications)
+if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
install(FILES src/platform/unix/PrusaSlicer.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
install(FILES src/platform/unix/PrusaGcodeviewer.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
+endif()
+if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ install(FILES src/platform/unix/PrusaSlicer.desktop DESTINATION share/applications)
+ install(FILES src/platform/unix/PrusaGcodeviewer.desktop DESTINATION share/applications)
+endif()
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
@@ -646,7 +649,8 @@ elseif (SLIC3R_FHS)
@@ -645,7 +651,10 @@ elseif (SLIC3R_FHS)
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/${SIZE}x${SIZE}/apps RENAME PrusaSlicer-gcodeviewer.png
)
endforeach()
- install(DIRECTORY ${SLIC3R_RESOURCES_DIR}/udev/ DESTINATION lib/udev/rules.d)
+ #FreeBSD doesn't have a udev
+ #install(DIRECTORY ${SLIC3R_RESOURCES_DIR}/udev/ DESTINATION lib/udev/rules.d)
+if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
install(DIRECTORY ${SLIC3R_RESOURCES_DIR}/udev/ DESTINATION lib/udev/rules.d)
+endif()
+
else ()
install(FILES src/platform/unix/PrusaSlicer.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/resources/applications)
install(FILES src/platform/unix/PrusaGcodeviewer.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/resources/applications)

View file

@ -1,4 +1,4 @@
--- bundled_deps/avrdude/avrdude/arduino.c.orig 2024-09-18 13:39:04 UTC
--- bundled_deps/avrdude/avrdude/arduino.c.orig 2024-12-20 11:54:34 UTC
+++ bundled_deps/avrdude/avrdude/arduino.c
@@ -28,6 +28,7 @@
#include "ac_cfg.h"

View file

@ -1,4 +1,4 @@
--- bundled_deps/avrdude/avrdude/libavrdude.h.orig 2024-09-18 13:39:04 UTC
--- bundled_deps/avrdude/avrdude/libavrdude.h.orig 2024-12-20 11:54:34 UTC
+++ bundled_deps/avrdude/avrdude/libavrdude.h
@@ -950,6 +950,8 @@ int read_config_builtin();
// Header file for alloca()

View file

@ -1,4 +1,4 @@
--- bundled_deps/avrdude/avrdude/main.c.orig 2024-09-18 13:39:04 UTC
--- bundled_deps/avrdude/avrdude/main.c.orig 2024-12-20 11:54:34 UTC
+++ bundled_deps/avrdude/avrdude/main.c
@@ -806,7 +806,7 @@ int avrdude_main(int argc, char * argv [])
avrdude_message(MSG_NOTICE, "\n%s: Version %s, compiled on %s at %s\n"

View file

@ -1,4 +1,4 @@
--- bundled_deps/hidapi/CMakeLists.txt.orig 2024-09-18 13:39:04 UTC
--- bundled_deps/hidapi/CMakeLists.txt.orig 2024-12-20 11:54:34 UTC
+++ bundled_deps/hidapi/CMakeLists.txt
@@ -1,8 +1,9 @@
-

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
--- bundled_deps/hints/HintsToPot.cpp.orig 2024-09-18 13:39:04 UTC
--- bundled_deps/hints/HintsToPot.cpp.orig 2024-12-20 11:54:34 UTC
+++ bundled_deps/hints/HintsToPot.cpp
@@ -2,6 +2,7 @@
#include <vector>

View file

@ -1,6 +1,6 @@
--- cmake/modules/FindOpenVDB.cmake.orig 2022-09-06 07:09:19 UTC
--- cmake/modules/FindOpenVDB.cmake.orig 2025-02-14 18:26:40 UTC
+++ cmake/modules/FindOpenVDB.cmake
@@ -347,24 +347,24 @@ macro(just_fail msg)
@@ -347,24 +347,24 @@ endmacro()
return()
endmacro()
@ -40,7 +40,7 @@
endif()
find_package(TBB ${_quiet} ${_required} COMPONENTS tbb)
find_package(ZLIB ${_quiet} ${_required})
@@ -451,7 +451,7 @@ if(OpenVDB_USES_LOG4CPLUS)
@@ -451,7 +451,7 @@ if(OpenVDB_USES_ILM)
endif()
if(OpenVDB_USES_ILM)
@ -49,7 +49,7 @@
endif()
if(OpenVDB_USES_EXR)
@@ -463,7 +463,7 @@ if(UNIX)
@@ -463,7 +463,7 @@ endif()
endif()
# Set deps. Note that the order here is important. If we're building against
@ -58,7 +58,7 @@
# users chosen namespaced headers are correctly prioritized. Otherwise other
# include paths from shared installs (including houdini) may pull in the wrong
# headers
@@ -471,7 +471,7 @@ endif()
@@ -471,7 +471,7 @@ set(_OPENVDB_VISIBLE_DEPENDENCIES
set(_OPENVDB_VISIBLE_DEPENDENCIES
Boost::iostreams
Boost::system
@ -67,7 +67,7 @@
)
set(_OPENVDB_DEFINITIONS)
@@ -481,10 +481,10 @@ endif()
@@ -481,10 +481,10 @@ if(OpenVDB_USES_EXR)
if(OpenVDB_USES_EXR)
list(APPEND _OPENVDB_VISIBLE_DEPENDENCIES

View file

@ -1,20 +1,11 @@
--- src/CMakeLists.txt.orig 2024-09-18 13:39:04 UTC
--- src/CMakeLists.txt.orig 2025-02-14 18:46:38 UTC
+++ src/CMakeLists.txt
@@ -46,7 +46,7 @@ if (SLIC3R_GUI)
@@ -48,7 +48,7 @@ if (SLIC3R_GUI)
endif()
find_package(JPEG MODULE QUIET)
- 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)
@@ -109,7 +109,7 @@ endif ()
set_target_properties(PrusaSlicer PROPERTIES OUTPUT_NAME "prusa-slicer")
endif ()
-target_link_libraries(PrusaSlicer libslic3r libcereal)
+target_link_libraries(PrusaSlicer libslic3r)
if (APPLE)
# add_compile_options(-stdlib=libc++)

File diff suppressed because it is too large Load diff

View file

@ -1,11 +0,0 @@
--- src/libslic3r/Arrange/Core/DataStoreTraits.hpp.orig 2024-11-03 17:50:46 UTC
+++ src/libslic3r/Arrange/Core/DataStoreTraits.hpp
@@ -71,7 +71,7 @@ void set_data(ArrItem &itm, const std::string &key, T
template<class T, class ArrItem>
void set_data(ArrItem &itm, const std::string &key, T &&data)
{
- WritableDataStoreTraits<ArrItem>::template set(itm, key, std::forward<T>(data));
+ WritableDataStoreTraits<ArrItem>::template set<T>(itm, key, std::forward<T>(data));
}
template<class T> constexpr bool IsReadWritableDataStore = IsDataStore<T> && IsWritableDataStore<T>;

View file

@ -1,12 +0,0 @@
--- src/libslic3r/Arrange/Core/NFP/NFPConcave_CGAL.cpp.orig 2024-09-18 13:39:04 UTC
+++ src/libslic3r/Arrange/Core/NFP/NFPConcave_CGAL.cpp
@@ -2,6 +2,9 @@
///|/
///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher
///|/
+
+#include <boost/next_prior.hpp>
+
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/partition_2.h>
#include <CGAL/Partition_traits_2.h>

View file

@ -1,6 +1,6 @@
--- src/libslic3r/CMakeLists.txt.orig 2024-09-18 13:39:04 UTC
--- src/libslic3r/CMakeLists.txt.orig 2024-12-20 11:54:34 UTC
+++ src/libslic3r/CMakeLists.txt
@@ -611,7 +611,6 @@ target_link_libraries(libslic3r PRIVATE
@@ -568,7 +568,6 @@ target_link_libraries(libslic3r PRIVATE
target_link_libraries(libslic3r PRIVATE
libnest2d

View file

@ -1,4 +1,4 @@
--- src/libslic3r/CutSurface.cpp.orig 2024-09-18 13:39:04 UTC
--- src/libslic3r/CutSurface.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/libslic3r/CutSurface.cpp
@@ -27,6 +27,8 @@ using namespace Slic3r;
//#define DEBUG_OUTPUT_DIR std::string("C:/data/temp/cutSurface/")

View file

@ -1,4 +1,4 @@
--- src/libslic3r/Format/STEP.cpp.orig 2024-04-05 18:42:53 UTC
--- src/libslic3r/Format/STEP.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/libslic3r/Format/STEP.cpp
@@ -39,7 +39,7 @@ LoadStepFn get_load_step_fn()
#endif

View file

@ -1,4 +1,4 @@
--- src/libslic3r/GCodeSender.cpp.orig 2023-12-12 14:21:21 UTC
--- src/libslic3r/GCodeSender.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/libslic3r/GCodeSender.cpp
@@ -14,7 +14,7 @@
#include <boost/date_time/posix_time/posix_time.hpp>

View file

@ -1,4 +1,4 @@
--- src/libslic3r/Geometry/VoronoiUtilsCgal.cpp.orig 2024-09-18 13:39:04 UTC
--- src/libslic3r/Geometry/VoronoiUtilsCgal.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/libslic3r/Geometry/VoronoiUtilsCgal.cpp
@@ -2,6 +2,7 @@
///|/

View file

@ -1,4 +1,4 @@
--- src/libslic3r/MeshBoolean.cpp.orig 2024-09-18 13:39:04 UTC
--- src/libslic3r/MeshBoolean.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/libslic3r/MeshBoolean.cpp
@@ -10,6 +10,8 @@

View file

@ -1,4 +1,4 @@
--- src/libslic3r/Platform.cpp.orig 2024-09-18 13:39:04 UTC
--- src/libslic3r/Platform.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/libslic3r/Platform.cpp
@@ -90,6 +90,10 @@ void detect_platform()
BOOST_LOG_TRIVIAL(info) << "Platform: OpenBSD";

View file

@ -1,4 +1,4 @@
--- src/libslic3r/Platform.hpp.orig 2023-12-12 14:21:21 UTC
--- src/libslic3r/Platform.hpp.orig 2024-12-20 11:54:34 UTC
+++ src/libslic3r/Platform.hpp
@@ -29,6 +29,7 @@ enum class PlatformFlavor
WSL, // Microsoft's Windows on Linux (Linux kernel simulated on NTFS kernel)

View file

@ -1,4 +1,4 @@
--- src/libslic3r/SupportSpotsGenerator.cpp.orig 2024-09-18 13:39:04 UTC
--- src/libslic3r/SupportSpotsGenerator.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/libslic3r/SupportSpotsGenerator.cpp
@@ -1062,7 +1062,7 @@ SliceMappings update_active_object_parts(const Layer
}

View file

@ -1,4 +1,4 @@
--- src/libslic3r/Triangulation.cpp.orig 2024-09-18 13:39:04 UTC
--- src/libslic3r/Triangulation.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/libslic3r/Triangulation.cpp
@@ -2,6 +2,9 @@
///|/

View file

@ -1,4 +1,4 @@
--- src/libslic3r/Utils/DirectoriesUtils.cpp.orig 2024-07-03 10:13:37 UTC
--- src/libslic3r/Utils/DirectoriesUtils.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/libslic3r/Utils/DirectoriesUtils.cpp
@@ -3,6 +3,7 @@

View file

@ -1,4 +1,4 @@
--- src/occt_wrapper/CMakeLists.txt.orig 2024-09-18 13:39:04 UTC
--- src/occt_wrapper/CMakeLists.txt.orig 2024-12-20 11:54:34 UTC
+++ src/occt_wrapper/CMakeLists.txt
@@ -19,14 +19,13 @@ generate_export_header(OCCTWrapper)

View file

@ -1,45 +1,64 @@
--- src/slic3r/CMakeLists.txt.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/CMakeLists.txt.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/CMakeLists.txt
@@ -382,7 +382,8 @@ set(SLIC3R_GUI_SOURCES
@@ -392,11 +392,12 @@ set(SLIC3R_GUI_SOURCES
Utils/ServiceConfig.cpp
)
-find_package(NanoSVG REQUIRED)
+#find_package(NanoSVG REQUIRED)
+find_package(OpenSSL REQUIRED)
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ find_package(NanoSVG REQUIRED)
+endif()
+if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
find_package(OpenSSL REQUIRED)
endif()
-
if (APPLE)
list(APPEND SLIC3R_GUI_SOURCES
@@ -426,7 +427,6 @@ target_link_libraries(
Utils/RetinaHelperImpl.mm
@@ -433,14 +434,13 @@ encoding_check(libslic3r_gui)
endforeach()
encoding_check(libslic3r_gui)
-
+if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
target_link_libraries(
libslic3r_gui
PUBLIC
libslic3r
slic3r-arrange-wrapper
avrdude
- libcereal
imgui
libvgcode
GLEW::GLEW
@@ -434,19 +434,21 @@ target_link_libraries(
hidapi
libcurl
${wxWidgets_LIBRARIES}
- NanoSVG::nanosvg
- NanoSVG::nanosvgrast
stb_dxt
@@ -454,10 +454,29 @@ target_link_libraries(
fastfloat
+ OpenSSL::SSL
+ OpenSSL::Crypto
boost_headeronly
)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+target_link_libraries(
+ libslic3r_gui
+ PUBLIC
+ libslic3r
+ slic3r-arrange-wrapper
+ avrdude
+ imgui
+ libvgcode
+ GLEW::GLEW
+ OpenGL::GL
+ hidapi
+ libcurl
+ ${wxWidgets_LIBRARIES}
+ stb_dxt
+ fastfloat
+ boost_headeronly
+)
+endif()
if (MSVC)
target_link_libraries(libslic3r_gui PUBLIC Setupapi.lib)
-elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
target_link_libraries(libslic3r_gui PUBLIC ${DBUS_LIBRARIES})
elseif (APPLE)
target_link_libraries(libslic3r_gui PUBLIC ${DISKARBITRATION_LIBRARY} ${COREWLAN_LIBRARY})
endif()
+
+add_definitions(-DBOOST_LOG_DYN_LINK)
#if (SLIC3R_STATIC)
# FIXME: This was previously exported by wx-config but the wxWidgets
target_link_libraries(libslic3r_gui PUBLIC
${DBus1_LIBRARIES}
OpenSSL::SSL

View file

@ -1,4 +1,4 @@
--- src/slic3r/Config/Snapshot.cpp.orig 2024-04-05 09:25:31 UTC
--- src/slic3r/Config/Snapshot.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/Config/Snapshot.cpp
@@ -12,6 +12,7 @@
#include <boost/property_tree/ini_parser.hpp>

View file

@ -1,10 +0,0 @@
--- src/slic3r/Config/Version.cpp.orig 2024-04-05 09:25:31 UTC
+++ src/slic3r/Config/Version.cpp
@@ -7,6 +7,7 @@
#include <cctype>
#include <boost/filesystem/operations.hpp>
+#include <boost/filesystem/directory.hpp>
#include <boost/nowide/fstream.hpp>
#include "libslic3r/libslic3r.h"

View file

@ -1,6 +1,6 @@
--- src/slic3r/GUI/ConfigWizard.cpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/ConfigWizard.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/ConfigWizard.cpp
@@ -638,7 +638,7 @@ void PageWelcome::set_run_reason(ConfigWizard::RunReas
@@ -616,7 +616,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);
@ -9,7 +9,7 @@
if (!DesktopIntegrationDialog::is_integrated())
cbox_integrate->Show(true);
else
@@ -1696,7 +1696,7 @@ PageDownloader::PageDownloader(ConfigWizard* parent)
@@ -1674,7 +1674,7 @@ PageDownloader::PageDownloader(ConfigWizard* parent)
));
}
@ -18,7 +18,7 @@
append_text(wxString::Format(_L(
"On Linux systems the process of registration also creates desktop integration files for this version of application."
)));
@@ -1714,7 +1714,7 @@ bool PageDownloader::on_finish_downloader() const
@@ -1692,7 +1692,7 @@ bool PageDownloader::on_finish_downloader() const
return m_downloader->on_finish();
}
@ -27,7 +27,7 @@
bool DownloaderUtils::Worker::perform_registration_linux = false;
#endif // __linux__
@@ -1763,10 +1763,10 @@ bool DownloaderUtils::Worker::perform_url_register()
@@ -1741,10 +1741,10 @@ bool DownloaderUtils::Worker::perform_url_register()
}
//key_full = "\"C:\\Program Files\\Prusa3D\\PrusaSlicer\\prusa-slicer-console.exe\" \"%1\"";
key_full = key_string;
@ -40,7 +40,7 @@
// the performation should be called later during desktop integration
perform_registration_linux = true;
#endif
@@ -1782,9 +1782,9 @@ void DownloaderUtils::Worker::deregister()
@@ -1760,9 +1760,9 @@ void DownloaderUtils::Worker::deregister()
return;
}
key_full = key_string;
@ -52,7 +52,7 @@
BOOST_LOG_TRIVIAL(debug) << "DesktopIntegrationDialog::undo_downloader_registration";
DesktopIntegrationDialog::undo_downloader_registration();
perform_registration_linux = false;
@@ -3421,7 +3421,7 @@ bool ConfigWizard::priv::apply_config(AppConfig *app_c
@@ -3405,7 +3405,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());

View file

@ -1,6 +1,6 @@
--- src/slic3r/GUI/ConfigWizard.hpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/ConfigWizard.hpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/ConfigWizard.hpp
@@ -54,7 +54,7 @@ namespace DownloaderUtils {
@@ -50,7 +50,7 @@ namespace DownloaderUtils {
bool on_finish();
static bool perform_download_register(const std::string& path);
static bool perform_url_register();

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/DesktopIntegrationDialog.cpp.orig 2023-12-12 14:21:21 UTC
--- src/slic3r/GUI/DesktopIntegrationDialog.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/DesktopIntegrationDialog.cpp
@@ -3,7 +3,7 @@
///|/

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/DesktopIntegrationDialog.hpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/DesktopIntegrationDialog.hpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/DesktopIntegrationDialog.hpp
@@ -2,7 +2,7 @@
///|/
@ -9,7 +9,7 @@
#ifndef slic3r_DesktopIntegrationDialog_hpp_
#define slic3r_DesktopIntegrationDialog_hpp_
@@ -47,4 +47,4 @@ class DesktopIntegrationDialog : public wxDialog (priv
@@ -49,4 +49,4 @@ class DesktopIntegrationDialog : public wxDialog (publ
} // namespace Slic3r
#endif // slic3r_DesktopIntegrationDialog_hpp_

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/EditGCodeDialog.cpp.orig 2024-10-15 09:06:23 UTC
--- src/slic3r/GUI/EditGCodeDialog.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/EditGCodeDialog.cpp
@@ -566,7 +566,7 @@ void ParamsModel::GetValue(wxVariant& variant, const w

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/ExtraRenderers.cpp.orig 2023-12-12 14:21:21 UTC
--- src/slic3r/GUI/ExtraRenderers.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/ExtraRenderers.cpp
@@ -343,7 +343,7 @@ wxWindow* BitmapChoiceRenderer::CreateEditorCtrl(wxWin
c_editor->SetSelection(atoi(data.GetText().c_str()));

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/Field.cpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/Field.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/Field.cpp
@@ -222,7 +222,7 @@ static wxString na_value(bool for_spin_ctrl = false)

View file

@ -0,0 +1,20 @@
--- src/slic3r/GUI/FirmwareDialog.cpp.orig 2025-02-14 23:34:27 UTC
+++ src/slic3r/GUI/FirmwareDialog.cpp
@@ -365,7 +365,7 @@ bool FirmwareDialog::priv::check_model_id()
// return true;
// }
- // asio::io_service io;
+ // asio::io_context io;
// Serial serial(io, port->port, 115200);
// serial.printer_setup();
@@ -429,7 +429,7 @@ void FirmwareDialog::priv::avr109_reboot(const SerialP
void FirmwareDialog::priv::avr109_reboot(const SerialPortInfo &port)
{
- asio::io_service io;
+ asio::io_context io;
Serial serial(io, port.port, 1200);
std::this_thread::sleep_for(std::chrono::milliseconds(50));
}

View file

@ -1,11 +1,11 @@
--- src/slic3r/GUI/GLCanvas3D.cpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/GLCanvas3D.cpp.orig 2025-02-20 18:44:48 UTC
+++ src/slic3r/GUI/GLCanvas3D.cpp
@@ -107,7 +107,7 @@ float RetinaHelper::get_scale_factor() { return float(
#endif // __WXGTK3__
@@ -13,7 +13,7 @@
// Fixed the collision between BuildVolume::Type::Convex and macro Convex defined inside /usr/include/X11/X.h that is included by WxWidgets 3.0.
-#if defined(__linux__) && defined(Convex)
+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(Convex)
#undef Convex
#endif
#include <igl/unproject.h> // IWYU pragma: keep
#include <LocalesUtils.hpp>
-#include <nanosvgrast.h>
+#include <libnanosvg/nanosvgrast.h>
#include "libslic3r/BuildVolume.hpp"
#include "libslic3r/ClipperUtils.hpp"

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/GUI.cpp.orig 2024-06-27 09:25:47 UTC
--- src/slic3r/GUI/GUI.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/GUI.cpp
@@ -296,7 +296,7 @@ void desktop_open_folder(const boost::filesystem::path
const wxString widepath = path.wstring();

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/GUI.hpp.orig 2024-06-27 09:25:47 UTC
--- src/slic3r/GUI/GUI.hpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/GUI.hpp
@@ -74,7 +74,7 @@ void desktop_open_folder(const boost::filesystem::path
// Ask the destop to open the directory specified by path using the default file explorer.

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/GUI_App.cpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/GUI_App.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/GUI_App.cpp
@@ -412,7 +412,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,
@@ -1256,6 +1256,9 @@ bool GUI_App::on_init_inner()
@@ -1344,6 +1344,9 @@ bool GUI_App::on_init_inner()
// Set initialization of image handlers before any UI actions - See GH issue #7469
wxInitAllImageHandlers();
@ -19,7 +19,7 @@
// Set our own gui log as an active target
m_log_gui = new LogGui();
wxLog::SetActiveTarget(m_log_gui);
@@ -1286,7 +1289,7 @@ bool GUI_App::on_init_inner()
@@ -1374,7 +1377,7 @@ bool GUI_App::on_init_inner()
const wxString resources_dir = from_u8(Slic3r::resources_dir());
wxCHECK_MSG(wxDirExists(resources_dir), false, wxString::Format("Resources path does not exist or is not a directory: %s", resources_dir));
@ -28,7 +28,7 @@
if (! check_old_linux_datadir(GetAppName())) {
std::cerr << "Quitting, user chose to move their data to new location." << std::endl;
return false;
@@ -1391,7 +1394,7 @@ bool GUI_App::on_init_inner()
@@ -1479,7 +1482,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");
@ -37,7 +37,7 @@
wxYield();
#endif
scrn->SetText(_L("Loading configuration")+ dots);
@@ -1557,7 +1560,7 @@ bool GUI_App::on_init_inner()
@@ -1649,7 +1652,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.
@ -46,7 +46,7 @@
if (!m_post_initialized && m_opengl_initialized) {
#else
if (!m_post_initialized) {
@@ -2247,7 +2250,7 @@ bool GUI_App::switch_language()
@@ -2339,7 +2342,7 @@ bool GUI_App::switch_language()
}
}
@ -55,7 +55,7 @@
static const wxLanguageInfo* linux_get_existing_locale_language(const wxLanguageInfo* language,
const wxLanguageInfo* system_language)
{
@@ -2449,7 +2452,7 @@ bool GUI_App::load_language(wxString language, bool in
@@ -2541,7 +2544,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();
}
@ -64,7 +64,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.
@@ -2458,6 +2461,7 @@ bool GUI_App::load_language(wxString language, bool in
@@ -2550,6 +2553,7 @@ bool GUI_App::load_language(wxString language, bool in
}
#endif
}
@ -72,7 +72,7 @@
}
const wxLanguageInfo *language_info = language.empty() ? nullptr : wxLocale::FindLanguageInfo(language);
@@ -2502,7 +2506,7 @@ bool GUI_App::load_language(wxString language, bool in
@@ -2594,7 +2598,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;
@ -81,7 +81,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)) {
@@ -2623,7 +2627,7 @@ wxMenu* GUI_App::get_config_menu(MainFrame* main_frame
@@ -2715,7 +2719,7 @@ wxMenu* GUI_App::get_config_menu(MainFrame* main_frame
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"));
@ -90,7 +90,7 @@
//if (DesktopIntegrationDialog::integration_possible())
local_menu->Append(config_id_base + ConfigMenuDesktopIntegration, _L("Desktop Integration"), _L("Desktop Integration"));
#endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
@@ -2657,7 +2661,7 @@ wxMenu* GUI_App::get_config_menu(MainFrame* main_frame
@@ -2749,7 +2753,7 @@ wxMenu* GUI_App::get_config_menu(MainFrame* main_frame
case ConfigMenuUpdateApp:
app_version_check(true);
break;
@ -98,8 +98,8 @@
+#if defined(__linux__) || defined(__FreeBSD__)
case ConfigMenuDesktopIntegration:
show_desktop_integration_dialog();
break;
@@ -3336,7 +3340,7 @@ void GUI_App::show_desktop_integration_dialog()
break;
@@ -3393,7 +3397,7 @@ void GUI_App::show_desktop_integration_dialog()
void GUI_App::show_desktop_integration_dialog()
{
@ -108,7 +108,7 @@
//wxCHECK_MSG(mainframe != nullptr, false, "Internal error: Main frame not created / null");
DesktopIntegrationDialog dialog(mainframe);
dialog.ShowModal();
@@ -3356,7 +3360,7 @@ void GUI_App::show_downloader_registration_dialog()
@@ -3413,7 +3417,7 @@ void GUI_App::show_downloader_registration_dialog()
if (msg.ShowModal() == wxID_YES) {
auto downloader_worker = new DownloaderUtils::Worker(nullptr);
downloader_worker->perform_download_register(app_config->get("url_downloader_dest"));
@ -117,7 +117,7 @@
if (DownloaderUtils::Worker::perform_registration_linux)
DesktopIntegrationDialog::perform_downloader_desktop_integration();
#endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
@@ -3790,7 +3794,7 @@ void GUI_App::start_download(std::string url)
@@ -3828,7 +3832,7 @@ void GUI_App::start_download(std::string url)
return;
}

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/GUI_Factories.cpp.orig 2024-06-27 09:25:47 UTC
--- src/slic3r/GUI/GUI_Factories.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/GUI_Factories.cpp
@@ -1499,7 +1499,7 @@ void MenuFactory::sys_color_changed(wxMenuBar* menubar
for (size_t id = 0; id < menubar->GetMenuCount(); id++) {

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/GUI_ObjectLayers.cpp.orig 2023-12-12 14:21:21 UTC
--- src/slic3r/GUI/GUI_ObjectLayers.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/GUI_ObjectLayers.cpp
@@ -348,7 +348,7 @@ LayerRangeEditor::LayerRangeEditor( ObjectLayers* pare
m_enter_pressed = true;

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/GUI_Utils.cpp.orig 2023-12-12 14:21:21 UTC
--- src/slic3r/GUI/GUI_Utils.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/GUI_Utils.cpp
@@ -53,7 +53,7 @@ void on_window_geometry(wxTopLevelWindow *tlw, std::fu
// cf. https://groups.google.com/forum/#!topic/wx-users/c7ntMt6piRI

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/HintNotification.cpp.orig 2024-10-15 09:07:17 UTC
--- src/slic3r/GUI/HintNotification.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/HintNotification.cpp
@@ -161,6 +161,13 @@ TagCheckResult tag_check_system(const std::string& tag
return TagCheckNegative;

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/InstanceCheck.cpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/InstanceCheck.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/InstanceCheck.cpp
@@ -27,7 +27,7 @@
#include <strsafe.h>

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/InstanceCheck.hpp.orig 2023-12-12 14:21:21 UTC
--- src/slic3r/GUI/InstanceCheck.hpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/InstanceCheck.hpp
@@ -15,7 +15,7 @@
@ -9,7 +9,7 @@
#include <boost/thread.hpp>
#include <mutex>
#include <condition_variable>
@@ -42,7 +42,7 @@ namespace GUI {
@@ -42,7 +42,7 @@ class MainFrame;
class MainFrame;

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/KBShortcutsDialog.cpp.orig 2023-12-12 14:21:21 UTC
--- src/slic3r/GUI/KBShortcutsDialog.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/KBShortcutsDialog.cpp
@@ -59,7 +59,7 @@ KBShortcutsDialog::KBShortcutsDialog()
main_sizer->SetSizeHints(this);

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/Mouse3DController.cpp.orig 2023-12-12 14:21:21 UTC
--- src/slic3r/GUI/Mouse3DController.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/Mouse3DController.cpp
@@ -890,7 +890,7 @@ bool Mouse3DController::connect_device()

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/OpenGLManager.cpp.orig 2024-06-27 09:25:47 UTC
--- src/slic3r/GUI/OpenGLManager.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/OpenGLManager.cpp
@@ -346,7 +346,7 @@ bool OpenGLManager::init_gl()
if (!m_gl_initialized) {

View file

@ -1,6 +1,6 @@
--- src/slic3r/GUI/OptionsGroup.cpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/OptionsGroup.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/OptionsGroup.cpp
@@ -1216,7 +1216,7 @@ void ogStaticText::SetPathEnd(const std::string& link)
@@ -1234,7 +1234,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()));
@@ -1269,7 +1269,7 @@ void ogStaticText::FocusText(bool focus)
@@ -1287,7 +1287,7 @@ void ogStaticText::FocusText(bool focus)
SetFont(focus ? Slic3r::GUI::wxGetApp().link_font() :
Slic3r::GUI::wxGetApp().normal_font());

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/PhysicalPrinterDialog.cpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/PhysicalPrinterDialog.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/PhysicalPrinterDialog.cpp
@@ -607,7 +607,7 @@ void PhysicalPrinterDialog::build_printhost_settings(C
// Always fill in the "printhost_port" combo box from the config and select it.

View file

@ -1,6 +1,15 @@
--- src/slic3r/GUI/Plater.cpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/Plater.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/Plater.cpp
@@ -894,7 +894,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
@@ -24,7 +24,7 @@
#include <cstddef>
#include <algorithm>
-#include <nanosvgrast.h>
+#include <libnanosvg/nanosvgrast.h>
#include <numeric>
#include <vector>
#include <string>
@@ -912,7 +912,7 @@ void Plater::priv::init()
auto open_external_login = [this](wxCommandEvent& evt){
DownloaderUtils::Worker::perform_url_register();
@ -9,7 +18,7 @@
// Remove all desktop files registering prusaslicer:// url done by previous versions.
DesktopIntegrationDialog::undo_downloader_registration_rigid();
#if defined(SLIC3R_DESKTOP_INTEGRATION)
@@ -1201,7 +1201,7 @@ std::vector<size_t> Plater::priv::load_files(const std
@@ -1228,7 +1228,7 @@ std::vector<size_t> 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.
@ -18,8 +27,8 @@
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
@@ -1256,7 +1256,7 @@ std::vector<size_t> Plater::priv::load_files(const std
bool is_project_file = type_prusa;
@@ -1285,7 +1285,7 @@ std::vector<size_t> Plater::priv::load_files(const std
try {
if (type_3mf || type_zip_amf) {
-#ifdef __linux__
@ -27,7 +36,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,
@@ -3225,7 +3225,7 @@ void Plater::priv::on_right_click(RBtnEvent& evt)
@@ -3552,7 +3552,7 @@ void Plater::priv::on_right_click(RBtnEvent& evt)
Vec2d mouse_position = evt.data.first;
wxPoint position(static_cast<int>(mouse_position.x()),
static_cast<int>(mouse_position.y()));
@ -36,9 +45,9 @@
// For some reason on Linux the menu isn't displayed if position is
// specified (even though the position is sane).
position = wxDefaultPosition;
@@ -4106,7 +4106,7 @@ void Plater::load_project(const wxString& filename)
p->reset();
@@ -4420,7 +4420,7 @@ void Plater::load_project(const wxString& filename)
s_multiple_beds.set_loading_project_flag(true);
ScopeGuard guard([](){ s_multiple_beds.set_loading_project_flag(false);});
- if (! load_files({ into_path(filename) }).empty()) {
+ if (! load_files((const std::vector<boost::filesystem::path>){ into_path(filename) }).empty()) {

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/Preferences.cpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/Preferences.cpp.orig 2025-02-20 20:11:25 UTC
+++ src/slic3r/GUI/Preferences.cpp
@@ -29,7 +29,7 @@
#ifdef WIN32
@ -14,11 +14,11 @@
#else
tabs = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNB_TOP | wxTAB_TRAVERSAL |wxNB_NOPAGETHEME | wxNB_DEFAULT );
-#ifdef __linux__
+#if defined __linux__ || defined __FreeBSD__
+#if defined(__linux__) || defined(__FreeBSD__)
tabs->Bind(wxEVT_NOTEBOOK_PAGE_CHANGED, [this](wxBookCtrlEvent& e) {
e.Skip();
CallAfter([this]() { tabs->GetCurrentPage()->Layout(); });
@@ -755,7 +755,7 @@ void PreferencesDialog::accept(wxEvent&)
@@ -750,7 +750,7 @@ void PreferencesDialog::accept(wxEvent&)
downloader->allow(it->second == "1");
if (!downloader->on_finish())
return;
@ -27,7 +27,7 @@
if(DownloaderUtils::Worker::perform_registration_linux)
DesktopIntegrationDialog::perform_downloader_desktop_integration();
#endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
@@ -1113,7 +1113,7 @@ void PreferencesDialog::create_settings_font_widget()
@@ -1108,7 +1108,7 @@ void PreferencesDialog::create_settings_font_widget()
font_example->SetFont(font);
m_values[opt_key] = format("%1%", val);
stb_sizer->Layout();

View file

@ -1,6 +1,6 @@
--- src/slic3r/GUI/PresetComboBoxes.cpp.orig 2024-06-27 09:25:47 UTC
--- src/slic3r/GUI/PresetComboBoxes.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/PresetComboBoxes.cpp
@@ -882,7 +882,7 @@ void PlaterPresetComboBox::show_edit_menu()
@@ -890,7 +890,7 @@ void PlaterPresetComboBox::show_edit_menu()
[this](wxCommandEvent&) { this->switch_to_tab(); }, "cog", menu, []() { return true; }, wxGetApp().plater());
if (m_type == Preset::TYPE_FILAMENT) {

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/PresetComboBoxes.hpp.orig 2024-06-27 09:25:47 UTC
--- src/slic3r/GUI/PresetComboBoxes.hpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/PresetComboBoxes.hpp
@@ -129,7 +129,7 @@ class PresetComboBox : public BitmapComboBox (protecte
void validate_selection(bool predicate = false);

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/PrintHostDialogs.cpp.orig 2023-12-12 14:21:21 UTC
--- src/slic3r/GUI/PrintHostDialogs.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/PrintHostDialogs.cpp
@@ -105,8 +105,8 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::pat
if (size_t extension_start = recent_path.find_last_of('.'); extension_start != std::string::npos)

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/RemovableDriveManager.cpp.orig 2024-06-27 09:25:47 UTC
--- src/slic3r/GUI/RemovableDriveManager.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/RemovableDriveManager.cpp
@@ -743,7 +743,7 @@ namespace search_for_drives_internal
//confirms if the file is removable drive and adds it to vector

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/Search.cpp.orig 2024-10-15 09:09:17 UTC
--- src/slic3r/GUI/Search.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/Search.cpp
@@ -455,7 +455,7 @@ void OptionsSearcher::check_and_hide_dialog()
@ -9,12 +9,3 @@
// Temporary linux specific workaround:
// has_focus(search_dialog) always returns false
// That's why search dialog will be hidden whole the time
@@ -531,7 +531,7 @@ void OptionsSearcher::process_key_down_from_input(wxKe
search_dialog->Hide();
else if (search_dialog && (key == WXK_UP || key == WXK_DOWN || key == WXK_NUMPAD_ENTER || key == WXK_RETURN)) {
search_dialog->KeyDown(e);
-#ifdef __linux__
+#if defined(__linux__) || defined(__FreeBSD__)
search_dialog->SetFocus();
#endif // __linux__
}

View file

@ -1,6 +1,6 @@
--- src/slic3r/GUI/Tab.cpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/Tab.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/Tab.cpp
@@ -278,7 +278,7 @@ void Tab::create_preset_tab()
@@ -279,7 +279,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());
@ -9,7 +9,7 @@
m_treectrl->SetBackgroundColour(m_parent->GetBackgroundColour());
#endif
m_left_sizer->Add(m_treectrl, 1, wxEXPAND);
@@ -292,7 +292,7 @@ void Tab::create_preset_tab()
@@ -293,7 +293,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&) {
@ -18,7 +18,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
@@ -4143,7 +4143,7 @@ bool Tab::tree_sel_change_delayed()
@@ -4158,7 +4158,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.
@ -27,7 +27,7 @@
std::unique_ptr<wxWindowUpdateLocker> no_updates(new wxWindowUpdateLocker(this));
#else
/* On Windows we use DoubleBuffering during rendering,
@@ -4189,7 +4189,7 @@ bool Tab::tree_sel_change_delayed()
@@ -4204,7 +4204,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);

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/TopBar.cpp.orig 2024-10-15 09:10:59 UTC
--- src/slic3r/GUI/TopBar.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/TopBar.cpp
@@ -52,7 +52,7 @@ TopBarItemsCtrl::Button::Button(wxWindow* parent, cons
Bind(wxEVT_LEAVE_WINDOW, [this](wxMouseEvent& event) { set_hovered(false); event.Skip(); });

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/UnsavedChangesDialog.cpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/UnsavedChangesDialog.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/UnsavedChangesDialog.cpp
@@ -32,7 +32,7 @@ using boost::optional;

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/UnsavedChangesDialog.hpp.orig 2024-06-27 09:25:47 UTC
--- src/slic3r/GUI/UnsavedChangesDialog.hpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/UnsavedChangesDialog.hpp
@@ -49,7 +49,7 @@ class ModelNode
wxString m_mod_color;

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/UpdateDialogs.cpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/UpdateDialogs.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/UpdateDialogs.cpp
@@ -153,7 +153,7 @@ AppUpdateDownloadDialog::AppUpdateDownloadDialog( cons
versions->Add(new wxStaticText(this, wxID_ANY, ver_online.to_string()));

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/UserAccountCommunication.cpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/GUI/UserAccountCommunication.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/UserAccountCommunication.cpp
@@ -13,6 +13,7 @@
#include <boost/filesystem.hpp>
@ -35,7 +35,7 @@
load_refresh_token_linux(refresh_token);
#endif
}
@@ -254,7 +255,7 @@ void UserAccountCommunication::set_username(const std:
@@ -252,7 +253,7 @@ void UserAccountCommunication::set_username(const std:
save_secret("tokens", m_session->get_shared_session_key(), tokens);
}
else {

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/WipeTowerDialog.cpp.orig 2024-10-15 09:12:21 UTC
--- src/slic3r/GUI/WipeTowerDialog.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/WipeTowerDialog.cpp
@@ -379,7 +379,7 @@ WipingPanel::WipingPanel(wxWindow* parent, const std::
int xpos = m_gridsizer_advanced->GetPosition().x;

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/wxExtensions.cpp.orig 2024-06-27 09:25:47 UTC
--- src/slic3r/GUI/wxExtensions.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/wxExtensions.cpp
@@ -28,7 +28,7 @@

View file

@ -1,4 +1,4 @@
--- src/slic3r/GUI/wxExtensions.hpp.orig 2024-06-27 09:25:47 UTC
--- src/slic3r/GUI/wxExtensions.hpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/GUI/wxExtensions.hpp
@@ -21,7 +21,7 @@
#include <boost/filesystem.hpp>

View file

@ -1,6 +1,6 @@
--- src/slic3r/Utils/AppUpdater.cpp.orig 2024-10-15 09:13:05 UTC
--- src/slic3r/Utils/AppUpdater.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/Utils/AppUpdater.cpp
@@ -156,7 +156,7 @@ AppUpdater::priv::priv() :
@@ -157,7 +157,7 @@ AppUpdater::priv::priv() :
AppUpdater::priv::priv() :
m_cancel (false)

View file

@ -0,0 +1,47 @@
--- src/slic3r/Utils/Bonjour.cpp.orig 2025-02-14 23:36:08 UTC
+++ src/slic3r/Utils/Bonjour.cpp
@@ -624,7 +624,7 @@ UdpSession::UdpSession(Bonjour::ReplyFn rfn) : replyfn
buffer.resize(DnsMessage::MAX_SIZE);
}
-UdpSocket::UdpSocket( Bonjour::ReplyFn replyfn, const asio::ip::address& multicast_address, const asio::ip::address& interface_address, std::shared_ptr< boost::asio::io_service > io_service)
+UdpSocket::UdpSocket( Bonjour::ReplyFn replyfn, const asio::ip::address& multicast_address, const asio::ip::address& interface_address, std::shared_ptr< boost::asio::io_context > io_service)
: replyfn(replyfn)
, multicast_address(multicast_address)
, socket(*io_service)
@@ -658,7 +658,7 @@ UdpSocket::UdpSocket( Bonjour::ReplyFn replyfn, const
}
-UdpSocket::UdpSocket( Bonjour::ReplyFn replyfn, const asio::ip::address& multicast_address, std::shared_ptr< boost::asio::io_service > io_service)
+UdpSocket::UdpSocket( Bonjour::ReplyFn replyfn, const asio::ip::address& multicast_address, std::shared_ptr< boost::asio::io_context > io_service)
: replyfn(replyfn)
, multicast_address(multicast_address)
, socket(*io_service)
@@ -714,7 +714,7 @@ void UdpSocket::receive_handler(SharedSession session,
// let io_service to handle the datagram on session
// from boost documentation io_service::post:
// The io_service guarantees that the handler will only be called in a thread in which the run(), run_one(), poll() or poll_one() member functions is currently being invoked.
- io_service->post(boost::bind(&UdpSession::handle_receive, session, error, bytes));
+ io_service->get_executor().post(boost::bind(&UdpSession::handle_receive, session, error, bytes),std::allocator<void>());
// immediately accept new datagrams
async_receive();
}
@@ -871,7 +871,7 @@ void Bonjour::priv::lookup_perform()
{
service_dn = (boost::format("_%1%._%2%.local") % service % protocol).str();
- std::shared_ptr< boost::asio::io_service > io_service(new boost::asio::io_service);
+ std::shared_ptr< boost::asio::io_context > io_service(new boost::asio::io_context);
std::vector<LookupSocket*> sockets;
@@ -966,7 +966,7 @@ void Bonjour::priv::resolve_perform()
rpls.push_back(reply);
};
- std::shared_ptr< boost::asio::io_service > io_service(new boost::asio::io_service);
+ std::shared_ptr< boost::asio::io_context > io_service(new boost::asio::io_context);
std::vector<ResolveSocket*> sockets;
// resolve interfaces - from PR#6646

View file

@ -0,0 +1,61 @@
--- src/slic3r/Utils/Bonjour.hpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/Utils/Bonjour.hpp
@@ -155,11 +155,11 @@ class UdpSocket (public)
UdpSocket(Bonjour::ReplyFn replyfn
, const boost::asio::ip::address& multicast_address
, const boost::asio::ip::address& interface_address
- , std::shared_ptr< boost::asio::io_service > io_service);
+ , std::shared_ptr< boost::asio::io_context > io_service);
UdpSocket(Bonjour::ReplyFn replyfn
, const boost::asio::ip::address& multicast_address
- , std::shared_ptr< boost::asio::io_service > io_service);
+ , std::shared_ptr< boost::asio::io_context > io_service);
void send();
void async_receive();
@@ -172,7 +172,7 @@ class UdpSocket (public)
boost::asio::ip::address multicast_address;
boost::asio::ip::udp::socket socket;
boost::asio::ip::udp::endpoint mcast_endpoint;
- std::shared_ptr< boost::asio::io_service > io_service;
+ std::shared_ptr< boost::asio::io_context > io_service;
std::vector<BonjourRequest> requests;
};
@@ -186,7 +186,7 @@ class LookupSocket : public UdpSocket (public)
, Bonjour::ReplyFn replyfn
, const boost::asio::ip::address& multicast_address
, const boost::asio::ip::address& interface_address
- , std::shared_ptr< boost::asio::io_service > io_service)
+ , std::shared_ptr< boost::asio::io_context > io_service)
: UdpSocket(replyfn, multicast_address, interface_address, io_service)
, txt_keys(txt_keys)
, service(service)
@@ -203,7 +203,7 @@ class LookupSocket : public UdpSocket (public)
, std::string protocol
, Bonjour::ReplyFn replyfn
, const boost::asio::ip::address& multicast_address
- , std::shared_ptr< boost::asio::io_service > io_service)
+ , std::shared_ptr< boost::asio::io_context > io_service)
: UdpSocket(replyfn, multicast_address, io_service)
, txt_keys(txt_keys)
, service(service)
@@ -241,7 +241,7 @@ class ResolveSocket : public UdpSocket (public)
, Bonjour::ReplyFn replyfn
, const boost::asio::ip::address& multicast_address
, const boost::asio::ip::address& interface_address
- , std::shared_ptr< boost::asio::io_service > io_service)
+ , std::shared_ptr< boost::asio::io_context > io_service)
: UdpSocket(replyfn, multicast_address, interface_address, io_service)
, hostname(hostname)
@@ -253,7 +253,7 @@ class ResolveSocket : public UdpSocket (public)
ResolveSocket(const std::string& hostname
, Bonjour::ReplyFn replyfn
, const boost::asio::ip::address& multicast_address
- , std::shared_ptr< boost::asio::io_service > io_service)
+ , std::shared_ptr< boost::asio::io_context > io_service)
: UdpSocket(replyfn, multicast_address, io_service)
, hostname(hostname)

View file

@ -1,4 +1,4 @@
--- src/slic3r/Utils/FontConfigHelp.hpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/Utils/FontConfigHelp.hpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/Utils/FontConfigHelp.hpp
@@ -6,7 +6,7 @@
#define slic3r_FontConfigHelp_hpp_

View file

@ -1,20 +1,16 @@
--- src/slic3r/Utils/Serial.cpp.orig 2023-12-12 14:21:21 UTC
--- src/slic3r/Utils/Serial.cpp.orig 2025-02-14 23:15:01 UTC
+++ src/slic3r/Utils/Serial.cpp
@@ -53,7 +53,7 @@
#include <sys/select.h>
#endif
@@ -282,11 +282,11 @@ using boost::system::error_code;
namespace asio = boost::asio;
using boost::system::error_code;
-#if defined(__APPLE__) || defined(__OpenBSD__)
+#if defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__)
#include <termios.h>
#elif defined __linux__
#include <fcntl.h>
@@ -346,7 +346,7 @@ void Serial::set_baud_rate(unsigned baud_rate)
ios.c_cc[VTIME] = 1;
handle_errno(::ioctl(handle, TCSETS2, &ios));
-Serial::Serial(asio::io_service& io_service) :
+Serial::Serial(asio::io_context &io_service) :
asio::serial_port(io_service)
{}
-#elif __OpenBSD__
+#elif defined(__OpenBSD__) || defined(__FreeBSD__)
struct termios ios;
handle_errno(::tcgetattr(handle, &ios));
handle_errno(::cfsetspeed(&ios, baud_rate));
-Serial::Serial(asio::io_service& io_service, const std::string &name, unsigned baud_rate) :
+Serial::Serial(asio::io_context &io_service, const std::string &name, unsigned baud_rate) :
asio::serial_port(io_service, name)
{
set_baud_rate(baud_rate);

View file

@ -0,0 +1,13 @@
--- src/slic3r/Utils/Serial.hpp.orig 2025-02-14 23:32:07 UTC
+++ src/slic3r/Utils/Serial.hpp
@@ -43,8 +43,8 @@ class Serial : public boost::asio::serial_port (public
class Serial : public boost::asio::serial_port
{
public:
- Serial(boost::asio::io_service &io_service);
- Serial(boost::asio::io_service &io_service, const std::string &name, unsigned baud_rate);
+ Serial(boost::asio::io_context &io_service);
+ Serial(boost::asio::io_context &io_service, const std::string &name, unsigned baud_rate);
Serial(const Serial &) = delete;
Serial &operator=(const Serial &) = delete;
~Serial();

View file

@ -0,0 +1,11 @@
--- src/slic3r/Utils/TCPConsole.cpp.orig 2025-02-14 23:42:57 UTC
+++ src/slic3r/Utils/TCPConsole.cpp
@@ -161,7 +161,7 @@ bool TCPConsole::run_queue()
auto endpoints = m_resolver.resolve(m_host_name, m_port_name);
- m_socket.async_connect(endpoints->endpoint(),
+ m_socket.async_connect(endpoints.begin()->endpoint(),
boost::bind(&TCPConsole::handle_connect, this, boost::placeholders::_1)
);

View file

@ -1,4 +1,4 @@
--- src/slic3r/Utils/WifiScanner.cpp.orig 2024-06-27 09:25:47 UTC
--- src/slic3r/Utils/WifiScanner.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/Utils/WifiScanner.cpp
@@ -16,7 +16,7 @@
#include "WifiScannerMac.h"

View file

@ -1,4 +1,4 @@
--- src/slic3r/Utils/WxFontUtils.cpp.orig 2024-09-18 13:39:04 UTC
--- src/slic3r/Utils/WxFontUtils.cpp.orig 2024-12-20 11:54:34 UTC
+++ src/slic3r/Utils/WxFontUtils.cpp
@@ -19,7 +19,7 @@
#include <wx/uri.h>

View file

@ -1,7 +1,7 @@
--- tests/fff_print/test_data.cpp.orig 2023-07-25 13:20:52 UTC
--- tests/fff_print/test_data.cpp.orig 2024-12-20 11:54:34 UTC
+++ tests/fff_print/test_data.cpp
@@ -8,6 +8,7 @@
#include "libslic3r/Format/STL.hpp"
@@ -10,6 +10,7 @@
#include <arrange-wrapper/ModelArrange.hpp>
#include <cstdlib>
+#include <fstream>

View file

@ -1,6 +1,6 @@
--- tests/libslic3r/test_emboss.cpp.orig 2024-09-18 13:39:04 UTC
--- tests/libslic3r/test_emboss.cpp.orig 2024-12-20 11:54:34 UTC
+++ tests/libslic3r/test_emboss.cpp
@@ -196,7 +196,7 @@ TEST_CASE("Visualize glyph from font", "[Emboss]")
@@ -197,7 +197,7 @@ TEST_CASE("Visualize glyph from font", "[Emboss]")
#endif // VISUALIZE
#include "test_utils.hpp"

File diff suppressed because it is too large Load diff