summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cad/PrusaSlicer/Makefile5
-rw-r--r--cad/PrusaSlicer/distinfo6
-rw-r--r--cad/PrusaSlicer/files/patch-CMakeLists.txt19
-rw-r--r--cad/PrusaSlicer/files/patch-src_CMakeLists.txt8
-rw-r--r--cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt4
-rw-r--r--cad/PrusaSlicer/files/patch-src_libslic3r_Utils_DirectoriesUtils.cpp19
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_CMakeLists.txt13
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp23
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.hpp17
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_GLCanvas3D.cpp4
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI.cpp6
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI.hpp4
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp48
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Factories.cpp4
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.cpp28
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.hpp11
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_Gizmos_GLGizmoSVG.cpp4
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.cpp6
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_OpenGLManager.cpp10
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_OptionsGroup.cpp6
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_PhysicalPrinterDialog.cpp4
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp10
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_Preferences.cpp26
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetComboBoxes.cpp4
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetComboBoxes.hpp4
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_RemovableDriveManager.cpp4
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp28
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_UnsavedChangesDialog.cpp16
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_UnsavedChangesDialog.hpp6
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_UserAccountCommunication.cpp46
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.cpp29
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.hpp6
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_Utils_WifiScanner.cpp5
33 files changed, 213 insertions, 220 deletions
diff --git a/cad/PrusaSlicer/Makefile b/cad/PrusaSlicer/Makefile
index e5c9adc945e1..c4421d01825e 100644
--- a/cad/PrusaSlicer/Makefile
+++ b/cad/PrusaSlicer/Makefile
@@ -1,7 +1,6 @@
PORTNAME= PrusaSlicer
DISTVERSIONPREFIX=version_
-DISTVERSION= 2.7.4
-PORTREVISION= 3
+DISTVERSION= 2.8.0
CATEGORIES= cad
DIST_SUBDIR= PrusaSlicer
@@ -15,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
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:cad/libbgcode
+ libbgcode>=0.2.0_1:cad/libbgcode
LIB_DEPENDS+= libbgcode_convert.so:cad/libbgcode \
libbgcode_binarize.so:cad/libbgcode \
diff --git a/cad/PrusaSlicer/distinfo b/cad/PrusaSlicer/distinfo
index 1b16531420b3..59cb1f3b0a83 100644
--- a/cad/PrusaSlicer/distinfo
+++ b/cad/PrusaSlicer/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712342295
-SHA256 (PrusaSlicer/prusa3d-PrusaSlicer-version_2.7.4_GH0.tar.gz) = 6370a9593aeac5c56543e66d167ab5fd053df55b9376392c2d6184eb0bf65fc8
-SIZE (PrusaSlicer/prusa3d-PrusaSlicer-version_2.7.4_GH0.tar.gz) = 65396083
+TIMESTAMP = 1719924925
+SHA256 (PrusaSlicer/prusa3d-PrusaSlicer-version_2.8.0_GH0.tar.gz) = 58d484f85b34d83026f8220bab983f855fbcd72767d0887f21f5cc382e5b19ab
+SIZE (PrusaSlicer/prusa3d-PrusaSlicer-version_2.8.0_GH0.tar.gz) = 69806919
diff --git a/cad/PrusaSlicer/files/patch-CMakeLists.txt b/cad/PrusaSlicer/files/patch-CMakeLists.txt
index bb479cff34f2..44016fce0aca 100644
--- a/cad/PrusaSlicer/files/patch-CMakeLists.txt
+++ b/cad/PrusaSlicer/files/patch-CMakeLists.txt
@@ -1,4 +1,4 @@
---- CMakeLists.txt.orig 2024-02-29 13:03:32 UTC
+--- CMakeLists.txt.orig 2024-06-27 09:25:47 UTC
+++ CMakeLists.txt
@@ -14,6 +14,7 @@ include(CMakeDependentOption)
include("version.inc")
@@ -8,7 +8,7 @@
set(SLIC3R_RESOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/resources")
file(TO_NATIVE_PATH "${SLIC3R_RESOURCES_DIR}" SLIC3R_RESOURCES_DIR_WIN)
-@@ -218,7 +219,7 @@ endif ()
+@@ -234,7 +235,7 @@ endif ()
endif ()
endif ()
@@ -17,7 +17,7 @@
find_package(PkgConfig REQUIRED)
if (CMAKE_VERSION VERSION_LESS "3.1")
-@@ -248,6 +249,8 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL
+@@ -264,6 +265,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)
@@ -26,16 +26,7 @@
# 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)
-
--add_library(libexpat INTERFACE)
-+# add_library(libexpat INTERFACE)
-
- if (TARGET EXPAT::EXPAT )
- target_link_libraries(libexpat INTERFACE EXPAT::EXPAT)
-@@ -631,8 +634,8 @@ elseif (SLIC3R_FHS)
+@@ -648,8 +651,8 @@ elseif (SLIC3R_FHS)
install(DIRECTORY ${SLIC3R_RESOURCES_DIR}/ DESTINATION ${SLIC3R_FHS_RESOURCES}
PATTERN "*/udev" EXCLUDE
)
@@ -46,7 +37,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
-@@ -641,7 +644,8 @@ elseif (SLIC3R_FHS)
+@@ -658,7 +661,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
index 77880e102ea7..7d4b3ff67350 100644
--- 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-12-12 14:21:21 UTC
+--- src/CMakeLists.txt.orig 2024-06-27 09:25:47 UTC
+++ src/CMakeLists.txt
-@@ -62,7 +62,7 @@ if (SLIC3R_GUI)
+@@ -60,7 +60,7 @@ if (SLIC3R_GUI)
+ endif()
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)
string(REGEX MATCH "wxpng" WX_PNG_BUILTIN ${wxWidgets_LIBRARIES})
if (PNG_FOUND AND NOT WX_PNG_BUILTIN)
-@@ -131,7 +131,7 @@ if (NOT WIN32 AND NOT APPLE)
+@@ -123,7 +123,7 @@ endif ()
set_target_properties(PrusaSlicer PROPERTIES OUTPUT_NAME "prusa-slicer")
endif ()
diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt b/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt
index a9e06edfca78..770fb44cf65a 100644
--- 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 2024-04-05 09:25:31 UTC
+--- src/libslic3r/CMakeLists.txt.orig 2024-06-27 09:25:47 UTC
+++ src/libslic3r/CMakeLists.txt
-@@ -576,7 +576,6 @@ target_link_libraries(libslic3r
+@@ -611,7 +611,6 @@ target_link_libraries(libslic3r
target_link_libraries(libslic3r
libnest2d
admesh
diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_Utils_DirectoriesUtils.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_Utils_DirectoriesUtils.cpp
new file mode 100644
index 000000000000..bfe21a052f4d
--- /dev/null
+++ b/cad/PrusaSlicer/files/patch-src_libslic3r_Utils_DirectoriesUtils.cpp
@@ -0,0 +1,19 @@
+--- src/libslic3r/Utils/DirectoriesUtils.cpp.orig 2024-07-03 10:13:37 UTC
++++ src/libslic3r/Utils/DirectoriesUtils.cpp
+@@ -3,6 +3,7 @@
+
+ #include <boost/filesystem/path.hpp>
+ #include <boost/log/trivial.hpp>
++#include <boost/nowide/convert.hpp>
+
+ #if defined(_WIN32)
+
+@@ -46,7 +47,7 @@ static std::string GetDataDir()
+ return boost::nowide::narrow(buffer);
+ }
+
+-#elif defined(__linux__)
++#elif (defined(__linux__) || defined(__FreeBSD__))
+
+ #include <stdlib.h>
+ #include <pwd.h>
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_CMakeLists.txt b/cad/PrusaSlicer/files/patch-src_slic3r_CMakeLists.txt
index 7c735f83f9d0..5f0492369639 100644
--- 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-12-12 14:21:21 UTC
+--- src/slic3r/CMakeLists.txt.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/CMakeLists.txt
-@@ -333,7 +333,7 @@ set(SLIC3R_GUI_SOURCES
- Utils/WifiScanner.cpp
+@@ -375,7 +375,7 @@ set(SLIC3R_GUI_SOURCES
+ Utils/PrusaConnect.cpp
)
-find_package(NanoSVG REQUIRED)
@@ -9,13 +9,12 @@
if (APPLE)
list(APPEND SLIC3R_GUI_SOURCES
-@@ -362,11 +362,12 @@ endforeach()
+@@ -404,11 +404,11 @@ encoding_check(libslic3r_gui)
encoding_check(libslic3r_gui)
--target_link_libraries(libslic3r_gui libslic3r avrdude libcereal imgui GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES} NanoSVG::nanosvg NanoSVG::nanosvgrast)
-+# target_link_libraries(libslic3r_gui libslic3r avrdude imgui GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES} NanoSVG::nanosvg NanoSVG::nanosvgrast)
-+target_link_libraries(libslic3r_gui libslic3r avrdude imgui GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES})
+-target_link_libraries(libslic3r_gui libslic3r avrdude libcereal imgui libvgcode GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES} NanoSVG::nanosvg NanoSVG::nanosvgrast)
++target_link_libraries(libslic3r_gui libslic3r avrdude imgui libvgcode GLEW::GLEW OpenGL::GL hidapi libcurl crypto ${wxWidgets_LIBRARIES})
if (MSVC)
target_link_libraries(libslic3r_gui Setupapi.lib)
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp
index 17e0bdf7b75c..17e8a257528d 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp
@@ -1,15 +1,6 @@
---- src/slic3r/GUI/ConfigWizard.cpp.orig 2024-04-05 09:25:31 UTC
+--- src/slic3r/GUI/ConfigWizard.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/ConfigWizard.cpp
-@@ -69,7 +69,7 @@
- #include "slic3r/GUI/I18N.hpp"
- #include "slic3r/Config/Version.hpp"
-
--#if defined(__linux__) && defined(__WXGTK3__)
-+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(__WXGTK3__)
- #define wxLinux_gtk3 true
- #else
- #define wxLinux_gtk3 false
-@@ -596,7 +596,7 @@ void PageWelcome::set_run_reason(ConfigWizard::RunReas
+@@ -638,7 +638,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,7 +9,7 @@
if (!DesktopIntegrationDialog::is_integrated())
cbox_integrate->Show(true);
else
-@@ -1518,7 +1518,7 @@ PageDownloader::PageDownloader(ConfigWizard* parent)
+@@ -1696,7 +1696,7 @@ PageDownloader::PageDownloader(ConfigWizard* parent)
));
}
@@ -27,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."
)));
-@@ -1579,7 +1579,7 @@ bool DownloaderUtils::Worker::perform_register(const s
+@@ -1759,7 +1759,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 +27,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)
#elif defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
-@@ -1598,7 +1598,7 @@ void DownloaderUtils::Worker::deregister()
+@@ -1778,7 +1778,7 @@ void DownloaderUtils::Worker::deregister()
return;
}
key_full = key_string;
@@ -45,12 +36,12 @@
// TODO
#elif defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
BOOST_LOG_TRIVIAL(debug) << "DesktopIntegrationDialog::undo_downloader_registration";
-@@ -3063,7 +3063,7 @@ bool ConfigWizard::priv::apply_config(AppConfig *app_c
+@@ -3422,7 +3422,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());
-#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION)
// Desktop integration on Linux
- BOOST_LOG_TRIVIAL(debug) << "ConfigWizard::priv::apply_config integrate_desktop" << page_welcome->integrate_desktop() << " perform_registration_linux " << page_downloader->m_downloader->get_perform_registration_linux();
+ BOOST_LOG_TRIVIAL(debug) << "ConfigWizard::priv::apply_config integrate_desktop" << page_welcome->integrate_desktop() << " perform_registration_linux " << DownloaderUtils::Worker::perform_registration_linux;
if (page_welcome->integrate_desktop())
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.hpp
index 5f9a904024cc..49df66adfe4d 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.hpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.hpp
@@ -1,20 +1,11 @@
---- src/slic3r/GUI/ConfigWizard.hpp.orig 2023-12-12 14:21:21 UTC
+--- src/slic3r/GUI/ConfigWizard.hpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/ConfigWizard.hpp
-@@ -31,7 +31,7 @@ namespace DownloaderUtils {
- wxWindow* m_parent{ nullptr };
- wxTextCtrl* m_input_path{ nullptr };
- bool downloader_checked{ false };
--#ifdef __linux__
-+#if defined(__linux__) || defined(__FreeBSD__)
- bool perform_registration_linux{ false };
- #endif // __linux__
-
-@@ -50,7 +50,7 @@ namespace DownloaderUtils {
+@@ -53,7 +53,7 @@ namespace DownloaderUtils {
bool on_finish();
- bool perform_register(const std::string& path_override = {});
+ static bool perform_register(const std::string& path);
-#ifdef __linux__
+#if defined(__linux__) || defined(__FreeBSD__)
- bool get_perform_registration_linux() { return perform_registration_linux; }
+ static bool perform_registration_linux;
#endif // __linux__
};
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GLCanvas3D.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GLCanvas3D.cpp
index 4ecbcc7e72b3..840d7463283b 100644
--- 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-12-12 14:21:21 UTC
+--- src/slic3r/GUI/GLCanvas3D.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/GLCanvas3D.cpp
-@@ -108,7 +108,7 @@ float RetinaHelper::get_scale_factor() { return float(
+@@ -104,7 +104,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_GUI.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI.cpp
index a96b1e1d5d24..110e5c8a49be 100644
--- 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 2024-02-29 13:03:32 UTC
+--- src/slic3r/GUI/GUI.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/GUI.cpp
-@@ -492,7 +492,7 @@ void desktop_open_folder(const boost::filesystem::path
+@@ -296,7 +296,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<wchar_t**>(argv), wxEXEC_ASYNC, nullptr);
@@ -9,7 +9,7 @@
const char* argv[] = { "open", path.string().c_str(), nullptr };
::wxExecute(const_cast<char**>(argv), wxEXEC_ASYNC, nullptr);
#else
-@@ -501,7 +501,7 @@ void desktop_open_folder(const boost::filesystem::path
+@@ -305,7 +305,7 @@ void desktop_open_folder(const boost::filesystem::path
#endif
}
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI.hpp
index 14508a97158c..e1da3491b81c 100644
--- 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 2024-02-29 13:03:32 UTC
+--- src/slic3r/GUI/GUI.hpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/GUI.hpp
-@@ -88,7 +88,7 @@ void desktop_open_folder(const boost::filesystem::path
+@@ -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.
void desktop_open_folder(const boost::filesystem::path& path);
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp
index 3066068410c9..c50a678ec045 100644
--- 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 2024-04-05 09:25:31 UTC
+--- src/slic3r/GUI/GUI_App.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/GUI_App.cpp
-@@ -403,7 +403,7 @@ class SplashScreen : public wxSplashScreen (private)
+@@ -411,7 +411,7 @@ class SplashScreen : public wxSplashScreen (private)
};
@@ -9,16 +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,
-@@ -937,7 +937,7 @@ void GUI_App::init_app_config()
- // Mac : "~/Library/Application Support/Slic3r"
-
- if (data_dir().empty()) {
-- #ifndef __linux__
-+ #if !defined(__linux__) && !defined(__FreeBSD__)
- set_data_dir(wxStandardPaths::Get().GetUserDataDir().ToUTF8().data());
- #else
- // Since version 2.3, config dir on Linux is in ${XDG_CONFIG_HOME}.
-@@ -1107,7 +1107,8 @@ bool GUI_App::on_init_inner()
+@@ -1254,7 +1254,8 @@ bool GUI_App::on_init_inner()
// Set initialization of image handlers before any UI actions - See GH issue #7469
wxInitAllImageHandlers();
@@ -28,7 +19,7 @@
#if defined(_WIN32) && ! defined(_WIN64)
// Win32 32bit build.
if (wxPlatformInfo::Get().GetArchName().substr(0, 2) == "64") {
-@@ -1135,7 +1136,7 @@ bool GUI_App::on_init_inner()
+@@ -1282,7 +1283,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 +28,7 @@
if (! check_old_linux_datadir(GetAppName())) {
std::cerr << "Quitting, user chose to move their data to new location." << std::endl;
return false;
-@@ -1240,7 +1241,7 @@ bool GUI_App::on_init_inner()
+@@ -1387,7 +1388,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 +37,7 @@
wxYield();
#endif
scrn->SetText(_L("Loading configuration")+ dots);
-@@ -1393,7 +1394,7 @@ bool GUI_App::on_init_inner()
+@@ -1546,7 +1547,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 +46,7 @@
if (!m_post_initialized && m_opengl_initialized) {
#else
if (!m_post_initialized) {
-@@ -2096,7 +2097,7 @@ bool GUI_App::switch_language()
+@@ -2236,7 +2237,7 @@ bool GUI_App::switch_language()
}
}
@@ -64,7 +55,7 @@
static const wxLanguageInfo* linux_get_existing_locale_language(const wxLanguageInfo* language,
const wxLanguageInfo* system_language)
{
-@@ -2298,7 +2299,7 @@ bool GUI_App::load_language(wxString language, bool in
+@@ -2438,7 +2439,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 +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.
-@@ -2307,6 +2308,7 @@ bool GUI_App::load_language(wxString language, bool in
+@@ -2447,6 +2448,7 @@ bool GUI_App::load_language(wxString language, bool in
}
#endif
}
@@ -81,7 +72,7 @@
}
const wxLanguageInfo *language_info = language.empty() ? nullptr : wxLocale::FindLanguageInfo(language);
-@@ -2351,7 +2353,7 @@ bool GUI_App::load_language(wxString language, bool in
+@@ -2491,7 +2493,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 +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)) {
-@@ -2471,7 +2473,7 @@ void GUI_App::add_config_menu(wxMenuBar *menu)
+@@ -2612,7 +2614,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"));
@@ -99,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)
-@@ -2519,7 +2521,7 @@ void GUI_App::add_config_menu(wxMenuBar *menu)
+@@ -2646,7 +2648,7 @@ wxMenu* GUI_App::get_config_menu(MainFrame* main_frame
case ConfigMenuUpdateApp:
app_version_check(true);
break;
@@ -108,7 +99,7 @@
case ConfigMenuDesktopIntegration:
show_desktop_integration_dialog();
break;
-@@ -3149,7 +3151,7 @@ void GUI_App::show_desktop_integration_dialog()
+@@ -3318,7 +3320,7 @@ void GUI_App::show_desktop_integration_dialog()
void GUI_App::show_desktop_integration_dialog()
{
@@ -117,12 +108,21 @@
//wxCHECK_MSG(mainframe != nullptr, false, "Internal error: Main frame not created / null");
DesktopIntegrationDialog dialog(mainframe);
dialog.ShowModal();
-@@ -3169,7 +3171,7 @@ void GUI_App::show_downloader_registration_dialog()
+@@ -3338,7 +3340,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"));
-#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION)
- if (downloader_worker->get_perform_registration_linux())
+ if (DownloaderUtils::Worker::perform_registration_linux)
DesktopIntegrationDialog::perform_downloader_desktop_integration();
#endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
+@@ -3746,7 +3748,7 @@ void GUI_App::start_download(std::string url)
+ return;
+ }
+
+- #if defined(__APPLE__) || (defined(__linux__) && !defined(SLIC3R_DESKTOP_INTEGRATION))
++ #if defined(__APPLE__) || ((defined(__linux__) || defined(__FreeBSD__)) && !defined(SLIC3R_DESKTOP_INTEGRATION))
+ if (app_config && !app_config->get_bool("downloader_url_registered"))
+ {
+ notification_manager()->push_notification(NotificationType::URLNotRegistered);
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Factories.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Factories.cpp
index e01c2f0640e2..154c16db480b 100644
--- 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 2024-02-29 13:03:32 UTC
+--- src/slic3r/GUI/GUI_Factories.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/GUI_Factories.cpp
-@@ -1466,7 +1466,7 @@ void MenuFactory::sys_color_changed(wxMenuBar* menubar
+@@ -1499,7 +1499,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__Preview.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.cpp
deleted file mode 100644
index ccb810cac91d..000000000000
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
---- src/slic3r/GUI/GUI_Preview.cpp.orig 2023-12-12 14:21:21 UTC
-+++ src/slic3r/GUI/GUI_Preview.cpp
-@@ -303,7 +303,7 @@ void Preview::load_print(bool keep_z_range)
-
- void Preview::reload_print(bool keep_volumes)
- {
--#ifdef __linux__
-+#if defined(__linux__) || defined(__FreeBSD__)
- // 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())
-@@ -313,14 +313,14 @@ void Preview::reload_print(bool keep_volumes)
- }
- #endif /* __linux__ */
- if (
--#ifdef __linux__
-+#if defined(__linux__) || defined(__FreeBSD__)
- m_volumes_cleanup_required ||
- #endif /* __linux__ */
- !keep_volumes)
- {
- m_canvas->reset_volumes();
- m_loaded = false;
--#ifdef __linux__
-+#if defined(__linux__) || defined(__FreeBSD__)
- m_volumes_cleanup_required = false;
- #endif /* __linux__ */
- }
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.hpp
deleted file mode 100644
index b7b873574480..000000000000
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Preview.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/slic3r/GUI/GUI_Preview.hpp.orig 2023-12-12 14:21:21 UTC
-+++ src/slic3r/GUI/GUI_Preview.hpp
-@@ -89,7 +89,7 @@ class Preview : public wxPanel
- BackgroundSlicingProcess* m_process;
- GCodeProcessorResult* m_gcode_result;
-
--#ifdef __linux__
-+#if defined(__linux__) || defined(__FreeBSD__)
- // We are getting mysterious crashes on Linux in gtk due to OpenGL context activation GH #1874 #1955.
- // So we are applying a workaround here.
- bool m_volumes_cleanup_required { false };
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Gizmos_GLGizmoSVG.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Gizmos_GLGizmoSVG.cpp
index cd2d110666ac..96d559c54334 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Gizmos_GLGizmoSVG.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Gizmos_GLGizmoSVG.cpp
@@ -1,4 +1,4 @@
---- src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp.orig 2024-02-29 13:03:32 UTC
+--- src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp
@@ -23,7 +23,7 @@
#include "libslic3r/ClipperUtils.hpp" // union_ex
@@ -9,7 +9,7 @@
#include <wx/display.h> // detection of change DPI
#include <boost/log/trivial.hpp>
-@@ -560,7 +560,7 @@ void GLGizmoSVG::on_dragging(const UpdateData &data) {
+@@ -587,7 +587,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"
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.cpp
index fed8953a3700..2d4aad87e7d2 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.cpp
@@ -1,4 +1,4 @@
---- src/slic3r/GUI/InstanceCheck.cpp.orig 2023-12-12 14:21:21 UTC
+--- src/slic3r/GUI/InstanceCheck.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/InstanceCheck.cpp
@@ -27,7 +27,7 @@
#include <strsafe.h>
@@ -9,7 +9,7 @@
#include <dbus/dbus.h> /* Pull in all of D-Bus headers. */
#endif //__linux__
-@@ -226,7 +226,7 @@ namespace instance_check_internal
+@@ -229,7 +229,7 @@ namespace instance_check_internal
return false;
}
@@ -18,7 +18,7 @@
static bool send_message(const std::string &message_text, const std::string &version)
{
-@@ -314,7 +314,7 @@ bool instance_check(int argc, char** argv, bool app_co
+@@ -317,7 +317,7 @@ bool instance_check(int argc, char** argv, bool app_co
hashed_path = std::hash<std::string>{}(boost::filesystem::system_complete(argv[0]).string());
#else
boost::system::error_code ec;
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OpenGLManager.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OpenGLManager.cpp
index 00ce74a6c7e2..d83b04d46975 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OpenGLManager.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OpenGLManager.cpp
@@ -1,9 +1,9 @@
---- src/slic3r/GUI/OpenGLManager.cpp.orig 2024-02-29 13:03:32 UTC
+--- src/slic3r/GUI/OpenGLManager.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/OpenGLManager.cpp
-@@ -344,7 +344,7 @@ bool OpenGLManager::init_gl()
- glewExperimental = true;
- #endif // ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES
- GLenum err = glewInit();
+@@ -346,7 +346,7 @@ bool OpenGLManager::init_gl()
+ if (!m_gl_initialized) {
+ glewExperimental = true;
+ GLenum err = glewInit();
- if (err != GLEW_OK) {
+ if (err != GLEW_OK && err != GLEW_ERROR_NO_GLX_DISPLAY) {
BOOST_LOG_TRIVIAL(error) << "Unable to init glew library: " << glewGetErrorString(err);
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OptionsGroup.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OptionsGroup.cpp
index 9ee01d7c0472..61172494d9be 100644
--- 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 2024-02-29 13:03:32 UTC
+--- src/slic3r/GUI/OptionsGroup.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/OptionsGroup.cpp
-@@ -1081,7 +1081,7 @@ void ogStaticText::SetPathEnd(const std::string& link)
+@@ -1215,7 +1215,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()));
-@@ -1134,7 +1134,7 @@ void ogStaticText::FocusText(bool focus)
+@@ -1268,7 +1268,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
index 05ce935c25d4..45dc17baa3c2 100644
--- 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-12-12 14:21:21 UTC
+--- src/slic3r/GUI/PhysicalPrinterDialog.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/PhysicalPrinterDialog.cpp
-@@ -467,7 +467,7 @@ void PhysicalPrinterDialog::build_printhost_settings(C
+@@ -606,7 +606,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<Choice*>(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
index ca035e9a15a2..466c87ed88bd 100644
--- 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 2024-04-05 09:25:31 UTC
+--- src/slic3r/GUI/Plater.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/Plater.cpp
-@@ -2558,7 +2558,7 @@ std::vector<size_t> Plater::priv::load_files(const std
+@@ -1163,7 +1163,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.
@@ -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
-@@ -2605,7 +2605,7 @@ std::vector<size_t> Plater::priv::load_files(const std
+@@ -1218,7 +1218,7 @@ std::vector<size_t> 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,
-@@ -4575,7 +4575,7 @@ void Plater::priv::on_right_click(RBtnEvent& evt)
+@@ -3171,7 +3171,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()));
@@ -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;
-@@ -5428,7 +5428,7 @@ void Plater::load_project(const wxString& filename)
+@@ -4048,7 +4048,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
index 07094d21f323..7dac66e12ce6 100644
--- 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 2024-04-05 09:25:31 UTC
+--- src/slic3r/GUI/Preferences.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/Preferences.cpp
-@@ -28,7 +28,7 @@
+@@ -29,7 +29,7 @@
#ifdef WIN32
#include <wx/msw/registry.h>
#endif // WIN32
@@ -9,12 +9,30 @@
#include "DesktopIntegrationDialog.hpp"
#endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
-@@ -758,7 +758,7 @@ void PreferencesDialog::accept(wxEvent&)
+@@ -267,7 +267,7 @@ void PreferencesDialog::build()
+ tabs = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNB_TOP | wxTAB_TRAVERSAL | wxNB_NOPAGETHEME | wxNB_DEFAULT);
+ #else
+ tabs = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNB_TOP | wxTAB_TRAVERSAL |wxNB_NOPAGETHEME | wxNB_DEFAULT );
+-#ifdef __linux__
++#if defined __linux__ || defined __FreeBSD__
+ tabs->Bind(wxEVT_NOTEBOOK_PAGE_CHANGED, [this](wxBookCtrlEvent& e) {
+ e.Skip();
+ CallAfter([this]() { tabs->GetCurrentPage()->Layout(); });
+@@ -752,7 +752,7 @@ void PreferencesDialog::accept(wxEvent&)
downloader->allow(it->second == "1");
if (!downloader->on_finish())
return;
-#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION)
- if( downloader->get_perform_registration_linux())
+ if(DownloaderUtils::Worker::perform_registration_linux)
DesktopIntegrationDialog::perform_downloader_desktop_integration();
#endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
+@@ -1111,7 +1111,7 @@ void PreferencesDialog::create_settings_font_widget()
+ font_example->SetFont(font);
+ m_values[opt_key] = format("%1%", val);
+ stb_sizer->Layout();
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ CallAfter([this]() { refresh_og(m_optgroup_other); });
+ #else
+ refresh_og(m_optgroup_other);
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetComboBoxes.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetComboBoxes.cpp
index ff382585785b..df5098cb98f3 100644
--- 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-12-12 14:21:21 UTC
+--- src/slic3r/GUI/PresetComboBoxes.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/PresetComboBoxes.cpp
-@@ -787,7 +787,7 @@ void PlaterPresetComboBox::show_edit_menu()
+@@ -882,7 +882,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_PresetComboBoxes.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetComboBoxes.hpp
index d0b0a9e05a45..073246d91eaf 100644
--- 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-12-12 14:21:21 UTC
+--- src/slic3r/GUI/PresetComboBoxes.hpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/PresetComboBoxes.hpp
-@@ -119,7 +119,7 @@ class PresetComboBox : public BitmapComboBox (protecte
+@@ -129,7 +129,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_RemovableDriveManager.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_RemovableDriveManager.cpp
index 2cdbdc481fb1..6491a415a688 100644
--- 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-12-12 14:21:21 UTC
+--- src/slic3r/GUI/RemovableDriveManager.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/RemovableDriveManager.cpp
-@@ -744,7 +744,7 @@ namespace search_for_drives_internal
+@@ -743,7 +743,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
index 48846a70ff5a..5018b0d09b12 100644
--- 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 2024-04-05 09:25:31 UTC
+--- src/slic3r/GUI/Tab.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/Tab.cpp
-@@ -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);
-- m_top_hsizer->Add(mode_sizer, 1, wxALIGN_CENTER_VERTICAL | wxRIGHT, wxOSX ? 15 : 10);
-+ m_top_hsizer->Add(mode_sizer, 1, wxRIGHT, wxOSX ? 15 : 10);
- }
- // hide whole top sizer to correct layout later
- m_top_hsizer->ShowItems(false);
-@@ -296,7 +296,7 @@ void Tab::create_preset_tab()
+@@ -278,7 +278,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());
@@ -18,7 +9,7 @@
m_treectrl->SetBackgroundColour(m_parent->GetBackgroundColour());
#endif
m_left_sizer->Add(m_treectrl, 1, wxEXPAND);
-@@ -310,7 +310,7 @@ void Tab::create_preset_tab()
+@@ -292,7 +292,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,16 +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
-@@ -3700,7 +3700,7 @@ void Tab::load_current_preset()
- else
- #endif
- wxGetApp().tab_panel()->InsertPage(wxGetApp().tab_panel()->FindPage(this), tab, tab->title());
-- #ifdef __linux__ // the tabs apparently need to be explicitly shown on Linux (pull request #1563)
-+ #if defined(__linux__) || defined(__FreeBSD__) // the tabs apparently need to be explicitly shown on Linux (pull request #1563)
- int page_id = wxGetApp().tab_panel()->FindPage(tab);
- wxGetApp().tab_panel()->GetPage(page_id)->Show(true);
- #endif // __linux__
-@@ -4121,7 +4121,7 @@ bool Tab::tree_sel_change_delayed()
+@@ -4106,7 +4106,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 +27,7 @@
std::unique_ptr<wxWindowUpdateLocker> no_updates(new wxWindowUpdateLocker(this));
#else
/* On Windows we use DoubleBuffering during rendering,
-@@ -4167,7 +4167,7 @@ bool Tab::tree_sel_change_delayed()
+@@ -4152,7 +4152,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.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UnsavedChangesDialog.cpp
index d28669d7397e..87d421aee3f3 100644
--- 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-12-12 14:21:21 UTC
+--- src/slic3r/GUI/UnsavedChangesDialog.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/UnsavedChangesDialog.cpp
-@@ -31,7 +31,7 @@
+@@ -31,7 +31,7 @@ using boost::optional;
using boost::optional;
@@ -9,7 +9,7 @@
#define wxLinux true
#else
#define wxLinux false
-@@ -115,7 +115,7 @@ ModelNode::ModelNode(ModelNode* parent, const wxString
+@@ -111,7 +111,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)
-@@ -124,7 +124,7 @@ wxBitmap ModelNode::get_bitmap(const wxString& color)
+@@ -120,7 +120,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;
-@@ -228,7 +228,7 @@ void ModelNode::UpdateIcons()
+@@ -224,7 +224,7 @@ void ModelNode::UpdateIcons()
if (!m_toggle)
bmp = bmp.ConvertToDisabled();
@@ -36,7 +36,7 @@
m_icon.CopyFromBitmap(bmp);
#else
m_icon = bmp;
-@@ -380,7 +380,7 @@ void DiffModel::GetValue(wxVariant& variant, const wxD
+@@ -376,7 +376,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;
-@@ -423,7 +423,7 @@ bool DiffModel::SetValue(const wxVariant& variant, con
+@@ -419,7 +419,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;
-@@ -628,7 +628,7 @@ DiffViewCtrl::DiffViewCtrl(wxWindow* parent, wxSize si
+@@ -647,7 +647,7 @@ void DiffViewCtrl::AppendBmpTextColumn(const wxString&
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_UnsavedChangesDialog.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UnsavedChangesDialog.hpp
index 51987b4dfcfc..8d783eb5ed2d 100644
--- 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-12-12 14:21:21 UTC
+--- src/slic3r/GUI/UnsavedChangesDialog.hpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/UnsavedChangesDialog.hpp
-@@ -52,7 +52,7 @@ class ModelNode
+@@ -49,7 +49,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);
-@@ -61,7 +61,7 @@ class ModelNode
+@@ -58,7 +58,7 @@ class ModelNode
public:
bool m_toggle {true};
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UserAccountCommunication.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UserAccountCommunication.cpp
new file mode 100644
index 000000000000..e92da0515b48
--- /dev/null
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UserAccountCommunication.cpp
@@ -0,0 +1,46 @@
+--- src/slic3r/GUI/UserAccountCommunication.cpp.orig 2024-07-03 10:33:48 UTC
++++ src/slic3r/GUI/UserAccountCommunication.cpp
+@@ -13,6 +13,7 @@
+ #include <boost/filesystem.hpp>
+ #include <boost/nowide/cstdio.hpp>
+ #include <boost/nowide/fstream.hpp>
++#include <boost/nowide/convert.hpp>
+ #include <curl/curl.h>
+ #include <string>
+
+@@ -37,7 +38,7 @@
+ #include <CommonCrypto/CommonDigest.h>
+ #endif
+
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ #include <openssl/evp.h>
+ #include <openssl/bio.h>
+ #include <openssl/buffer.h>
+@@ -137,7 +138,7 @@ bool load_secret(const std::string& opt, std::string&
+ #endif // wxUSE_SECRETSTORE
+ }
+
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ void load_refresh_token_linux(std::string& refresh_token)
+ {
+ // Load refresh token from UserAccount.dat
+@@ -201,7 +202,7 @@ UserAccountCommunication::UserAccountCommunication(wxE
+ shared_session_key = key0;
+
+ } else {
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ load_refresh_token_linux(refresh_token);
+ #endif
+ }
+@@ -253,7 +254,7 @@ void UserAccountCommunication::set_username(const std:
+ save_secret("tokens", m_session->get_shared_session_key(), tokens);
+ }
+ else {
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ // If we can't store the tokens in secret store, store them in file with chmod 600
+ boost::filesystem::path target(boost::filesystem::path(Slic3r::data_dir()) / "UserAccount.dat") ;
+ std::string data = m_session->get_refresh_token();
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.cpp
index 4b53ae9b659d..218717d59eb6 100644
--- 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-12-12 14:21:21 UTC
+--- src/slic3r/GUI/wxExtensions.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/wxExtensions.cpp
-@@ -27,7 +27,7 @@
+@@ -28,7 +28,7 @@
#include "libslic3r/Color.hpp"
@@ -9,7 +9,7 @@
// msw_menuitem_bitmaps is used for MSW and OSX
static std::map<int, std::string> msw_menuitem_bitmaps;
void sys_color_changed_menu(wxMenu* menu)
-@@ -97,7 +97,7 @@ wxMenuItem* append_menu_item(wxMenu* menu, int id, con
+@@ -137,7 +137,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__ */
-@@ -115,7 +115,7 @@ wxMenuItem* append_submenu(wxMenu* menu, wxMenu* sub_m
+@@ -155,7 +155,7 @@ wxMenuItem* append_submenu(wxMenu* menu, wxMenu* sub_m
if (!icon.empty()) {
item->SetBitmap(*get_bmp_bundle(icon));
@@ -27,15 +27,12 @@
msw_menuitem_bitmaps[id] = icon;
#endif // no __linux__
}
-@@ -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 :
--#if defined (__linux__) && defined (__WXGTK3__)
-+#if (defined (__linux__) || defined(__FreeBSD__)) && defined (__WXGTK3__)
- wxSYS_COLOUR_GRAYTEXT
--#elif defined (__linux__) && defined (__WXGTK2__)
-+#elif (defined (__linux__) || defined(__FreeBSD__)) && defined (__WXGTK2__)
- wxSYS_COLOUR_BTNTEXT
- #else
- wxSYS_COLOUR_BTNSHADOW
+@@ -218,7 +218,7 @@ void set_menu_item_bitmap(wxMenuItem* item, const std:
+ void set_menu_item_bitmap(wxMenuItem* item, const std::string& icon_name)
+ {
+ item->SetBitmap(*get_bmp_bundle(icon_name));
+-#ifndef __linux__
++#if !defined(__linux__) && !defined(__FreeBSD__)
+ const auto it = msw_menuitem_bitmaps.find(item->GetId());
+ if (it != msw_menuitem_bitmaps.end() && it->second != icon_name)
+ it->second = icon_name;
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.hpp
index f667caf9cf34..9f5b292b875d 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.hpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.hpp
@@ -1,7 +1,7 @@
---- src/slic3r/GUI/wxExtensions.hpp.orig 2023-12-12 14:21:21 UTC
+--- src/slic3r/GUI/wxExtensions.hpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/GUI/wxExtensions.hpp
-@@ -20,7 +20,7 @@
- #include <functional>
+@@ -21,7 +21,7 @@
+ #include <boost/filesystem.hpp>
-#ifndef __linux__
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_Utils_WifiScanner.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_Utils_WifiScanner.cpp
index 1d5ea0db3a4c..c1ecd3afc5d1 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_Utils_WifiScanner.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_Utils_WifiScanner.cpp
@@ -1,6 +1,6 @@
---- src/slic3r/Utils/WifiScanner.cpp.orig 2024-02-29 13:03:32 UTC
+--- src/slic3r/Utils/WifiScanner.cpp.orig 2024-06-27 09:25:47 UTC
+++ src/slic3r/Utils/WifiScanner.cpp
-@@ -17,7 +17,7 @@
+@@ -16,7 +16,7 @@
#include "WifiScannerMac.h"
#endif
@@ -23,5 +23,4 @@
}
#endif // _WIN32
-} // Slic3r
-\ No newline at end of file
+//} // Slic3r