summaryrefslogtreecommitdiff
path: root/cad/PrusaSlicer
diff options
context:
space:
mode:
Diffstat (limited to 'cad/PrusaSlicer')
-rw-r--r--cad/PrusaSlicer/Makefile16
-rw-r--r--cad/PrusaSlicer/distinfo6
-rw-r--r--cad/PrusaSlicer/files/patch-CMakeLists.txt16
-rw-r--r--cad/PrusaSlicer/files/patch-cmake_modules_FindOpenVDB.cmake32
-rw-r--r--cad/PrusaSlicer/files/patch-src_CMakeLists.txt4
-rw-r--r--cad/PrusaSlicer/files/patch-src_libseqarrange_src_seq__sequential.cpp19
-rw-r--r--cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt4
-rw-r--r--cad/PrusaSlicer/files/patch-src_libslic3r_Format_STEP.cpp6
-rw-r--r--cad/PrusaSlicer/files/patch-src_libslic3r_GCode_PostProcessor.cpp17
-rw-r--r--cad/PrusaSlicer/files/patch-src_libslic3r_SupportSpotsGenerator.cpp4
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r-arrange_include_arrange_DataStoreTraits.hpp10
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_CMakeLists.txt17
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_GLCanvas3D.cpp4
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp28
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__Factories.cpp4
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.cpp10
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.hpp6
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_PhysicalPrinterDialog.cpp11
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp26
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_Preferences.cpp8
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetArchiveDatabase.cpp11
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_RemovableDriveManager.cpp21
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp10
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_UserAccountCommunication.cpp42
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.cpp10
-rw-r--r--cad/PrusaSlicer/files/patch-src_slic3r_Utils_WifiScanner.cpp8
-rw-r--r--cad/PrusaSlicer/files/patch-tests_fff__print_test__data.cpp4
-rw-r--r--cad/PrusaSlicer/pkg-plist1078
28 files changed, 194 insertions, 1238 deletions
diff --git a/cad/PrusaSlicer/Makefile b/cad/PrusaSlicer/Makefile
index 0f20201d58d1..b9336618cecf 100644
--- a/cad/PrusaSlicer/Makefile
+++ b/cad/PrusaSlicer/Makefile
@@ -1,7 +1,7 @@
PORTNAME= PrusaSlicer
DISTVERSIONPREFIX=version_
-DISTVERSION= 2.9.0
-PORTREVISION= 2
+DISTVERSION= 2.9.2
+PORTREVISION= 5
CATEGORIES= cad
DIST_SUBDIR= PrusaSlicer
@@ -12,8 +12,6 @@ WWW= https://www.prusa3d.com/prusaslicer/
LICENSE= AGPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE
-#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 \
@@ -44,9 +42,10 @@ LIB_DEPENDS+= libbgcode_convert.so:cad/libbgcode \
libavcodec.so:multimedia/ffmpeg4 \
libharfbuzz.so:print/harfbuzz \
libwayland-egl.so:graphics/wayland \
- libwebkit2gtk-4.0.so:www/webkit2-gtk@40 \
- libsoup-2.4.so:devel/libsoup \
- libjavascriptcoregtk-4.0.so:www/webkit2-gtk@40
+ libwebkit2gtk-4.1.so:www/webkit2-gtk@41 \
+ libsoup-3.0.so:devel/libsoup3 \
+ libjavascriptcoregtk-4.1.so:www/webkit2-gtk@41 \
+ libz3.so:math/z3
USES= cmake cpe desktop-file-utils eigen:3 gettext gl gnome iconv \
jpeg pkgconfig xorg ssl tcl tk
@@ -62,7 +61,8 @@ CMAKE_ARGS+= -DwxWidgets_CONFIG_EXECUTABLE="${WX_CONFIG}" \
-DSLIC3R_GTK=3 \
-DSLIC3R_FHS=1 \
-DSLIC3R_PCH=OFF \
- -DSLIC3R_BUILD_TESTS=OFF
+ -DSLIC3R_BUILD_TESTS=OFF \
+ -Wno-dev
PORTDATA= *
post-patch:
diff --git a/cad/PrusaSlicer/distinfo b/cad/PrusaSlicer/distinfo
index f0d226c67fee..f45180546e6a 100644
--- a/cad/PrusaSlicer/distinfo
+++ b/cad/PrusaSlicer/distinfo
@@ -1,3 +1,3 @@
-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
+TIMESTAMP = 1744711814
+SHA256 (PrusaSlicer/prusa3d-PrusaSlicer-version_2.9.2_GH0.tar.gz) = ee0efd43729ae4a0dc16372f6a562d577e482f62e9b1851d8a5f30c61d9f317d
+SIZE (PrusaSlicer/prusa3d-PrusaSlicer-version_2.9.2_GH0.tar.gz) = 76992191
diff --git a/cad/PrusaSlicer/files/patch-CMakeLists.txt b/cad/PrusaSlicer/files/patch-CMakeLists.txt
index 297a2a5d44b8..606aefc19521 100644
--- a/cad/PrusaSlicer/files/patch-CMakeLists.txt
+++ b/cad/PrusaSlicer/files/patch-CMakeLists.txt
@@ -1,4 +1,4 @@
---- CMakeLists.txt.orig 2025-02-14 18:17:10 UTC
+--- CMakeLists.txt.orig 2025-04-10 11:26:51 UTC
+++ CMakeLists.txt
@@ -233,7 +233,7 @@ endif ()
endif ()
@@ -9,7 +9,7 @@
find_package(PkgConfig REQUIRED)
if (CMAKE_VERSION VERSION_LESS "3.1")
-@@ -635,8 +635,14 @@ elseif (SLIC3R_FHS)
+@@ -634,8 +634,14 @@ elseif (SLIC3R_FHS)
install(DIRECTORY ${SLIC3R_RESOURCES_DIR}/ DESTINATION ${SLIC3R_FHS_RESOURCES}
PATTERN "*/udev" EXCLUDE
)
@@ -24,14 +24,14 @@
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
-@@ -645,7 +651,10 @@ elseif (SLIC3R_FHS)
+@@ -644,7 +650,9 @@ elseif (SLIC3R_FHS)
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/${SIZE}x${SIZE}/apps RENAME PrusaSlicer-gcodeviewer.png
)
endforeach()
-+if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
- install(DIRECTORY ${SLIC3R_RESOURCES_DIR}/udev/ DESTINATION lib/udev/rules.d)
-+endif()
-+
+- 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()
+ target_compile_definitions(PrusaSlicer PUBLIC SLIC3R_FHS SLIC3R_FHS_RESOURCES="${SLIC3R_FHS_RESOURCES}")
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)
diff --git a/cad/PrusaSlicer/files/patch-cmake_modules_FindOpenVDB.cmake b/cad/PrusaSlicer/files/patch-cmake_modules_FindOpenVDB.cmake
index 02a12d73302b..142237d5aafd 100644
--- a/cad/PrusaSlicer/files/patch-cmake_modules_FindOpenVDB.cmake
+++ b/cad/PrusaSlicer/files/patch-cmake_modules_FindOpenVDB.cmake
@@ -1,28 +1,23 @@
---- cmake/modules/FindOpenVDB.cmake.orig 2025-02-14 18:26:40 UTC
+--- cmake/modules/FindOpenVDB.cmake.orig 2025-04-10 11:26:51 UTC
+++ cmake/modules/FindOpenVDB.cmake
-@@ -347,24 +347,24 @@ endmacro()
+@@ -347,24 +347,12 @@ endmacro()
return()
endmacro()
-find_package(IlmBase QUIET)
-if(NOT IlmBase_FOUND)
- pkg_check_modules(IlmBase QUIET IlmBase)
-+find_package(Imath QUIET COMPONENTS Half)
++find_package(Imath QUIET COMPONENTS Imath)
+if(NOT Imath_FOUND)
+ pkg_check_modules(Imath QUIET Imath)
endif()
-if (IlmBase_FOUND AND NOT TARGET IlmBase::Half)
- message(STATUS "Falling back to IlmBase found by pkg-config...")
-+if (Imath_FOUND AND NOT TARGET Imath::Half)
-+ message(STATUS "Falling back to Imath found by pkg-config...")
-
+-
- find_library(IlmHalf_LIBRARY NAMES Half)
- if(IlmHalf_LIBRARY-NOTFOUND OR NOT IlmBase_INCLUDE_DIRS)
- just_fail("IlmBase::Half can not be found!")
-+ find_library(Imath_LIBRARY NAMES Imath)
-+ if(Imath_LIBRARY-NOTFOUND OR NOT Imath_INCLUDE_DIRS)
-+ just_fail("Imath::Half can not be found!")
- endif()
+- endif()
-
- add_library(IlmBase::Half UNKNOWN IMPORTED)
- set_target_properties(IlmBase::Half PROPERTIES
@@ -30,17 +25,12 @@
- INTERFACE_INCLUDE_DIRECTORIES "${IlmBase_INCLUDE_DIRS}")
-elseif(NOT IlmBase_FOUND)
- just_fail("IlmBase::Half can not be found!")
-+
-+ add_library(Imath::Half UNKNOWN IMPORTED)
-+ set_target_properties(Imath::Half PROPERTIES
-+ IMPORTED_LOCATION "${Imath_LIBRARY}"
-+ INTERFACE_INCLUDE_DIRECTORIES "${Imath_INCLUDE_DIRS}")
-+elseif(NOT Imath_FOUND)
++if(NOT Imath_FOUND)
+ just_fail("Imath::Half can not be found!")
endif()
find_package(TBB ${_quiet} ${_required} COMPONENTS tbb)
find_package(ZLIB ${_quiet} ${_required})
-@@ -451,7 +451,7 @@ if(OpenVDB_USES_ILM)
+@@ -451,7 +439,7 @@ if(OpenVDB_USES_ILM)
endif()
if(OpenVDB_USES_ILM)
@@ -49,7 +39,7 @@
endif()
if(OpenVDB_USES_EXR)
-@@ -463,7 +463,7 @@ endif()
+@@ -463,7 +451,7 @@ endif()
endif()
# Set deps. Note that the order here is important. If we're building against
@@ -58,16 +48,16 @@
# 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 @@ set(_OPENVDB_VISIBLE_DEPENDENCIES
+@@ -471,7 +459,7 @@ set(_OPENVDB_VISIBLE_DEPENDENCIES
set(_OPENVDB_VISIBLE_DEPENDENCIES
Boost::iostreams
Boost::system
- IlmBase::Half
-+ Imath::Half
++ Imath::Imath
)
set(_OPENVDB_DEFINITIONS)
-@@ -481,10 +481,10 @@ if(OpenVDB_USES_EXR)
+@@ -481,10 +469,10 @@ if(OpenVDB_USES_EXR)
if(OpenVDB_USES_EXR)
list(APPEND _OPENVDB_VISIBLE_DEPENDENCIES
diff --git a/cad/PrusaSlicer/files/patch-src_CMakeLists.txt b/cad/PrusaSlicer/files/patch-src_CMakeLists.txt
index e9a16c47e89d..f6c4c536e514 100644
--- a/cad/PrusaSlicer/files/patch-src_CMakeLists.txt
+++ b/cad/PrusaSlicer/files/patch-src_CMakeLists.txt
@@ -1,6 +1,6 @@
---- src/CMakeLists.txt.orig 2025-02-14 18:46:38 UTC
+--- src/CMakeLists.txt.orig 2025-04-10 11:26:51 UTC
+++ src/CMakeLists.txt
-@@ -48,7 +48,7 @@ if (SLIC3R_GUI)
+@@ -51,7 +51,7 @@ if (SLIC3R_GUI)
endif()
find_package(JPEG MODULE QUIET)
diff --git a/cad/PrusaSlicer/files/patch-src_libseqarrange_src_seq__sequential.cpp b/cad/PrusaSlicer/files/patch-src_libseqarrange_src_seq__sequential.cpp
new file mode 100644
index 000000000000..6172b75bfd54
--- /dev/null
+++ b/cad/PrusaSlicer/files/patch-src_libseqarrange_src_seq__sequential.cpp
@@ -0,0 +1,19 @@
+--- src/libseqarrange/src/seq_sequential.cpp.orig 2025-07-01 13:42:42 UTC
++++ src/libseqarrange/src/seq_sequential.cpp
+@@ -11679,11 +11679,11 @@ bool optimize_SubglobalConsequentialPolygonNonoverlapp
+ {
+ printf(" %d\n", undecided[j]);
+ }
+- printf("Missing\n");
+- for (unsigned int j = 0; j < missing.size(); ++j)
+- {
+- printf(" %d\n", missing[j]);
+- }
++// printf("Missing\n");
++// for (unsigned int j = 0; j < missing.size(); ++j)
++// {
++// printf(" %d\n", missing[j]);
++// }
+ printf("Decided\n");
+ for (unsigned int j = 0; j < decided_polygons.size(); ++j)
+ {
diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt b/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt
index 2e9c5dde9e4d..2e17a21a83d7 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-12-20 11:54:34 UTC
+--- src/libslic3r/CMakeLists.txt.orig 2025-04-10 11:26:51 UTC
+++ src/libslic3r/CMakeLists.txt
-@@ -568,7 +568,6 @@ target_link_libraries(libslic3r PRIVATE
+@@ -612,7 +612,6 @@ target_link_libraries(libslic3r PRIVATE
target_link_libraries(libslic3r PRIVATE
libnest2d
diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_Format_STEP.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_Format_STEP.cpp
index 20fef0dd1afc..30d0e19ec56d 100644
--- a/cad/PrusaSlicer/files/patch-src_libslic3r_Format_STEP.cpp
+++ b/cad/PrusaSlicer/files/patch-src_libslic3r_Format_STEP.cpp
@@ -1,6 +1,6 @@
---- src/libslic3r/Format/STEP.cpp.orig 2024-12-20 11:54:34 UTC
+--- src/libslic3r/Format/STEP.cpp.orig 2025-04-10 11:26:51 UTC
+++ src/libslic3r/Format/STEP.cpp
-@@ -39,7 +39,7 @@ LoadStepFn get_load_step_fn()
+@@ -42,7 +42,7 @@ LoadStepFn get_load_step_fn()
#endif
if (!load_step_fn) {
@@ -9,7 +9,7 @@
#ifdef _WIN32
libpath /= "OCCTWrapper.dll";
HMODULE module = LoadLibraryW(libpath.wstring().c_str());
-@@ -61,6 +61,7 @@ LoadStepFn get_load_step_fn()
+@@ -64,6 +64,7 @@ LoadStepFn get_load_step_fn()
#elif __APPLE__
load_step_fn = &load_step_internal;
#else
diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_GCode_PostProcessor.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_GCode_PostProcessor.cpp
new file mode 100644
index 000000000000..ee61828cf992
--- /dev/null
+++ b/cad/PrusaSlicer/files/patch-src_libslic3r_GCode_PostProcessor.cpp
@@ -0,0 +1,17 @@
+--- src/libslic3r/GCode/PostProcessor.cpp.orig 2025-04-10 11:26:51 UTC
++++ src/libslic3r/GCode/PostProcessor.cpp
+@@ -152,7 +152,14 @@ static int run_script(const std::string &script, const
+
+ #include <cstdlib> // getenv()
+ #include <sstream>
++#if BOOST_VERSION >= 108800 // v2 is now default
++#define BOOST_PROCESS_VERSION 1
++#include <boost/process/v1/child.hpp>
++#include <boost/process/v1/io.hpp>
++#include <boost/process/v1/pipe.hpp>
++#else
+ #include <boost/process.hpp>
++#endif
+
+ namespace process = boost::process;
+
diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_SupportSpotsGenerator.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_SupportSpotsGenerator.cpp
index 51f9763ed1ea..0351d3774d08 100644
--- a/cad/PrusaSlicer/files/patch-src_libslic3r_SupportSpotsGenerator.cpp
+++ b/cad/PrusaSlicer/files/patch-src_libslic3r_SupportSpotsGenerator.cpp
@@ -1,6 +1,6 @@
---- src/libslic3r/SupportSpotsGenerator.cpp.orig 2024-12-20 11:54:34 UTC
+--- src/libslic3r/SupportSpotsGenerator.cpp.orig 2025-04-10 11:26:51 UTC
+++ src/libslic3r/SupportSpotsGenerator.cpp
-@@ -1062,7 +1062,7 @@ SliceMappings update_active_object_parts(const Layer
+@@ -1063,7 +1063,7 @@ SliceMappings update_active_object_parts(const Layer
}
}
const float bottom_z = layer->bottom_z();
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r-arrange_include_arrange_DataStoreTraits.hpp b/cad/PrusaSlicer/files/patch-src_slic3r-arrange_include_arrange_DataStoreTraits.hpp
deleted file mode 100644
index 53673b209d6c..000000000000
--- a/cad/PrusaSlicer/files/patch-src_slic3r-arrange_include_arrange_DataStoreTraits.hpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/slic3r-arrange/include/arrange/DataStoreTraits.hpp.orig 2025-03-14 14:06:59 UTC
-+++ src/slic3r-arrange/include/arrange/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<>(itm, key, std::forward<T>(data));
- }
-
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_CMakeLists.txt b/cad/PrusaSlicer/files/patch-src_slic3r_CMakeLists.txt
index ac4231037482..ea3b96034d5e 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_CMakeLists.txt
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_CMakeLists.txt
@@ -1,6 +1,6 @@
---- src/slic3r/CMakeLists.txt.orig 2024-12-20 11:54:34 UTC
+--- src/slic3r/CMakeLists.txt.orig 2025-04-10 11:26:51 UTC
+++ src/slic3r/CMakeLists.txt
-@@ -392,11 +392,12 @@ set(SLIC3R_GUI_SOURCES
+@@ -396,11 +396,12 @@ set(SLIC3R_GUI_SOURCES
Utils/ServiceConfig.cpp
)
@@ -15,7 +15,7 @@
if (APPLE)
list(APPEND SLIC3R_GUI_SOURCES
Utils/RetinaHelperImpl.mm
-@@ -433,14 +434,13 @@ encoding_check(libslic3r_gui)
+@@ -437,14 +438,13 @@ encoding_check(libslic3r_gui)
endforeach()
encoding_check(libslic3r_gui)
@@ -31,7 +31,7 @@
imgui
libvgcode
GLEW::GLEW
-@@ -454,10 +454,29 @@ target_link_libraries(
+@@ -458,10 +458,29 @@ target_link_libraries(
fastfloat
boost_headeronly
)
@@ -62,3 +62,12 @@
target_link_libraries(libslic3r_gui PUBLIC
${DBus1_LIBRARIES}
OpenSSL::SSL
+@@ -488,7 +507,7 @@ if (UNIX AND NOT APPLE)
+ find_package(GTK${SLIC3R_GTK} REQUIRED)
+ find_package(PkgConfig REQUIRED)
+
+- pkg_search_module(WEBKIT2GTK REQUIRED IMPORTED_TARGET webkit2gtk-4.0 webkit2gtk-4.1)
++ pkg_search_module(WEBKIT2GTK REQUIRED IMPORTED_TARGET webkit2gtk-4.1)
+ target_link_libraries(libslic3r_gui PUBLIC ${GTK${SLIC3R_GTK}_LIBRARIES} fontconfig PkgConfig::WEBKIT2GTK)
+ endif ()
+
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GLCanvas3D.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GLCanvas3D.cpp
index a08546fb6152..24adaa7d568b 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 2025-02-20 18:44:48 UTC
+--- src/slic3r/GUI/GLCanvas3D.cpp.orig 2025-04-10 11:26:51 UTC
+++ src/slic3r/GUI/GLCanvas3D.cpp
-@@ -13,7 +13,7 @@
+@@ -18,7 +18,7 @@
#include <igl/unproject.h> // IWYU pragma: keep
#include <LocalesUtils.hpp>
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 b1d6ed311fab..1def80f660f4 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp
@@ -1,4 +1,4 @@
---- src/slic3r/GUI/GUI_App.cpp.orig 2024-12-20 11:54:34 UTC
+--- src/slic3r/GUI/GUI_App.cpp.orig 2025-04-10 11:26:51 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,
-@@ -1344,6 +1344,9 @@ bool GUI_App::on_init_inner()
+@@ -1342,6 +1342,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);
-@@ -1374,7 +1377,7 @@ bool GUI_App::on_init_inner()
+@@ -1372,7 +1375,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;
-@@ -1479,7 +1482,7 @@ bool GUI_App::on_init_inner()
+@@ -1477,7 +1480,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);
-@@ -1649,7 +1652,7 @@ bool GUI_App::on_init_inner()
+@@ -1660,7 +1663,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) {
-@@ -2339,7 +2342,7 @@ bool GUI_App::switch_language()
+@@ -2350,7 +2353,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)
{
-@@ -2541,7 +2544,7 @@ bool GUI_App::load_language(wxString language, bool in
+@@ -2552,7 +2555,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.
-@@ -2550,6 +2553,7 @@ bool GUI_App::load_language(wxString language, bool in
+@@ -2561,6 +2564,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);
-@@ -2594,7 +2598,7 @@ bool GUI_App::load_language(wxString language, bool in
+@@ -2605,7 +2609,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)) {
-@@ -2715,7 +2719,7 @@ wxMenu* GUI_App::get_config_menu(MainFrame* main_frame
+@@ -2726,7 +2730,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)
-@@ -2749,7 +2753,7 @@ wxMenu* GUI_App::get_config_menu(MainFrame* main_frame
+@@ -2760,7 +2764,7 @@ wxMenu* GUI_App::get_config_menu(MainFrame* main_frame
case ConfigMenuUpdateApp:
app_version_check(true);
break;
@@ -99,7 +99,7 @@
case ConfigMenuDesktopIntegration:
show_desktop_integration_dialog();
break;
-@@ -3393,7 +3397,7 @@ void GUI_App::show_desktop_integration_dialog()
+@@ -3404,7 +3408,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();
-@@ -3413,7 +3417,7 @@ void GUI_App::show_downloader_registration_dialog()
+@@ -3424,7 +3428,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)
-@@ -3828,7 +3832,7 @@ void GUI_App::start_download(std::string url)
+@@ -3839,7 +3843,7 @@ void GUI_App::start_download(std::string url)
return;
}
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 cbb831f8654e..2f3d8a168081 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-12-20 11:54:34 UTC
+--- src/slic3r/GUI/GUI_Factories.cpp.orig 2025-04-10 11:26:51 UTC
+++ src/slic3r/GUI/GUI_Factories.cpp
-@@ -1499,7 +1499,7 @@ void MenuFactory::sys_color_changed(wxMenuBar* menubar
+@@ -1500,7 +1500,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_InstanceCheck.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.cpp
index d60906306662..82a8e40a8cd4 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.cpp
@@ -1,6 +1,6 @@
---- src/slic3r/GUI/InstanceCheck.cpp.orig 2024-12-20 11:54:34 UTC
+--- src/slic3r/GUI/InstanceCheck.cpp.orig 2025-04-10 11:26:51 UTC
+++ src/slic3r/GUI/InstanceCheck.cpp
-@@ -27,7 +27,7 @@
+@@ -31,7 +31,7 @@
#include <strsafe.h>
#endif //WIN32
@@ -9,16 +9,16 @@
#include <dbus/dbus.h> /* Pull in all of D-Bus headers. */
#endif //__linux__
-@@ -240,7 +240,7 @@ namespace instance_check_internal
+@@ -316,7 +316,7 @@ namespace instance_check_internal
return false;
}
-#elif defined(__linux__)
+#elif defined(__linux__) || defined (__FreeBSD__)
- static bool send_message(const std::string &message_text, const std::string &version)
+ static void list_matching_objects(const std::string& pattern, std::vector<std::string>& result)
{
-@@ -328,7 +328,7 @@ bool instance_check(int argc, char** argv, bool app_co
+@@ -561,7 +561,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_InstanceCheck.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.hpp
index ee54ff98e56c..d16d4bdb14b7 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.hpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_InstanceCheck.hpp
@@ -1,6 +1,6 @@
---- src/slic3r/GUI/InstanceCheck.hpp.orig 2024-12-20 11:54:34 UTC
+--- src/slic3r/GUI/InstanceCheck.hpp.orig 2025-04-10 11:26:51 UTC
+++ src/slic3r/GUI/InstanceCheck.hpp
-@@ -15,7 +15,7 @@
+@@ -16,7 +16,7 @@
#include <boost/filesystem.hpp>
@@ -9,7 +9,7 @@
#include <boost/thread.hpp>
#include <mutex>
#include <condition_variable>
-@@ -42,7 +42,7 @@ class MainFrame;
+@@ -44,7 +44,7 @@ class MainFrame;
class MainFrame;
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PhysicalPrinterDialog.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PhysicalPrinterDialog.cpp
deleted file mode 100644
index 9ad1afe5b965..000000000000
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PhysicalPrinterDialog.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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.
- {
- Choice* choice = dynamic_cast<Choice*>(m_optgroup->get_field("printhost_port"));
-- choice->set_values({ m_config->opt_string("printhost_port") });
-+ choice->set_values((const std::vector<std::string>){ m_config->opt_string("printhost_port") });
- choice->set_selection();
- }
-
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp
index 6afe5c8cc67b..e39aa6634b5d 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp
@@ -1,4 +1,4 @@
---- src/slic3r/GUI/Plater.cpp.orig 2024-12-20 11:54:34 UTC
+--- src/slic3r/GUI/Plater.cpp.orig 2025-04-10 11:26:51 UTC
+++ src/slic3r/GUI/Plater.cpp
@@ -24,7 +24,7 @@
@@ -9,7 +9,7 @@
#include <numeric>
#include <vector>
#include <string>
-@@ -912,7 +912,7 @@ void Plater::priv::init()
+@@ -926,7 +926,7 @@ void Plater::priv::init()
auto open_external_login = [this](wxCommandEvent& evt){
DownloaderUtils::Worker::perform_url_register();
@@ -18,7 +18,7 @@
// Remove all desktop files registering prusaslicer:// url done by previous versions.
DesktopIntegrationDialog::undo_downloader_registration_rigid();
#if defined(SLIC3R_DESKTOP_INTEGRATION)
-@@ -1228,7 +1228,7 @@ std::vector<size_t> Plater::priv::load_files(const std
+@@ -1276,7 +1276,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.
@@ -27,16 +27,16 @@
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
-@@ -1285,7 +1285,7 @@ std::vector<size_t> Plater::priv::load_files(const std
+@@ -1348,7 +1348,7 @@ std::vector<size_t> Plater::priv::load_files(const std
+ Slic3r::Model model;
+ bool is_project_file = false;
- try {
- if (type_3mf || type_zip_amf) {
-#ifdef __linux__
+#if defined(__linux__) || defined(__FreeBSD__)
- // 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,
-@@ -3552,7 +3552,7 @@ void Plater::priv::on_right_click(RBtnEvent& evt)
+ // 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,
+@@ -3591,7 +3591,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()));
@@ -45,11 +45,11 @@
// For some reason on Linux the menu isn't displayed if position is
// specified (even though the position is sane).
position = wxDefaultPosition;
-@@ -4420,7 +4420,7 @@ void Plater::load_project(const wxString& filename)
- s_multiple_beds.set_loading_project_flag(true);
+@@ -4460,7 +4460,7 @@ void Plater::load_project(const wxString& filename)
ScopeGuard guard([](){ s_multiple_beds.set_loading_project_flag(false);});
-- if (! load_files({ into_path(filename) }).empty()) {
+ const std::vector<fs::path>& input_paths = { into_path(filename) };
+- if (! load_files(input_paths).empty()) {
+ if (! load_files((const std::vector<boost::filesystem::path>){ into_path(filename) }).empty()) {
// At least one file was loaded.
p->set_project_filename(filename);
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Preferences.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Preferences.cpp
index 4e6cb067029a..9d3cd1e03b38 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Preferences.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Preferences.cpp
@@ -1,4 +1,4 @@
---- src/slic3r/GUI/Preferences.cpp.orig 2025-02-20 20:11:25 UTC
+--- src/slic3r/GUI/Preferences.cpp.orig 2025-04-10 11:26:51 UTC
+++ src/slic3r/GUI/Preferences.cpp
@@ -29,7 +29,7 @@
#ifdef WIN32
@@ -9,7 +9,7 @@
#include "DesktopIntegrationDialog.hpp"
#endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
-@@ -270,7 +270,7 @@ void PreferencesDialog::build()
+@@ -271,7 +271,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 );
@@ -18,7 +18,7 @@
tabs->Bind(wxEVT_NOTEBOOK_PAGE_CHANGED, [this](wxBookCtrlEvent& e) {
e.Skip();
CallAfter([this]() { tabs->GetCurrentPage()->Layout(); });
-@@ -750,7 +750,7 @@ void PreferencesDialog::accept(wxEvent&)
+@@ -756,7 +756,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)
-@@ -1108,7 +1108,7 @@ void PreferencesDialog::create_settings_font_widget()
+@@ -1114,7 +1114,7 @@ void PreferencesDialog::create_settings_font_widget()
font_example->SetFont(font);
m_values[opt_key] = format("%1%", val);
stb_sizer->Layout();
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetArchiveDatabase.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetArchiveDatabase.cpp
new file mode 100644
index 000000000000..cf5b7fe70309
--- /dev/null
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_PresetArchiveDatabase.cpp
@@ -0,0 +1,11 @@
+--- src/slic3r/GUI/PresetArchiveDatabase.cpp.orig 2025-07-04 16:42:20 UTC
++++ src/slic3r/GUI/PresetArchiveDatabase.cpp
+@@ -577,7 +577,7 @@ void PresetArchiveDatabase::load_app_manifest_json()
+ if (const auto used = subtree.second.get_optional<bool>("has_installed_printers"); used) {
+ m_has_installed_printer_repositories_uuid[uuid] = *used;
+ } else {
+- assert(false);
++// assert(false);
+ m_has_installed_printer_repositories_uuid[uuid] = false;
+ }
+ m_archive_repositories.emplace_back(std::make_unique<OnlineArchiveRepository>(std::move(uuid), std::move(manifest)));
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_RemovableDriveManager.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_RemovableDriveManager.cpp
index e22a92115ac8..a9b16619989d 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_RemovableDriveManager.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_RemovableDriveManager.cpp
@@ -1,6 +1,23 @@
---- src/slic3r/GUI/RemovableDriveManager.cpp.orig 2024-12-20 11:54:34 UTC
+--- src/slic3r/GUI/RemovableDriveManager.cpp.orig 2025-04-10 11:26:51 UTC
+++ src/slic3r/GUI/RemovableDriveManager.cpp
-@@ -743,7 +743,7 @@ namespace search_for_drives_internal
+@@ -35,8 +35,16 @@
+ #include <pwd.h>
+ #include <boost/filesystem.hpp>
+ #include <boost/system/error_code.hpp>
++#if BOOST_VERSION >= 108800 // v2 is now default
++#define BOOST_PROCESS_VERSION 1
++#include <boost/process/v1/child.hpp>
++#include <boost/process/v1/io.hpp>
++//#include <boost/process/v1/pipe.hpp>
++#include <boost/process/v1/search_path.hpp>
++#else
+ #include <boost/process.hpp>
+ #endif
++#endif
+
+ namespace Slic3r {
+ namespace GUI {
+@@ -743,7 +751,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 8440ed1e9b42..1677eaacc3b4 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp
@@ -1,6 +1,6 @@
---- src/slic3r/GUI/Tab.cpp.orig 2024-12-20 11:54:34 UTC
+--- src/slic3r/GUI/Tab.cpp.orig 2025-04-10 11:26:51 UTC
+++ src/slic3r/GUI/Tab.cpp
-@@ -279,7 +279,7 @@ void Tab::create_preset_tab()
+@@ -280,7 +280,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);
-@@ -293,7 +293,7 @@ void Tab::create_preset_tab()
+@@ -294,7 +294,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
-@@ -4158,7 +4158,7 @@ bool Tab::tree_sel_change_delayed()
+@@ -4181,7 +4181,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,
-@@ -4204,7 +4204,7 @@ bool Tab::tree_sel_change_delayed()
+@@ -4227,7 +4227,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_UserAccountCommunication.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UserAccountCommunication.cpp
index 2ac1dfa7edf9..006c94c62c1b 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UserAccountCommunication.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UserAccountCommunication.cpp
@@ -1,14 +1,6 @@
---- src/slic3r/GUI/UserAccountCommunication.cpp.orig 2024-12-20 11:54:34 UTC
+--- src/slic3r/GUI/UserAccountCommunication.cpp.orig 2025-04-15 11:04:24 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 @@
+@@ -38,7 +38,7 @@
#include <CommonCrypto/CommonDigest.h>
#endif
@@ -17,30 +9,30 @@
#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&
+@@ -140,7 +140,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)
+ void load_tokens_linux(UserAccountCommunication::StoreData& result)
{
// Load refresh token from UserAccount.dat
-@@ -201,7 +202,7 @@ UserAccountCommunication::UserAccountCommunication(wxE
- shared_session_key = key0;
-
- } else {
+@@ -317,7 +317,7 @@ void UserAccountCommunication::set_username(const std:
+ BOOST_LOG_TRIVIAL(error) << "Failed to write tokens to the secret store.";
+ }
+ } else {
-#ifdef __linux__
+#if defined(__linux__) || defined(__FreeBSD__)
- load_refresh_token_linux(refresh_token);
- #endif
- }
-@@ -252,7 +253,7 @@ void UserAccountCommunication::set_username(const std:
- save_secret("tokens", m_session->get_shared_session_key(), tokens);
+ // 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 = "||||";
+@@ -640,7 +640,7 @@ void UserAccountCommunication::read_stored_data(UserAc
}
- else {
+ result.shared_session_key = key0;
+ } 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();
+ load_tokens_linux(result);
+ #endif
+ }
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_wxExtensions.cpp
index 1c500e9375d2..2f85e5e66712 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 2024-12-20 11:54:34 UTC
+--- src/slic3r/GUI/wxExtensions.cpp.orig 2025-04-10 11:26:51 UTC
+++ src/slic3r/GUI/wxExtensions.cpp
-@@ -28,7 +28,7 @@
+@@ -29,7 +29,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)
-@@ -137,7 +137,7 @@ wxMenuItem* append_menu_item(wxMenu* menu, int id, con
+@@ -142,7 +142,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__ */
-@@ -155,7 +155,7 @@ wxMenuItem* append_submenu(wxMenu* menu, wxMenu* sub_m
+@@ -160,7 +160,7 @@ wxMenuItem* append_submenu(wxMenu* menu, wxMenu* sub_m
if (!icon.empty()) {
item->SetBitmap(*get_bmp_bundle(icon));
@@ -27,7 +27,7 @@
msw_menuitem_bitmaps[id] = icon;
#endif // no __linux__
}
-@@ -218,7 +218,7 @@ void set_menu_item_bitmap(wxMenuItem* item, const std:
+@@ -223,7 +223,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));
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_Utils_WifiScanner.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_Utils_WifiScanner.cpp
index 0d5b53bf59c8..f8855f0fc315 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-12-20 11:54:34 UTC
+--- src/slic3r/Utils/WifiScanner.cpp.orig 2025-04-10 11:26:51 UTC
+++ src/slic3r/Utils/WifiScanner.cpp
-@@ -16,7 +16,7 @@
+@@ -18,7 +18,7 @@
#include "WifiScannerMac.h"
#endif
@@ -9,7 +9,7 @@
#include <dbus/dbus.h> /* Pull in all of D-Bus headers. */
#endif //__linux__
-@@ -353,7 +353,7 @@ std::string WifiScanner::get_psk(const std::string& ss
+@@ -355,7 +355,7 @@ std::string WifiScanner::get_psk(const std::string& ss
}
return {};
}
@@ -18,7 +18,7 @@
#ifdef _WIN32
// Fill SSID map. Implementation from Raspberry Pi imager and Win32 Api examples.
// https://github.com/raspberrypi/rpi-imager/blob/qml/src/windows/winwlancredentials.cpp
-@@ -489,4 +489,4 @@ void WifiScanner::fill_wifi_map(Slic3r::WifiSsidPskMap
+@@ -491,4 +491,4 @@ void WifiScanner::fill_wifi_map(Slic3r::WifiSsidPskMap
wlanFreeMemoryFunc(interface_list);
}
#endif // _WIN32
diff --git a/cad/PrusaSlicer/files/patch-tests_fff__print_test__data.cpp b/cad/PrusaSlicer/files/patch-tests_fff__print_test__data.cpp
index 57c842839110..fa015d32db30 100644
--- a/cad/PrusaSlicer/files/patch-tests_fff__print_test__data.cpp
+++ b/cad/PrusaSlicer/files/patch-tests_fff__print_test__data.cpp
@@ -1,6 +1,6 @@
---- tests/fff_print/test_data.cpp.orig 2024-12-20 11:54:34 UTC
+--- tests/fff_print/test_data.cpp.orig 2025-04-10 11:26:51 UTC
+++ tests/fff_print/test_data.cpp
-@@ -10,6 +10,7 @@
+@@ -11,6 +11,7 @@
#include <arrange-wrapper/ModelArrange.hpp>
#include <cstdlib>
diff --git a/cad/PrusaSlicer/pkg-plist b/cad/PrusaSlicer/pkg-plist
index 451394fa3823..6af5ef084a6e 100644
--- a/cad/PrusaSlicer/pkg-plist
+++ b/cad/PrusaSlicer/pkg-plist
@@ -1,1084 +1,6 @@
bin/prusa-gcodeviewer
bin/prusa-slicer
lib/OCCTWrapper.so
-%%DATADIR%%/data/embossed_text.obj
-%%DATADIR%%/data/hints.ini
-%%DATADIR%%/fonts/NotoSans-Regular.ttf
-%%DATADIR%%/fonts/NotoSansCJK-Regular.ttc
-%%DATADIR%%/fonts/README.txt
-%%DATADIR%%/icons/Pmetal_001.png
-%%DATADIR%%/icons/PrusaSlicer-gcodeviewer-mac_128px.png
-%%DATADIR%%/icons/PrusaSlicer-gcodeviewer.ico
-%%DATADIR%%/icons/PrusaSlicer-gcodeviewer.svg
-%%DATADIR%%/icons/PrusaSlicer-gcodeviewer_128px.png
-%%DATADIR%%/icons/PrusaSlicer-gcodeviewer_192px.png
-%%DATADIR%%/icons/PrusaSlicer-gcodeviewer_32px.png
-%%DATADIR%%/icons/PrusaSlicer-mac_128px.png
-%%DATADIR%%/icons/PrusaSlicer.icns
-%%DATADIR%%/icons/PrusaSlicer.ico
-%%DATADIR%%/icons/PrusaSlicer.png
-%%DATADIR%%/icons/PrusaSlicer.svg
-%%DATADIR%%/icons/PrusaSlicer_128px.png
-%%DATADIR%%/icons/PrusaSlicer_192px.png
-%%DATADIR%%/icons/PrusaSlicer_192px_grayscale.png
-%%DATADIR%%/icons/PrusaSlicer_192px_transparent.png
-%%DATADIR%%/icons/PrusaSlicer_32px.png
-%%DATADIR%%/icons/add.svg
-%%DATADIR%%/icons/add_copies.svg
-%%DATADIR%%/icons/add_gcode.svg
-%%DATADIR%%/icons/add_modifier.svg
-%%DATADIR%%/icons/add_negative.svg
-%%DATADIR%%/icons/add_part.svg
-%%DATADIR%%/icons/add_text_modifier.svg
-%%DATADIR%%/icons/add_text_negative.svg
-%%DATADIR%%/icons/add_text_part.svg
-%%DATADIR%%/icons/advanced_plus.svg
-%%DATADIR%%/icons/align_horizontal_center.svg
-%%DATADIR%%/icons/align_horizontal_left.svg
-%%DATADIR%%/icons/align_horizontal_right.svg
-%%DATADIR%%/icons/align_vertical_bottom.svg
-%%DATADIR%%/icons/align_vertical_center.svg
-%%DATADIR%%/icons/align_vertical_top.svg
-%%DATADIR%%/icons/arrange.svg
-%%DATADIR%%/icons/arrange_current.svg
-%%DATADIR%%/icons/attention.svg
-%%DATADIR%%/icons/browse.svg
-%%DATADIR%%/icons/bullet_black.png
-%%DATADIR%%/icons/bullet_blue.png
-%%DATADIR%%/icons/bullet_white.png
-%%DATADIR%%/icons/burn.svg
-%%DATADIR%%/icons/change_extruder.svg
-%%DATADIR%%/icons/check_off.svg
-%%DATADIR%%/icons/check_off_disabled.svg
-%%DATADIR%%/icons/check_off_focused.svg
-%%DATADIR%%/icons/check_on.svg
-%%DATADIR%%/icons/check_on_disabled.svg
-%%DATADIR%%/icons/check_on_focused.svg
-%%DATADIR%%/icons/checked.svg
-%%DATADIR%%/icons/cog.svg
-%%DATADIR%%/icons/cog_.svg
-%%DATADIR%%/icons/cog_f.svg
-%%DATADIR%%/icons/cog_go.png
-%%DATADIR%%/icons/collapse.svg
-%%DATADIR%%/icons/collapse_btn.svg
-%%DATADIR%%/icons/colorchange_add.svg
-%%DATADIR%%/icons/colorchange_add_f.svg
-%%DATADIR%%/icons/colorchange_add_m.svg
-%%DATADIR%%/icons/colorchange_del.svg
-%%DATADIR%%/icons/colorchange_del_f.svg
-%%DATADIR%%/icons/compare.svg
-%%DATADIR%%/icons/connect_gcode.svg
-%%DATADIR%%/icons/connect_status.svg
-%%DATADIR%%/icons/convert_file.svg
-%%DATADIR%%/icons/cooling.svg
-%%DATADIR%%/icons/copy.svg
-%%DATADIR%%/icons/copy_menu.svg
-%%DATADIR%%/icons/cross.svg
-%%DATADIR%%/icons/cross_focus.svg
-%%DATADIR%%/icons/cross_focus_large.svg
-%%DATADIR%%/icons/custom-gcode_gcode.svg
-%%DATADIR%%/icons/custom-gcode_measure.svg
-%%DATADIR%%/icons/custom-gcode_object-info.svg
-%%DATADIR%%/icons/custom-gcode_single.svg
-%%DATADIR%%/icons/custom-gcode_slicing-state.svg
-%%DATADIR%%/icons/custom-gcode_slicing-state_global.svg
-%%DATADIR%%/icons/custom-gcode_stats.svg
-%%DATADIR%%/icons/custom-gcode_vector-index.svg
-%%DATADIR%%/icons/custom-gcode_vector.svg
-%%DATADIR%%/icons/cut.svg
-%%DATADIR%%/icons/cut_.svg
-%%DATADIR%%/icons/cut_connectors.svg
-%%DATADIR%%/icons/delete.svg
-%%DATADIR%%/icons/delete_all.svg
-%%DATADIR%%/icons/delete_all_menu.svg
-%%DATADIR%%/icons/dot.svg
-%%DATADIR%%/icons/dot_small.svg
-%%DATADIR%%/icons/dot_white.svg
-%%DATADIR%%/icons/dowel.svg
-%%DATADIR%%/icons/drop_down.svg
-%%DATADIR%%/icons/drop_to_bed.svg
-%%DATADIR%%/icons/edit.svg
-%%DATADIR%%/icons/edit_button.svg
-%%DATADIR%%/icons/edit_button_pressed.svg
-%%DATADIR%%/icons/edit_gcode.svg
-%%DATADIR%%/icons/edit_gcode_f.svg
-%%DATADIR%%/icons/edit_layers_all.svg
-%%DATADIR%%/icons/edit_layers_some.svg
-%%DATADIR%%/icons/edit_uni.svg
-%%DATADIR%%/icons/editor.svg
-%%DATADIR%%/icons/editor_menu.svg
-%%DATADIR%%/icons/eject_sd.svg
-%%DATADIR%%/icons/empty.svg
-%%DATADIR%%/icons/equal.svg
-%%DATADIR%%/icons/error_tick.svg
-%%DATADIR%%/icons/error_tick_f.svg
-%%DATADIR%%/icons/exclamation.svg
-%%DATADIR%%/icons/exclamation_manifold.svg
-%%DATADIR%%/icons/exit.svg
-%%DATADIR%%/icons/expand_btn.svg
-%%DATADIR%%/icons/export_config.svg
-%%DATADIR%%/icons/export_config_bundle.svg
-%%DATADIR%%/icons/export_gcode.svg
-%%DATADIR%%/icons/export_plater.svg
-%%DATADIR%%/icons/export_to_sd.svg
-%%DATADIR%%/icons/eye_closed.svg
-%%DATADIR%%/icons/eye_open.svg
-%%DATADIR%%/icons/fdm_supports.svg
-%%DATADIR%%/icons/fdm_supports_.svg
-%%DATADIR%%/icons/flag_green.svg
-%%DATADIR%%/icons/flag_red.svg
-%%DATADIR%%/icons/funnel.svg
-%%DATADIR%%/icons/fuzzy_skin.svg
-%%DATADIR%%/icons/fuzzy_skin_painting.svg
-%%DATADIR%%/icons/fuzzy_skin_painting_.svg
-%%DATADIR%%/icons/gcode.icns
-%%DATADIR%%/icons/hollow.svg
-%%DATADIR%%/icons/hollowing.svg
-%%DATADIR%%/icons/horizontal_hide.svg
-%%DATADIR%%/icons/horizontal_show.svg
-%%DATADIR%%/icons/import_config.svg
-%%DATADIR%%/icons/import_config_bundle.svg
-%%DATADIR%%/icons/import_plater.svg
-%%DATADIR%%/icons/infill.svg
-%%DATADIR%%/icons/info.svg
-%%DATADIR%%/icons/instance_add.svg
-%%DATADIR%%/icons/instance_remove.svg
-%%DATADIR%%/icons/ironing.svg
-%%DATADIR%%/icons/layers.svg
-%%DATADIR%%/icons/layers_white.svg
-%%DATADIR%%/icons/legend_cog.svg
-%%DATADIR%%/icons/legend_colorchanges.svg
-%%DATADIR%%/icons/legend_customgcodes.svg
-%%DATADIR%%/icons/legend_deretract.svg
-%%DATADIR%%/icons/legend_pauseprints.svg
-%%DATADIR%%/icons/legend_retract.svg
-%%DATADIR%%/icons/legend_seams.svg
-%%DATADIR%%/icons/legend_shells.svg
-%%DATADIR%%/icons/legend_toolchanges.svg
-%%DATADIR%%/icons/legend_toolmarker.svg
-%%DATADIR%%/icons/legend_travel.svg
-%%DATADIR%%/icons/legend_wipe.svg
-%%DATADIR%%/icons/lock.svg
-%%DATADIR%%/icons/lock_closed.svg
-%%DATADIR%%/icons/lock_closed_f.svg
-%%DATADIR%%/icons/lock_closed_white.svg
-%%DATADIR%%/icons/lock_open.svg
-%%DATADIR%%/icons/lock_open_f.svg
-%%DATADIR%%/icons/lock_open_sys.svg
-%%DATADIR%%/icons/login.svg
-%%DATADIR%%/icons/logout.svg
-%%DATADIR%%/icons/make_bold.svg
-%%DATADIR%%/icons/make_italic.svg
-%%DATADIR%%/icons/make_unbold.svg
-%%DATADIR%%/icons/make_unitalic.svg
-%%DATADIR%%/icons/mark_X.svg
-%%DATADIR%%/icons/mark_Y.svg
-%%DATADIR%%/icons/mark_Z.svg
-%%DATADIR%%/icons/measure.svg
-%%DATADIR%%/icons/mirroring_off.svg
-%%DATADIR%%/icons/mirroring_on.svg
-%%DATADIR%%/icons/mirroring_transparent.svg
-%%DATADIR%%/icons/mmu_segmentation.svg
-%%DATADIR%%/icons/mmu_segmentation_.svg
-%%DATADIR%%/icons/mode.svg
-%%DATADIR%%/icons/mode_advanced.svg
-%%DATADIR%%/icons/mode_expert.svg
-%%DATADIR%%/icons/mode_simple.svg
-%%DATADIR%%/icons/move.svg
-%%DATADIR%%/icons/not_equal.svg
-%%DATADIR%%/icons/note.svg
-%%DATADIR%%/icons/notification_cancel.svg
-%%DATADIR%%/icons/notification_cancel_hover.svg
-%%DATADIR%%/icons/notification_clippy.svg
-%%DATADIR%%/icons/notification_close.svg
-%%DATADIR%%/icons/notification_close_hover.svg
-%%DATADIR%%/icons/notification_documentation.svg
-%%DATADIR%%/icons/notification_documentation_hover.svg
-%%DATADIR%%/icons/notification_eject_sd.svg
-%%DATADIR%%/icons/notification_eject_sd_hover.svg
-%%DATADIR%%/icons/notification_error.svg
-%%DATADIR%%/icons/notification_info.svg
-%%DATADIR%%/icons/notification_minimalize.svg
-%%DATADIR%%/icons/notification_minimalize_hover.svg
-%%DATADIR%%/icons/notification_open.svg
-%%DATADIR%%/icons/notification_open_hover.svg
-%%DATADIR%%/icons/notification_pause.svg
-%%DATADIR%%/icons/notification_pause_hover.svg
-%%DATADIR%%/icons/notification_play.svg
-%%DATADIR%%/icons/notification_play_hover.svg
-%%DATADIR%%/icons/notification_preferences.svg
-%%DATADIR%%/icons/notification_preferences_hover.svg
-%%DATADIR%%/icons/notification_right.svg
-%%DATADIR%%/icons/notification_right_hover.svg
-%%DATADIR%%/icons/notification_warning.svg
-%%DATADIR%%/icons/notification_warning_grey.svg
-%%DATADIR%%/icons/number_of_copies.svg
-%%DATADIR%%/icons/numbers.png
-%%DATADIR%%/icons/objlist_info.svg
-%%DATADIR%%/icons/open.svg
-%%DATADIR%%/icons/open_browser.svg
-%%DATADIR%%/icons/output+page_white.svg
-%%DATADIR%%/icons/pad.svg
-%%DATADIR%%/icons/paste.svg
-%%DATADIR%%/icons/paste_menu.svg
-%%DATADIR%%/icons/pause_print.svg
-%%DATADIR%%/icons/pause_print_f.svg
-%%DATADIR%%/icons/place.svg
-%%DATADIR%%/icons/plater.svg
-%%DATADIR%%/icons/plug.svg
-%%DATADIR%%/icons/preview.svg
-%%DATADIR%%/icons/preview_menu.svg
-%%DATADIR%%/icons/print_finished.svg
-%%DATADIR%%/icons/print_idle.svg
-%%DATADIR%%/icons/print_running.svg
-%%DATADIR%%/icons/printer.svg
-%%DATADIR%%/icons/printer_available.svg
-%%DATADIR%%/icons/printer_busy.svg
-%%DATADIR%%/icons/printer_offline.svg
-%%DATADIR%%/icons/printer_placeholder.png
-%%DATADIR%%/icons/printer_white.svg
-%%DATADIR%%/icons/question.svg
-%%DATADIR%%/icons/re_slice.svg
-%%DATADIR%%/icons/redo.svg
-%%DATADIR%%/icons/redo_menu.svg
-%%DATADIR%%/icons/redo_toolbar.svg
-%%DATADIR%%/icons/reflection_x.svg
-%%DATADIR%%/icons/reflection_y.svg
-%%DATADIR%%/icons/refresh.svg
-%%DATADIR%%/icons/remove.svg
-%%DATADIR%%/icons/remove_copies.svg
-%%DATADIR%%/icons/remove_menu.svg
-%%DATADIR%%/icons/resin.svg
-%%DATADIR%%/icons/revert_all_.svg
-%%DATADIR%%/icons/rotate.svg
-%%DATADIR%%/icons/save.svg
-%%DATADIR%%/icons/scalar_param.svg
-%%DATADIR%%/icons/scale.svg
-%%DATADIR%%/icons/seam.svg
-%%DATADIR%%/icons/seam_.svg
-%%DATADIR%%/icons/search.svg
-%%DATADIR%%/icons/search_.svg
-%%DATADIR%%/icons/search_blink.svg
-%%DATADIR%%/icons/search_gray.svg
-%%DATADIR%%/icons/set_separate_obj.svg
-%%DATADIR%%/icons/settings.svg
-%%DATADIR%%/icons/shape_gallery.svg
-%%DATADIR%%/icons/sinking.svg
-%%DATADIR%%/icons/skirt+brim.svg
-%%DATADIR%%/icons/sla_printer.svg
-%%DATADIR%%/icons/sla_printer_available.svg
-%%DATADIR%%/icons/sla_printer_busy.svg
-%%DATADIR%%/icons/sla_printer_offline.svg
-%%DATADIR%%/icons/sla_supports.svg
-%%DATADIR%%/icons/sla_view_original.svg
-%%DATADIR%%/icons/sla_view_processed.svg
-%%DATADIR%%/icons/slice_all.svg
-%%DATADIR%%/icons/snap.svg
-%%DATADIR%%/icons/spin_dec.svg
-%%DATADIR%%/icons/spin_dec_act.svg
-%%DATADIR%%/icons/spin_inc.svg
-%%DATADIR%%/icons/spin_inc_act.svg
-%%DATADIR%%/icons/splashscreen-gcodepreview.jpg
-%%DATADIR%%/icons/splashscreen.jpg
-%%DATADIR%%/icons/split_object_SMALL.svg
-%%DATADIR%%/icons/split_objects.svg
-%%DATADIR%%/icons/split_parts.svg
-%%DATADIR%%/icons/split_parts_SMALL.svg
-%%DATADIR%%/icons/spool.svg
-%%DATADIR%%/icons/stl.icns
-%%DATADIR%%/icons/support.svg
-%%DATADIR%%/icons/support_blocker.svg
-%%DATADIR%%/icons/support_enforcer.svg
-%%DATADIR%%/icons/svg_modifier.svg
-%%DATADIR%%/icons/svg_negative.svg
-%%DATADIR%%/icons/svg_part.svg
-%%DATADIR%%/icons/switch_presets.svg
-%%DATADIR%%/icons/test.svg
-%%DATADIR%%/icons/thumb_down.svg
-%%DATADIR%%/icons/thumb_left.svg
-%%DATADIR%%/icons/thumb_right.svg
-%%DATADIR%%/icons/thumb_up.svg
-%%DATADIR%%/icons/tick_mark.svg
-%%DATADIR%%/icons/time.svg
-%%DATADIR%%/icons/timer_dot.svg
-%%DATADIR%%/icons/timer_dot_empty.svg
-%%DATADIR%%/icons/toggle_off.svg
-%%DATADIR%%/icons/toggle_on.svg
-%%DATADIR%%/icons/toolbar_arrow.svg
-%%DATADIR%%/icons/toolbar_arrow_2.svg
-%%DATADIR%%/icons/toolbar_background.png
-%%DATADIR%%/icons/undo.svg
-%%DATADIR%%/icons/undo_f.svg
-%%DATADIR%%/icons/undo_menu.svg
-%%DATADIR%%/icons/undo_toolbar.svg
-%%DATADIR%%/icons/upload_queue.svg
-%%DATADIR%%/icons/user.svg
-%%DATADIR%%/icons/user_mask.svg
-%%DATADIR%%/icons/vector_filament_param.svg
-%%DATADIR%%/icons/vector_param.svg
-%%DATADIR%%/icons/wrench.svg
-%%DATADIR%%/icons/wrench_white.svg
-%%DATADIR%%/localization/PrusaSlicer.pot
-%%DATADIR%%/localization/be/PrusaSlicer.mo
-%%DATADIR%%/localization/be/PrusaSlicer_be.po
-%%DATADIR%%/localization/ca/PrusaSlicer.mo
-%%DATADIR%%/localization/ca/PrusaSlicer_ca.po
-%%DATADIR%%/localization/cs/PrusaSlicer.mo
-%%DATADIR%%/localization/cs/PrusaSlicer_cs.po
-%%DATADIR%%/localization/de/PrusaSlicer.mo
-%%DATADIR%%/localization/de/PrusaSlicer_de.po
-%%DATADIR%%/localization/en/PrusaSlicer.mo
-%%DATADIR%%/localization/en/PrusaSlicer_en.po
-%%DATADIR%%/localization/es/PrusaSlicer.mo
-%%DATADIR%%/localization/es/PrusaSlicer_es.po
-%%DATADIR%%/localization/fi/PrusaSlicer.mo
-%%DATADIR%%/localization/fi/PrusaSlicer_fi.po
-%%DATADIR%%/localization/fr/PrusaSlicer.mo
-%%DATADIR%%/localization/fr/PrusaSlicer_fr.po
-%%DATADIR%%/localization/hu/PrusaSlicer.mo
-%%DATADIR%%/localization/hu/PrusaSlicer_hu.po
-%%DATADIR%%/localization/it/PrusaSlicer.mo
-%%DATADIR%%/localization/it/PrusaSlicer_it.po
-%%DATADIR%%/localization/ja/PrusaSlicer.mo
-%%DATADIR%%/localization/ja/PrusaSlicer_ja.po
-%%DATADIR%%/localization/ko/PrusaSlicer.mo
-%%DATADIR%%/localization/ko/PrusaSlicer_ko_KR.po
-%%DATADIR%%/localization/ko_KR/PrusaSlicer.mo
-%%DATADIR%%/localization/ko_KR/PrusaSlicer_ko.po
-%%DATADIR%%/localization/ko_KR/PrusaSlicer_ko_KR.mo
-%%DATADIR%%/localization/ko_KR/PrusaSlicer_ko_KR.po
-%%DATADIR%%/localization/list.txt
-%%DATADIR%%/localization/nl/PrusaSlicer.mo
-%%DATADIR%%/localization/nl/PrusaSlicer_nl.po
-%%DATADIR%%/localization/pl/PrusaSlicer.mo
-%%DATADIR%%/localization/pl/PrusaSlicer_pl.po
-%%DATADIR%%/localization/pt_BR/PrusaSlicer.mo
-%%DATADIR%%/localization/pt_BR/PrusaSlicer_pt_BR.po
-%%DATADIR%%/localization/ru/PrusaSlicer.mo
-%%DATADIR%%/localization/ru/PrusaSlicer_ru.po
-%%DATADIR%%/localization/sl/PrusaSlicer.mo
-%%DATADIR%%/localization/sl/PrusaSlicer.po
-%%DATADIR%%/localization/tr/PrusaSlicer.mo
-%%DATADIR%%/localization/tr/PrusaSlicer_tr.po
-%%DATADIR%%/localization/uk/PrusaSlicer.mo
-%%DATADIR%%/localization/uk/PrusaSlicer_uk.po
-%%DATADIR%%/localization/wx_locale/af.po
-%%DATADIR%%/localization/wx_locale/an.po
-%%DATADIR%%/localization/wx_locale/ar.po
-%%DATADIR%%/localization/wx_locale/be.po
-%%DATADIR%%/localization/wx_locale/ca.po
-%%DATADIR%%/localization/wx_locale/ca@valencia.po
-%%DATADIR%%/localization/wx_locale/cs.po
-%%DATADIR%%/localization/wx_locale/da.po
-%%DATADIR%%/localization/wx_locale/de.po
-%%DATADIR%%/localization/wx_locale/el.po
-%%DATADIR%%/localization/wx_locale/en.mo
-%%DATADIR%%/localization/wx_locale/en.po
-%%DATADIR%%/localization/wx_locale/es.po
-%%DATADIR%%/localization/wx_locale/eu.po
-%%DATADIR%%/localization/wx_locale/fa_IR.po
-%%DATADIR%%/localization/wx_locale/fi.po
-%%DATADIR%%/localization/wx_locale/fr.po
-%%DATADIR%%/localization/wx_locale/gl_ES.po
-%%DATADIR%%/localization/wx_locale/hi.po
-%%DATADIR%%/localization/wx_locale/hr.po
-%%DATADIR%%/localization/wx_locale/hu.po
-%%DATADIR%%/localization/wx_locale/id.po
-%%DATADIR%%/localization/wx_locale/it.po
-%%DATADIR%%/localization/wx_locale/ja.po
-%%DATADIR%%/localization/wx_locale/ko.po
-%%DATADIR%%/localization/wx_locale/ko_KR.po
-%%DATADIR%%/localization/wx_locale/lt.po
-%%DATADIR%%/localization/wx_locale/lv.po
-%%DATADIR%%/localization/wx_locale/ms.po
-%%DATADIR%%/localization/wx_locale/nb.po
-%%DATADIR%%/localization/wx_locale/ne.po
-%%DATADIR%%/localization/wx_locale/nl.po
-%%DATADIR%%/localization/wx_locale/pl.po
-%%DATADIR%%/localization/wx_locale/pt.po
-%%DATADIR%%/localization/wx_locale/pt_BR.po
-%%DATADIR%%/localization/wx_locale/ro.po
-%%DATADIR%%/localization/wx_locale/ru.po
-%%DATADIR%%/localization/wx_locale/sk.po
-%%DATADIR%%/localization/wx_locale/sl.po
-%%DATADIR%%/localization/wx_locale/sq.po
-%%DATADIR%%/localization/wx_locale/sv.po
-%%DATADIR%%/localization/wx_locale/ta.po
-%%DATADIR%%/localization/wx_locale/tr.po
-%%DATADIR%%/localization/wx_locale/uk.po
-%%DATADIR%%/localization/wx_locale/vi.po
-%%DATADIR%%/localization/wx_locale/zh_CN.po
-%%DATADIR%%/localization/wx_locale/zh_TW.po
-%%DATADIR%%/localization/zh_CN/PrusaSlicer.mo
-%%DATADIR%%/localization/zh_CN/PrusaSlicer_zh_CN.po
-%%DATADIR%%/localization/zh_TW/PrusaSlicer.mo
-%%DATADIR%%/localization/zh_TW/PrusaSlicer_zh_TW.po
-%%DATADIR%%/profiles/Anker.idx
-%%DATADIR%%/profiles/Anker.ini
-%%DATADIR%%/profiles/Anker/M5-bed.stl
-%%DATADIR%%/profiles/Anker/M5-texture.svg
-%%DATADIR%%/profiles/Anker/M5-texture_v2.svg
-%%DATADIR%%/profiles/Anker/M5C-bed.stl
-%%DATADIR%%/profiles/Anker/M5C-texture.svg
-%%DATADIR%%/profiles/Anker/M5C-texture_v2.svg
-%%DATADIR%%/profiles/Anker/M5C_thumbnail.png
-%%DATADIR%%/profiles/Anker/M5C_thumbnail_v2.png
-%%DATADIR%%/profiles/Anker/M5_thumbnail.png
-%%DATADIR%%/profiles/Anker/M5_thumbnail_v2.png
-%%DATADIR%%/profiles/Anycubic.idx
-%%DATADIR%%/profiles/Anycubic.ini
-%%DATADIR%%/profiles/Anycubic/4MAXPRO20_bed.stl
-%%DATADIR%%/profiles/Anycubic/4MAXPRO20_texture.svg
-%%DATADIR%%/profiles/Anycubic/4MAXPRO20_thumbnail.png
-%%DATADIR%%/profiles/Anycubic/AK.png
-%%DATADIR%%/profiles/Anycubic/AK.svg
-%%DATADIR%%/profiles/Anycubic/AKLP_Bed.stl
-%%DATADIR%%/profiles/Anycubic/AKLP_thumbnail.png
-%%DATADIR%%/profiles/Anycubic/AK_Bed.stl
-%%DATADIR%%/profiles/Anycubic/AK_thumbnail.png
-%%DATADIR%%/profiles/Anycubic/I3MEGAS_thumbnail.png
-%%DATADIR%%/profiles/Anycubic/I3MEGA_thumbnail.png
-%%DATADIR%%/profiles/Anycubic/MEGA0_thumbnail.png
-%%DATADIR%%/profiles/Anycubic/PHOTON MONO SE_thumbnail.png
-%%DATADIR%%/profiles/Anycubic/PHOTON MONO X 6K_thumbnail.png
-%%DATADIR%%/profiles/Anycubic/PHOTON MONO X_thumbnail.png
-%%DATADIR%%/profiles/Anycubic/PHOTON MONO_thumbnail.png
-%%DATADIR%%/profiles/Anycubic/PREDATOR_thumbnail.png
-%%DATADIR%%/profiles/Anycubic/i3megas.svg
-%%DATADIR%%/profiles/Anycubic/i3megas_bed.stl
-%%DATADIR%%/profiles/Anycubic/mega0.svg
-%%DATADIR%%/profiles/Anycubic/mega0_bed.stl
-%%DATADIR%%/profiles/AnycubicSLA.idx
-%%DATADIR%%/profiles/AnycubicSLA.ini
-%%DATADIR%%/profiles/AnycubicSLA/PHOTON MONO SE_thumbnail.png
-%%DATADIR%%/profiles/AnycubicSLA/PHOTON MONO X 6K_thumbnail.png
-%%DATADIR%%/profiles/AnycubicSLA/PHOTON MONO X_thumbnail.png
-%%DATADIR%%/profiles/AnycubicSLA/PHOTON MONO_thumbnail.png
-%%DATADIR%%/profiles/ArchiveRepositoryManifest.json
-%%DATADIR%%/profiles/Artillery.idx
-%%DATADIR%%/profiles/Artillery.ini
-%%DATADIR%%/profiles/Artillery/Genius_thumbnail.png
-%%DATADIR%%/profiles/Artillery/Hornet_thumbnail.png
-%%DATADIR%%/profiles/Artillery/X1_thumbnail.png
-%%DATADIR%%/profiles/Artillery/X3 Plus_thumbnail.png
-%%DATADIR%%/profiles/Artillery/X3 Pro_thumbnail.png
-%%DATADIR%%/profiles/Artillery/X4 Max_thumbnail.png
-%%DATADIR%%/profiles/Artillery/X4 Plus_thumbnail.png
-%%DATADIR%%/profiles/Artillery/X4 Pro_thumbnail.png
-%%DATADIR%%/profiles/Artillery/bed-genius.png
-%%DATADIR%%/profiles/Artillery/bed-genius.stl
-%%DATADIR%%/profiles/Artillery/bed-hornet.png
-%%DATADIR%%/profiles/Artillery/bed-hornet.stl
-%%DATADIR%%/profiles/Artillery/bed-x1.png
-%%DATADIR%%/profiles/Artillery/bed-x1.stl
-%%DATADIR%%/profiles/Artillery/bed-x3-plus.stl
-%%DATADIR%%/profiles/Artillery/bed-x3-pro.stl
-%%DATADIR%%/profiles/Artillery/bed-x4-max.stl
-%%DATADIR%%/profiles/Artillery/bed-x4-plus.stl
-%%DATADIR%%/profiles/Artillery/bed-x4-pro.stl
-%%DATADIR%%/profiles/BIBO.idx
-%%DATADIR%%/profiles/BIBO.ini
-%%DATADIR%%/profiles/BIBO/BIBO2.svg
-%%DATADIR%%/profiles/BIBO/BIBO2_bed.stl
-%%DATADIR%%/profiles/BIBO/BIBO2_thumbnail.png
-%%DATADIR%%/profiles/BIQU.idx
-%%DATADIR%%/profiles/BIQU.ini
-%%DATADIR%%/profiles/BIQU/BIQUBX_thumbnail.png
-%%DATADIR%%/profiles/BIQU/BX_Bed.stl
-%%DATADIR%%/profiles/BIQU/BX_Texture.png
-%%DATADIR%%/profiles/CocoaPress.idx
-%%DATADIR%%/profiles/CocoaPress.ini
-%%DATADIR%%/profiles/CocoaPress/CocoaPress_MiniChef.png
-%%DATADIR%%/profiles/CocoaPress/minichef_bed.stl
-%%DATADIR%%/profiles/CocoaPress/minichef_texture.svg
-%%DATADIR%%/profiles/Creality.idx
-%%DATADIR%%/profiles/Creality.ini
-%%DATADIR%%/profiles/Creality/CR10MAX_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR10MINI_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR10S4_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR10S5_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR10SMARTPRO_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR10SMART_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR10SPROV2_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR10SPRO_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR10S_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR10V2_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR10V3_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR10_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR200B_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR20PRO_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR20_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR5PROH_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR5PRO_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR6MAX_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR6SE_thumbnail.png
-%%DATADIR%%/profiles/Creality/CR8_thumbnail.png
-%%DATADIR%%/profiles/Creality/CRXPRO_thumbnail.png
-%%DATADIR%%/profiles/Creality/CRX_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER2PRO_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER2_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER3BLTOUCH_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER3MAXNEO_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER3MAX_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER3NEO_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER3PRO_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER3S1PLUS_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER3S1PRO_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER3S1_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER3V2NEO_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER3V2_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER3_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER4_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER5PLUS_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER5PRO_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER5S1_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER5_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER6_thumbnail.png
-%%DATADIR%%/profiles/Creality/ENDER7_thumbnail.png
-%%DATADIR%%/profiles/Creality/SERMOOND1_thumbnail.png
-%%DATADIR%%/profiles/Creality/SERMOONV1PRO_thumbnail.png
-%%DATADIR%%/profiles/Creality/SERMOONV1_thumbnail.png
-%%DATADIR%%/profiles/Creality/cr10.svg
-%%DATADIR%%/profiles/Creality/cr10_bed.stl
-%%DATADIR%%/profiles/Creality/cr10max.svg
-%%DATADIR%%/profiles/Creality/cr10max_bed.stl
-%%DATADIR%%/profiles/Creality/cr10mini.svg
-%%DATADIR%%/profiles/Creality/cr10mini_bed.stl
-%%DATADIR%%/profiles/Creality/cr10s4.svg
-%%DATADIR%%/profiles/Creality/cr10s4_bed.stl
-%%DATADIR%%/profiles/Creality/cr10s5.svg
-%%DATADIR%%/profiles/Creality/cr10s5_bed.stl
-%%DATADIR%%/profiles/Creality/cr10spro.svg
-%%DATADIR%%/profiles/Creality/cr10v2_bed.stl
-%%DATADIR%%/profiles/Creality/cr20.svg
-%%DATADIR%%/profiles/Creality/cr200b.svg
-%%DATADIR%%/profiles/Creality/cr200b_bed.stl
-%%DATADIR%%/profiles/Creality/cr5pro.svg
-%%DATADIR%%/profiles/Creality/cr5pro_bed.stl
-%%DATADIR%%/profiles/Creality/cr6se.svg
-%%DATADIR%%/profiles/Creality/cr6se_bed.stl
-%%DATADIR%%/profiles/Creality/cr8.svg
-%%DATADIR%%/profiles/Creality/cr8_bed.stl
-%%DATADIR%%/profiles/Creality/ender2.svg
-%%DATADIR%%/profiles/Creality/ender2_bed.stl
-%%DATADIR%%/profiles/Creality/ender2pro.svg
-%%DATADIR%%/profiles/Creality/ender2pro_bed.stl
-%%DATADIR%%/profiles/Creality/ender3.svg
-%%DATADIR%%/profiles/Creality/ender3_bed.stl
-%%DATADIR%%/profiles/Creality/ender3v2.svg
-%%DATADIR%%/profiles/Creality/ender3v2_bed.stl
-%%DATADIR%%/profiles/Creality/ender5plus.svg
-%%DATADIR%%/profiles/Creality/ender5plus_bed.stl
-%%DATADIR%%/profiles/Creality/ender6.svg
-%%DATADIR%%/profiles/Creality/ender6_bed.stl
-%%DATADIR%%/profiles/Creality/ender7.svg
-%%DATADIR%%/profiles/Creality/ender7_bed.stl
-%%DATADIR%%/profiles/Creality/sermoond1.svg
-%%DATADIR%%/profiles/Creality/sermoond1_bed.stl
-%%DATADIR%%/profiles/Creality/sermoonv1.svg
-%%DATADIR%%/profiles/Creality/sermoonv1_bed.stl
-%%DATADIR%%/profiles/Elegoo.idx
-%%DATADIR%%/profiles/Elegoo.ini
-%%DATADIR%%/profiles/Elegoo/NEPTUNE1_thumbnail.png
-%%DATADIR%%/profiles/Elegoo/NEPTUNE2D_thumbnail.png
-%%DATADIR%%/profiles/Elegoo/NEPTUNE2S_thumbnail.png
-%%DATADIR%%/profiles/Elegoo/NEPTUNE2_thumbnail.png
-%%DATADIR%%/profiles/Elegoo/NEPTUNE3MAX_thumbnail.png
-%%DATADIR%%/profiles/Elegoo/NEPTUNE3PLUS_thumbnail.png
-%%DATADIR%%/profiles/Elegoo/NEPTUNE3PRO_thumbnail.png
-%%DATADIR%%/profiles/Elegoo/NEPTUNE3_thumbnail.png
-%%DATADIR%%/profiles/Elegoo/NEPTUNEX_thumbnail.png
-%%DATADIR%%/profiles/FLSun.idx
-%%DATADIR%%/profiles/FLSun.ini
-%%DATADIR%%/profiles/FLSun/Q5.svg
-%%DATADIR%%/profiles/FLSun/Q5_bed.stl
-%%DATADIR%%/profiles/FLSun/Q5_thumbnail.png
-%%DATADIR%%/profiles/FLSun/QQSP.svg
-%%DATADIR%%/profiles/FLSun/QQSP_bed.stl
-%%DATADIR%%/profiles/FLSun/QQSP_thumbnail.png
-%%DATADIR%%/profiles/Geeetech.idx
-%%DATADIR%%/profiles/Geeetech.ini
-%%DATADIR%%/profiles/Geeetech/105x105.stl
-%%DATADIR%%/profiles/Geeetech/105x105.svg
-%%DATADIR%%/profiles/Geeetech/125X130.stl
-%%DATADIR%%/profiles/Geeetech/125x130.svg
-%%DATADIR%%/profiles/Geeetech/150x150.stl
-%%DATADIR%%/profiles/Geeetech/150x150.svg
-%%DATADIR%%/profiles/Geeetech/160x160.stl
-%%DATADIR%%/profiles/Geeetech/160x160.svg
-%%DATADIR%%/profiles/Geeetech/180X150.stl
-%%DATADIR%%/profiles/Geeetech/180x150.svg
-%%DATADIR%%/profiles/Geeetech/200x200.stl
-%%DATADIR%%/profiles/Geeetech/200x200.svg
-%%DATADIR%%/profiles/Geeetech/220x220.stl
-%%DATADIR%%/profiles/Geeetech/220x220.svg
-%%DATADIR%%/profiles/Geeetech/250x250.stl
-%%DATADIR%%/profiles/Geeetech/250x250.svg
-%%DATADIR%%/profiles/Geeetech/255x255.stl
-%%DATADIR%%/profiles/Geeetech/255x255.svg
-%%DATADIR%%/profiles/Geeetech/300x180.stl
-%%DATADIR%%/profiles/Geeetech/300x180.svg
-%%DATADIR%%/profiles/Geeetech/320x320.stl
-%%DATADIR%%/profiles/Geeetech/320x320.svg
-%%DATADIR%%/profiles/Geeetech/A10M_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/A10Pro_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/A10T_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/A20M_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/A20T_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/A20_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/A30M_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/A30Pro_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/A30T_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/E180_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/GiantArmD200_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/I3ProB_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/I3ProC_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/I3ProW_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/M1.svg
-%%DATADIR%%/profiles/Geeetech/M1_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/MeCreator2_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/MeCreator_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/MeDucer_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/MizarM_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/MizarMax_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/MizarPro_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/MizarS_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/Mizar_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/ThunderPro_thumbnail.png
-%%DATADIR%%/profiles/Geeetech/Thunder_thumbnail.png
-%%DATADIR%%/profiles/HartSmartProducts.idx
-%%DATADIR%%/profiles/HartSmartProducts.ini
-%%DATADIR%%/profiles/HartSmartProducts/HSP1-I Duplicator Mode_thumbnail.png
-%%DATADIR%%/profiles/HartSmartProducts/HSP1-I_thumbnail.png
-%%DATADIR%%/profiles/HartSmartProducts/hsp1_i.svg
-%%DATADIR%%/profiles/HartSmartProducts/hsp1_i_bed.stl
-%%DATADIR%%/profiles/HartSmartProducts/hsp1_i_duplicator.svg
-%%DATADIR%%/profiles/HartSmartProducts/hsp1_i_duplicator_bed.stl
-%%DATADIR%%/profiles/INAT.idx
-%%DATADIR%%/profiles/INAT.ini
-%%DATADIR%%/profiles/INAT/PROTON_XE750_thumbnail.png
-%%DATADIR%%/profiles/INAT/PROTON_X_RAIL_thumbnail.png
-%%DATADIR%%/profiles/INAT/PROTON_X_ROD_thumbnail.png
-%%DATADIR%%/profiles/Infinity3D.idx
-%%DATADIR%%/profiles/Infinity3D.ini
-%%DATADIR%%/profiles/Infinity3D/DEV-200_thumbnail.png
-%%DATADIR%%/profiles/Infinity3D/DEV-350_thumbnail.png
-%%DATADIR%%/profiles/Infinity3D/DEV_200_bed.stl
-%%DATADIR%%/profiles/Infinity3D/DEV_200_texture.svg
-%%DATADIR%%/profiles/Infinity3D/DEV_350_bed.stl
-%%DATADIR%%/profiles/Infinity3D/DEV_350_texture.svg
-%%DATADIR%%/profiles/Jubilee.idx
-%%DATADIR%%/profiles/Jubilee.ini
-%%DATADIR%%/profiles/Jubilee/Jubilee_bed.stl
-%%DATADIR%%/profiles/Jubilee/Jubilee_texture.svg
-%%DATADIR%%/profiles/Jubilee/Jubilee_thumbnail.png
-%%DATADIR%%/profiles/LNL3D.idx
-%%DATADIR%%/profiles/LNL3D.ini
-%%DATADIR%%/profiles/LNL3D/LNL3D_D3_V2_bed.stl
-%%DATADIR%%/profiles/LNL3D/LNL3D_D3_V2_texture.svg
-%%DATADIR%%/profiles/LNL3D/LNL3D_D3_V2_thumbnail.png
-%%DATADIR%%/profiles/LNL3D/LNL3D_D3_VULCAN_bed.stl
-%%DATADIR%%/profiles/LNL3D/LNL3D_D3_VULCAN_texture.svg
-%%DATADIR%%/profiles/LNL3D/LNL3D_D3_VULCAN_thumbnail.png
-%%DATADIR%%/profiles/LNL3D/LNL3D_D3_bed.stl
-%%DATADIR%%/profiles/LNL3D/LNL3D_D3_texture.svg
-%%DATADIR%%/profiles/LNL3D/LNL3D_D3_thumbnail.png
-%%DATADIR%%/profiles/LNL3D/LNL3D_D5_bed.stl
-%%DATADIR%%/profiles/LNL3D/LNL3D_D5_texture.svg
-%%DATADIR%%/profiles/LNL3D/LNL3D_D5_thumbnail.png
-%%DATADIR%%/profiles/LNL3D/LNL3D_D6_bed.stl
-%%DATADIR%%/profiles/LNL3D/LNL3D_D6_texture.svg
-%%DATADIR%%/profiles/LNL3D/LNL3D_D6_thumbnail.png
-%%DATADIR%%/profiles/LulzBot.idx
-%%DATADIR%%/profiles/LulzBot.ini
-%%DATADIR%%/profiles/LulzBot/MINI_AERO_thumbnail.png
-%%DATADIR%%/profiles/LulzBot/TAZ6_AERO_thumbnail.png
-%%DATADIR%%/profiles/LulzBot/TAZ_WORKHORSE_thumbnail.png
-%%DATADIR%%/profiles/MakerGear.idx
-%%DATADIR%%/profiles/MakerGear.ini
-%%DATADIR%%/profiles/MakerGear/M2_M3.stl
-%%DATADIR%%/profiles/MakerGear/M2_M3.svg
-%%DATADIR%%/profiles/MakerGear/MAKERGEAR_M2_DUAL_thumbnail.png
-%%DATADIR%%/profiles/MakerGear/MAKERGEAR_M2_thumbnail.png
-%%DATADIR%%/profiles/MakerGear/MAKERGEAR_M3_DUPLICATION_thumbnail.png
-%%DATADIR%%/profiles/MakerGear/MAKERGEAR_M3_SE_thumbnail.png
-%%DATADIR%%/profiles/MakerGear/MAKERGEAR_M3_thumbnail.png
-%%DATADIR%%/profiles/MakerGear/MAKERGEAR_MICRO_thumbnail.png
-%%DATADIR%%/profiles/MakerGear/MAKERGEAR_U1_thumbnail.png
-%%DATADIR%%/profiles/PapapiuLab.idx
-%%DATADIR%%/profiles/PapapiuLab.ini
-%%DATADIR%%/profiles/PapapiuLab/Papapiu_N1S_Bed.stl
-%%DATADIR%%/profiles/PapapiuLab/Papapiu_N1S_thumbnail.png
-%%DATADIR%%/profiles/PapapiuLab/Papapiu_N1_Texture.png
-%%DATADIR%%/profiles/Print4Taste.idx
-%%DATADIR%%/profiles/Print4Taste.ini
-%%DATADIR%%/profiles/Print4Taste/MC2.0_bed.stl
-%%DATADIR%%/profiles/Print4Taste/MC2.0_texture.svg
-%%DATADIR%%/profiles/Print4Taste/MC2.0_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch.idx
-%%DATADIR%%/profiles/PrusaResearch.ini
-%%DATADIR%%/profiles/PrusaResearch/MINIIS_ALPHA_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MINIIS_BETA_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MINIIS_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MINI_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK2.5MMU2_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK2.5SMMU2S_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK2.5S_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK2.5_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK2SMM_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK2S_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK3.5MMU3_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK3.9MMU3_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK35_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK39IS_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK39IS_thumbnail_v2.png
-%%DATADIR%%/profiles/PrusaResearch/MK39_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK3MMU2_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK3SMMU2S_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK3SMMU3_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK3S_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK3_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK4ISMMU3_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK4IS_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK4IS_thumbnail_v2.png
-%%DATADIR%%/profiles/PrusaResearch/MK4SMMU3_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK4S_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/MK4_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/XL2IS_alpha_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/XL2IS_beta_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/XL2IS_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/XL2_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/XL5IS_alpha_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/XL5IS_beta_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/XL5IS_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/XL5_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/XLIS_alpha_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/XLIS_beta_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/XLIS_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/XL_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearch/mini.svg
-%%DATADIR%%/profiles/PrusaResearch/miniIS.svg
-%%DATADIR%%/profiles/PrusaResearch/miniISbeta.svg
-%%DATADIR%%/profiles/PrusaResearch/mini_bed.stl
-%%DATADIR%%/profiles/PrusaResearch/mk2.svg
-%%DATADIR%%/profiles/PrusaResearch/mk2_bed.stl
-%%DATADIR%%/profiles/PrusaResearch/mk3.svg
-%%DATADIR%%/profiles/PrusaResearch/mk35.svg
-%%DATADIR%%/profiles/PrusaResearch/mk39.svg
-%%DATADIR%%/profiles/PrusaResearch/mk39s.svg
-%%DATADIR%%/profiles/PrusaResearch/mk3_bed.stl
-%%DATADIR%%/profiles/PrusaResearch/mk4.svg
-%%DATADIR%%/profiles/PrusaResearch/mk4_bed.stl
-%%DATADIR%%/profiles/PrusaResearch/mk4is.svg
-%%DATADIR%%/profiles/PrusaResearch/mk4s.svg
-%%DATADIR%%/profiles/PrusaResearch/xl.svg
-%%DATADIR%%/profiles/PrusaResearch/xl_bed.stl
-%%DATADIR%%/profiles/PrusaResearch/xlis_alpha.svg
-%%DATADIR%%/profiles/PrusaResearch/xlis_beta.svg
-%%DATADIR%%/profiles/PrusaResearchSLA.idx
-%%DATADIR%%/profiles/PrusaResearchSLA.ini
-%%DATADIR%%/profiles/PrusaResearchSLA/SL1S_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearchSLA/SL1_thumbnail.png
-%%DATADIR%%/profiles/PrusaResearchSLA/sl1.svg
-%%DATADIR%%/profiles/PrusaResearchSLA/sl1_bed.stl
-%%DATADIR%%/profiles/PrusaResearchSLA/sl1s.svg
-%%DATADIR%%/profiles/PrusaResearchSLA/sl1s_bed.stl
-%%DATADIR%%/profiles/RatRig.idx
-%%DATADIR%%/profiles/RatRig.ini
-%%DATADIR%%/profiles/RatRig/VC3_300_thumbnail.png
-%%DATADIR%%/profiles/RatRig/VC3_400_thumbnail.png
-%%DATADIR%%/profiles/RatRig/VC3_500_thumbnail.png
-%%DATADIR%%/profiles/RatRig/VMINION_thumbnail.png
-%%DATADIR%%/profiles/RatRig/rr-vc-300.stl
-%%DATADIR%%/profiles/RatRig/rr-vc-300.svg
-%%DATADIR%%/profiles/RatRig/rr-vc-400.stl
-%%DATADIR%%/profiles/RatRig/rr-vc-400.svg
-%%DATADIR%%/profiles/RatRig/rr-vc-500.stl
-%%DATADIR%%/profiles/RatRig/rr-vc-500.svg
-%%DATADIR%%/profiles/RatRig/rr-vminion.stl
-%%DATADIR%%/profiles/RatRig/rr-vminion.svg
-%%DATADIR%%/profiles/RatRig/vc4-corexy.png
-%%DATADIR%%/profiles/RatRig/vc4-hybrid.png
-%%DATADIR%%/profiles/RatRig/vc4-idex.png
-%%DATADIR%%/profiles/Rigid3D.idx
-%%DATADIR%%/profiles/Rigid3D.ini
-%%DATADIR%%/profiles/Rigid3D/Mucit2_thumbnail.png
-%%DATADIR%%/profiles/Rigid3D/Mucit_thumbnail.png
-%%DATADIR%%/profiles/Rigid3D/Zero2_thumbnail.png
-%%DATADIR%%/profiles/Rigid3D/Zero3_thumbnail.png
-%%DATADIR%%/profiles/Rigid3D/mucit2_bed.png
-%%DATADIR%%/profiles/Rigid3D/mucit2_bed.stl
-%%DATADIR%%/profiles/Rigid3D/mucit_bed.png
-%%DATADIR%%/profiles/Rigid3D/mucit_bed.stl
-%%DATADIR%%/profiles/Rigid3D/zero2_bed.png
-%%DATADIR%%/profiles/Rigid3D/zero3_bed.png
-%%DATADIR%%/profiles/Rigid3D/zero_bed.stl
-%%DATADIR%%/profiles/Snapmaker.idx
-%%DATADIR%%/profiles/Snapmaker.ini
-%%DATADIR%%/profiles/Snapmaker/Snapmaker A250 Dual QSKit_cover.png
-%%DATADIR%%/profiles/Snapmaker/Snapmaker A250 Dual_cover.png
-%%DATADIR%%/profiles/Snapmaker/Snapmaker A250 QSKit_cover.png
-%%DATADIR%%/profiles/Snapmaker/Snapmaker A250 QSKit_texture.svg
-%%DATADIR%%/profiles/Snapmaker/Snapmaker A250_bed.stl
-%%DATADIR%%/profiles/Snapmaker/Snapmaker A250_cover.png
-%%DATADIR%%/profiles/Snapmaker/Snapmaker A250_texture.svg
-%%DATADIR%%/profiles/Snapmaker/Snapmaker A350 Dual QSKit_cover.png
-%%DATADIR%%/profiles/Snapmaker/Snapmaker A350 Dual_cover.png
-%%DATADIR%%/profiles/Snapmaker/Snapmaker A350 QSKit_cover.png
-%%DATADIR%%/profiles/Snapmaker/Snapmaker A350 QSKit_texture.svg
-%%DATADIR%%/profiles/Snapmaker/Snapmaker A350_bed.stl
-%%DATADIR%%/profiles/Snapmaker/Snapmaker A350_cover.png
-%%DATADIR%%/profiles/Snapmaker/Snapmaker A350_texture.svg
-%%DATADIR%%/profiles/Snapmaker/Snapmaker J1_bed.stl
-%%DATADIR%%/profiles/Snapmaker/Snapmaker J1_cover.png
-%%DATADIR%%/profiles/Snapmaker/Snapmaker J1_texture.svg
-%%DATADIR%%/profiles/Sovol.idx
-%%DATADIR%%/profiles/Sovol.ini
-%%DATADIR%%/profiles/Sovol/SV01 PRO_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV01_BLTouch_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV01_bed.stl
-%%DATADIR%%/profiles/Sovol/SV01_texture.svg
-%%DATADIR%%/profiles/Sovol/SV01_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV02_BLTouch_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV02_texture.svg
-%%DATADIR%%/profiles/Sovol/SV02_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV03_BLTouch_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV03_bed.stl
-%%DATADIR%%/profiles/Sovol/SV03_texture.svg
-%%DATADIR%%/profiles/Sovol/SV03_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV04 Copy Mode_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV04 Dual Mode_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV04 Mirror Mode_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV04 Single Mode 01_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV04 Single Mode 02_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV04_bed.stl
-%%DATADIR%%/profiles/Sovol/SV04_texture.svg
-%%DATADIR%%/profiles/Sovol/SV04_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV05_bed.stl
-%%DATADIR%%/profiles/Sovol/SV05_texture.svg
-%%DATADIR%%/profiles/Sovol/SV05_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV06 PLUS_thumbnail.png
-%%DATADIR%%/profiles/Sovol/SV06PLUS_bed.stl
-%%DATADIR%%/profiles/Sovol/SV06PLUS_texture.svg
-%%DATADIR%%/profiles/Sovol/SV06_bed.stl
-%%DATADIR%%/profiles/Sovol/SV06_texture.svg
-%%DATADIR%%/profiles/Sovol/SV06_thumbnail.png
-%%DATADIR%%/profiles/Sovol/Sovol.ini
-%%DATADIR%%/profiles/Templates.idx
-%%DATADIR%%/profiles/Templates.ini
-%%DATADIR%%/profiles/TriLAB.idx
-%%DATADIR%%/profiles/TriLAB.ini
-%%DATADIR%%/profiles/TriLAB/AQD_thumbnail.png
-%%DATADIR%%/profiles/TriLAB/AQI_thumbnail.png
-%%DATADIR%%/profiles/TriLAB/DQ2+FP2_thumbnail.png
-%%DATADIR%%/profiles/TriLAB/DQ2+FP_thumbnail.png
-%%DATADIR%%/profiles/TriLAB/DQ2P+FP2_thumbnail.png
-%%DATADIR%%/profiles/TriLAB/DQ2P+FP_thumbnail.png
-%%DATADIR%%/profiles/TriLAB/DQ2P_thumbnail.png
-%%DATADIR%%/profiles/TriLAB/DQ2_thumbnail.png
-%%DATADIR%%/profiles/TriLAB/DQL_thumbnail.png
-%%DATADIR%%/profiles/TriLAB/DQM_thumbnail.png
-%%DATADIR%%/profiles/TriLAB/DQXL_thumbnail.png
-%%DATADIR%%/profiles/TriLAB/aq_bed.stl
-%%DATADIR%%/profiles/TriLAB/aqp_bed.stl
-%%DATADIR%%/profiles/TriLAB/dq2_bed.stl
-%%DATADIR%%/profiles/Trimaker.idx
-%%DATADIR%%/profiles/Trimaker.ini
-%%DATADIR%%/profiles/Trimaker/CosmosII_bed.stl
-%%DATADIR%%/profiles/Trimaker/Cosmos_II_thumbnail.png
-%%DATADIR%%/profiles/Trimaker/NPC_thumbnail.png
-%%DATADIR%%/profiles/Trimaker/NebulaCloud.svg
-%%DATADIR%%/profiles/Trimaker/NebulaCloud_bed.stl
-%%DATADIR%%/profiles/Trimaker/Nebula_thumbnail.png
-%%DATADIR%%/profiles/Ultimaker.idx
-%%DATADIR%%/profiles/Ultimaker.ini
-%%DATADIR%%/profiles/Ultimaker/ULTIMAKER2_thumbnail.png
-%%DATADIR%%/profiles/Ultimaker/ULTIMAKER2_thumbnail_v2.png
-%%DATADIR%%/profiles/Ultimaker/ULTIMAKERSline_thumbnail.png
-%%DATADIR%%/profiles/Ultimaker/ultimaker2.svg
-%%DATADIR%%/profiles/Ultimaker/ultimaker2_bed.stl
-%%DATADIR%%/profiles/Voron.idx
-%%DATADIR%%/profiles/Voron.ini
-%%DATADIR%%/profiles/Voron/Voron_SW_thumbnail.png
-%%DATADIR%%/profiles/Voron/Voron_v0_120_thumbnail.png
-%%DATADIR%%/profiles/Voron/Voron_v1_250_afterburner_thumbnail.png
-%%DATADIR%%/profiles/Voron/Voron_v1_300_afterburner_thumbnail.png
-%%DATADIR%%/profiles/Voron/Voron_v1_350_afterburner_thumbnail.png
-%%DATADIR%%/profiles/Voron/Voron_v2_250_afterburner_thumbnail.png
-%%DATADIR%%/profiles/Voron/Voron_v2_250_thumbnail.png
-%%DATADIR%%/profiles/Voron/Voron_v2_300_afterburner_thumbnail.png
-%%DATADIR%%/profiles/Voron/Voron_v2_300_thumbnail.png
-%%DATADIR%%/profiles/Voron/Voron_v2_350_afterburner_thumbnail.png
-%%DATADIR%%/profiles/Voron/Voron_v2_350_thumbnail.png
-%%DATADIR%%/profiles/Voron/bedtexture-SW-250x210.png
-%%DATADIR%%/profiles/Voron/bedtexture-v0-120.png
-%%DATADIR%%/profiles/Voron/bedtexture-v1-250.png
-%%DATADIR%%/profiles/Voron/bedtexture-v1-300.png
-%%DATADIR%%/profiles/Voron/bedtexture-v2-250.png
-%%DATADIR%%/profiles/Voron/bedtexture-v2-300.png
-%%DATADIR%%/profiles/Voron/bedtexture-v2-350.png
-%%DATADIR%%/profiles/Voron/printbed-SW-MK52.stl
-%%DATADIR%%/profiles/Voron/printbed-v0-120.stl
-%%DATADIR%%/profiles/Voron/printbed-v1-250.stl
-%%DATADIR%%/profiles/Voron/printbed-v1-300.stl
-%%DATADIR%%/profiles/Voron/printbed-v1-350.stl
-%%DATADIR%%/profiles/Voron/printbed-v2-250.stl
-%%DATADIR%%/profiles/Voron/printbed-v2-300.stl
-%%DATADIR%%/profiles/Voron/printbed-v2-350.stl
-%%DATADIR%%/profiles/Zonestar.idx
-%%DATADIR%%/profiles/Zonestar.ini
-%%DATADIR%%/profiles/Zonestar/150_texture.svg
-%%DATADIR%%/profiles/Zonestar/220_texture.svg
-%%DATADIR%%/profiles/Zonestar/310_texture.svg
-%%DATADIR%%/profiles/Zonestar/Z5X_thumbnail.png
-%%DATADIR%%/profiles/Zonestar/Z5_thumbnail.png
-%%DATADIR%%/profiles/Zonestar/Z6_thumbnail.png
-%%DATADIR%%/profiles/Zonestar/Z8_thumbnail.png
-%%DATADIR%%/profiles/Zonestar/Z9_thumbnail.png
-%%DATADIR%%/profiles/Zonestar/bed_150.stl
-%%DATADIR%%/profiles/Zonestar/bed_220.stl
-%%DATADIR%%/profiles/Zonestar/bed_310.stl
-%%DATADIR%%/profiles/gCreate.idx
-%%DATADIR%%/profiles/gCreate.ini
-%%DATADIR%%/profiles/gCreate/GMAX15P_thumbnail.png
-%%DATADIR%%/profiles/gCreate/GMAX2DUAL2IN1_thumbnail.png
-%%DATADIR%%/profiles/gCreate/GMAX2DUAL_thumbnail.png
-%%DATADIR%%/profiles/gCreate/GMAX2PRO_thumbnail.png
-%%DATADIR%%/profiles/gCreate/GMAX2_thumbnail.png
-%%DATADIR%%/profiles/gCreate/gmax15p.svg
-%%DATADIR%%/profiles/gCreate/gmax15p_bed.stl
-%%DATADIR%%/profiles/gCreate/gmax2.svg
-%%DATADIR%%/profiles/gCreate/gmax2_bed.stl
-%%DATADIR%%/shaders/110/background.fs
-%%DATADIR%%/shaders/110/background.vs
-%%DATADIR%%/shaders/110/flat.fs
-%%DATADIR%%/shaders/110/flat.vs
-%%DATADIR%%/shaders/110/flat_clip.fs
-%%DATADIR%%/shaders/110/flat_clip.vs
-%%DATADIR%%/shaders/110/flat_texture.fs
-%%DATADIR%%/shaders/110/flat_texture.vs
-%%DATADIR%%/shaders/110/gouraud.fs
-%%DATADIR%%/shaders/110/gouraud.vs
-%%DATADIR%%/shaders/110/gouraud_light.fs
-%%DATADIR%%/shaders/110/gouraud_light.vs
-%%DATADIR%%/shaders/110/gouraud_light_clip.fs
-%%DATADIR%%/shaders/110/gouraud_light_clip.vs
-%%DATADIR%%/shaders/110/gouraud_light_instanced.fs
-%%DATADIR%%/shaders/110/gouraud_light_instanced.vs
-%%DATADIR%%/shaders/110/imgui.fs
-%%DATADIR%%/shaders/110/imgui.vs
-%%DATADIR%%/shaders/110/mm_contour.fs
-%%DATADIR%%/shaders/110/mm_contour.vs
-%%DATADIR%%/shaders/110/mm_gouraud.fs
-%%DATADIR%%/shaders/110/mm_gouraud.vs
-%%DATADIR%%/shaders/110/printbed.fs
-%%DATADIR%%/shaders/110/printbed.vs
-%%DATADIR%%/shaders/110/toolpaths_cog.fs
-%%DATADIR%%/shaders/110/toolpaths_cog.vs
-%%DATADIR%%/shaders/110/variable_layer_height.fs
-%%DATADIR%%/shaders/110/variable_layer_height.vs
-%%DATADIR%%/shaders/140/background.fs
-%%DATADIR%%/shaders/140/background.vs
-%%DATADIR%%/shaders/140/dashed_thick_lines.fs
-%%DATADIR%%/shaders/140/dashed_thick_lines.gs
-%%DATADIR%%/shaders/140/dashed_thick_lines.vs
-%%DATADIR%%/shaders/140/flat.fs
-%%DATADIR%%/shaders/140/flat.vs
-%%DATADIR%%/shaders/140/flat_clip.fs
-%%DATADIR%%/shaders/140/flat_clip.vs
-%%DATADIR%%/shaders/140/flat_texture.fs
-%%DATADIR%%/shaders/140/flat_texture.vs
-%%DATADIR%%/shaders/140/gouraud.fs
-%%DATADIR%%/shaders/140/gouraud.vs
-%%DATADIR%%/shaders/140/gouraud_light.fs
-%%DATADIR%%/shaders/140/gouraud_light.vs
-%%DATADIR%%/shaders/140/gouraud_light_clip.fs
-%%DATADIR%%/shaders/140/gouraud_light_clip.vs
-%%DATADIR%%/shaders/140/gouraud_light_instanced.fs
-%%DATADIR%%/shaders/140/gouraud_light_instanced.vs
-%%DATADIR%%/shaders/140/imgui.fs
-%%DATADIR%%/shaders/140/imgui.vs
-%%DATADIR%%/shaders/140/mm_contour.fs
-%%DATADIR%%/shaders/140/mm_contour.vs
-%%DATADIR%%/shaders/140/mm_gouraud.fs
-%%DATADIR%%/shaders/140/mm_gouraud.vs
-%%DATADIR%%/shaders/140/printbed.fs
-%%DATADIR%%/shaders/140/printbed.vs
-%%DATADIR%%/shaders/140/toolpaths_cog.fs
-%%DATADIR%%/shaders/140/toolpaths_cog.vs
-%%DATADIR%%/shaders/140/variable_layer_height.fs
-%%DATADIR%%/shaders/140/variable_layer_height.vs
-%%DATADIR%%/shaders/ES/background.fs
-%%DATADIR%%/shaders/ES/background.vs
-%%DATADIR%%/shaders/ES/dashed_lines.fs
-%%DATADIR%%/shaders/ES/dashed_lines.vs
-%%DATADIR%%/shaders/ES/flat.fs
-%%DATADIR%%/shaders/ES/flat.vs
-%%DATADIR%%/shaders/ES/flat_clip.fs
-%%DATADIR%%/shaders/ES/flat_clip.vs
-%%DATADIR%%/shaders/ES/flat_texture.fs
-%%DATADIR%%/shaders/ES/flat_texture.vs
-%%DATADIR%%/shaders/ES/gouraud.fs
-%%DATADIR%%/shaders/ES/gouraud.vs
-%%DATADIR%%/shaders/ES/gouraud_light.fs
-%%DATADIR%%/shaders/ES/gouraud_light.vs
-%%DATADIR%%/shaders/ES/gouraud_light_clip.fs
-%%DATADIR%%/shaders/ES/gouraud_light_clip.vs
-%%DATADIR%%/shaders/ES/gouraud_light_instanced.fs
-%%DATADIR%%/shaders/ES/gouraud_light_instanced.vs
-%%DATADIR%%/shaders/ES/imgui.fs
-%%DATADIR%%/shaders/ES/imgui.vs
-%%DATADIR%%/shaders/ES/mm_contour.fs
-%%DATADIR%%/shaders/ES/mm_contour.vs
-%%DATADIR%%/shaders/ES/mm_gouraud.fs
-%%DATADIR%%/shaders/ES/mm_gouraud.vs
-%%DATADIR%%/shaders/ES/printbed.fs
-%%DATADIR%%/shaders/ES/printbed.vs
-%%DATADIR%%/shaders/ES/toolpaths_cog.fs
-%%DATADIR%%/shaders/ES/toolpaths_cog.vs
-%%DATADIR%%/shaders/ES/variable_layer_height.fs
-%%DATADIR%%/shaders/ES/variable_layer_height.vs
-%%DATADIR%%/shaders/ES/wireframe.fs
-%%DATADIR%%/shaders/ES/wireframe.vs
-%%DATADIR%%/shapes/3DBenchy.png
-%%DATADIR%%/shapes/3DBenchy.stl
-%%DATADIR%%/shapes/M3_hex_nut.png
-%%DATADIR%%/shapes/M3_hex_nut.stl
-%%DATADIR%%/shapes/M3x10_screw.png
-%%DATADIR%%/shapes/M3x10_screw.stl
-%%DATADIR%%/shapes/OTHER_recycling_symbol.png
-%%DATADIR%%/shapes/OTHER_recycling_symbol.stl
-%%DATADIR%%/shapes/PETG_recycling_symbol.png
-%%DATADIR%%/shapes/PETG_recycling_symbol.stl
-%%DATADIR%%/shapes/PLA_recycling_symbol.png
-%%DATADIR%%/shapes/PLA_recycling_symbol.stl
-%%DATADIR%%/shapes/box.png
-%%DATADIR%%/shapes/box.stl
-%%DATADIR%%/shapes/bunny.png
-%%DATADIR%%/shapes/bunny.stl
-%%DATADIR%%/shapes/cone.png
-%%DATADIR%%/shapes/cone.stl
-%%DATADIR%%/shapes/cylinder.png
-%%DATADIR%%/shapes/cylinder.stl
-%%DATADIR%%/shapes/helper_disk.png
-%%DATADIR%%/shapes/helper_disk.stl
-%%DATADIR%%/shapes/pyramid.png
-%%DATADIR%%/shapes/pyramid.stl
-%%DATADIR%%/shapes/sign_base.png
-%%DATADIR%%/shapes/sign_base.stl
-%%DATADIR%%/shapes/sign_base_rounded.png
-%%DATADIR%%/shapes/sign_base_rounded.stl
-%%DATADIR%%/shapes/sphere.png
-%%DATADIR%%/shapes/sphere.stl
-%%DATADIR%%/shapes/torus.png
-%%DATADIR%%/shapes/torus.stl
-%%DATADIR%%/shapes/universal wall mount hole.png
-%%DATADIR%%/shapes/universal wall mount hole.stl
-%%DATADIR%%/web/connect_error.html
-%%DATADIR%%/web/connect_loading.html
-%%DATADIR%%/web/error_no_reload.html
-%%DATADIR%%/web/other_error.html
-%%DATADIR%%/web/other_loading.html
share/applications/PrusaGcodeviewer.desktop
share/applications/PrusaSlicer.desktop
share/icons/hicolor/128x128/apps/PrusaSlicer-gcodeviewer.png