Accepting request 1097058 from home:frispete:3dprinting

- disable slic3r_jobs_tests.cpp, as it fails sometimes
- PrusaSlicer-2.6.0-wxWidgets-CheckResizerFlags-assert-fix.patch
  applied

- Update to version 2.6.0
  * too many changes to list here, you may want to check:
    https://github.com/prusa3d/PrusaSlicer/commits/version_2.6.0
  * PrusaSlicer-boost1.79.patch was applied upstream: removed
  * PrusaSlicer-cereal.patch was applied upstream: removed
  * gentoo-887055-boost-fix.patch was applied upstream: removed
  * new dependencies: nanosvg (new package), glu and glew
  * more sed fiddling required for system expat and qhull support
  * PrusaSlicer-2.6.0-octoprint-name-fix.patch added to work around
    compile error: cast lambda expressionn to same type
  * wxWidgets 3.0 is not supported anymore (even project states
    otherwise). Let's hope, it will work with 3.2 better now.
    upstream is using a patched 3.1 version.

OBS-URL: https://build.opensuse.org/request/show/1097058
OBS-URL: https://build.opensuse.org/package/show/science/PrusaSlicer?expand=0&rev=59
This commit is contained in:
2023-07-06 18:35:53 +00:00
committed by Git OBS Bridge
parent 57f17d6cb6
commit 07f7b199d0
9 changed files with 144 additions and 250 deletions

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e58278067b9d49a42dc9bb02b74307b3cb365bb737f28e246ca8c6f466095d6b
size 49039089

View File

@@ -0,0 +1,13 @@
Index: b/src/slic3r/Utils/OctoPrint.cpp
===================================================================
--- a/src/slic3r/Utils/OctoPrint.cpp
+++ b/src/slic3r/Utils/OctoPrint.cpp
@@ -746,7 +746,7 @@ bool PrusaLink::get_storage(wxArrayStrin
if (path && (!available || *available)) {
StorageInfo si;
si.path = boost::nowide::widen(*path);
- si.name = name ? boost::nowide::widen(*name) : wxString();
+ si.name = name ? wxString(boost::nowide::widen(*name)) : wxString();
// If read_only is missing, assume it is NOT read only.
// si.read_only = read_only ? *read_only : false; // version without "ro"
si.read_only = (read_only ? *read_only : (ro ? *ro : false));

View File

@@ -0,0 +1,76 @@
From 24a5ebd65c9d25a0fd69a3716d079fd1b00eb15c Mon Sep 17 00:00:00 2001
From: Pascal de Bruijn <pmjdebruijn@pcode.nl>
Date: Wed, 14 Jun 2023 19:56:35 +0200
Subject: [PATCH] wxWidgets: CheckResizerFlags assert fix
./src/common/sizer.cpp(2258): assert "CheckSizerFlags(!((flags) & (wxALIGN_CENTRE_VERTICAL)))"
failed in DoInsert(): wxALIGN_CENTRE_VERTICAL will be ignored in this sizer:
wxEXPAND overrides alignment flags in box sizers
---
src/slic3r/GUI/Field.cpp | 2 +-
src/slic3r/GUI/FirmwareDialog.cpp | 2 +-
src/slic3r/GUI/Tab.cpp | 4 ++--
src/slic3r/GUI/WipeTowerDialog.cpp | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp
index 74ad028d363..6789ce24cb5 100644
--- a/src/slic3r/GUI/Field.cpp
+++ b/src/slic3r/GUI/Field.cpp
@@ -1660,7 +1660,7 @@ void SliderCtrl::BUILD()
m_textctrl->SetFont(Slic3r::GUI::wxGetApp().normal_font());
m_textctrl->SetBackgroundStyle(wxBG_STYLE_PAINT);
- temp->Add(m_slider, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL, 0);
+ temp->Add(m_slider, 1, wxEXPAND, 0);
temp->Add(m_textctrl, 0, wxALIGN_CENTER_VERTICAL, 0);
m_slider->Bind(wxEVT_SLIDER, ([this](wxCommandEvent e) {
diff --git a/src/slic3r/GUI/FirmwareDialog.cpp b/src/slic3r/GUI/FirmwareDialog.cpp
index 47402644f4b..46d2fdb60d1 100644
--- a/src/slic3r/GUI/FirmwareDialog.cpp
+++ b/src/slic3r/GUI/FirmwareDialog.cpp
@@ -841,7 +841,7 @@ FirmwareDialog::FirmwareDialog(wxWindow *parent) :
grid->Add(port_sizer, 0, wxEXPAND);
grid->Add(label_progress, 0, wxALIGN_CENTER_VERTICAL);
- grid->Add(p->progressbar, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
+ grid->Add(p->progressbar, 1, wxEXPAND);
grid->Add(label_status, 0, wxALIGN_CENTER_VERTICAL);
grid->Add(p->txt_status, 0, wxEXPAND);
diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp
index 184b8af707f..c95fcd44219 100644
--- a/src/slic3r/GUI/Tab.cpp
+++ b/src/slic3r/GUI/Tab.cpp
@@ -217,7 +217,7 @@ void Tab::create_preset_tab()
const float scale_factor = em_unit(this)*0.1;// GetContentScaleFactor();
m_top_hsizer = new wxBoxSizer(wxHORIZONTAL);
- sizer->Add(m_top_hsizer, 0, wxEXPAND | wxBOTTOM | wxALIGN_CENTER_VERTICAL, 3);
+ sizer->Add(m_top_hsizer, 0, wxEXPAND | wxBOTTOM, 3);
m_top_hsizer->Add(m_presets_choice, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, 3);
m_top_hsizer->AddSpacer(int(4*scale_factor));
@@ -243,7 +243,7 @@ void Tab::create_preset_tab()
m_h_buttons_sizer->AddSpacer(int(8*scale_factor));
m_h_buttons_sizer->Add(m_btn_compare_preset, 0, wxALIGN_CENTER_VERTICAL);
- m_top_hsizer->Add(m_h_buttons_sizer, 1, wxEXPAND | wxALIGN_CENTRE_VERTICAL);
+ m_top_hsizer->Add(m_h_buttons_sizer, 1, wxEXPAND);
m_top_hsizer->AddSpacer(int(16*scale_factor));
// StretchSpacer has a strange behavior under OSX, so
// There is used just additional sizer for m_mode_sizer with right alignment
diff --git a/src/slic3r/GUI/WipeTowerDialog.cpp b/src/slic3r/GUI/WipeTowerDialog.cpp
index 4d117ff8d62..6d48daa6292 100644
--- a/src/slic3r/GUI/WipeTowerDialog.cpp
+++ b/src/slic3r/GUI/WipeTowerDialog.cpp
@@ -353,7 +353,7 @@ WipingPanel::WipingPanel(wxWindow* parent, const std::vector<float>& matrix, con
hsizer->AddSpacer(10);
hsizer->Add(new wxStaticText(m_page_simple, wxID_ANY, wxString(_(L("Tool #"))) << i + 1 << ": "), 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
- gridsizer_simple->Add(hsizer, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
+ gridsizer_simple->Add(hsizer, 1, wxEXPAND);
gridsizer_simple->Add(m_old.back(),0);
gridsizer_simple->Add(m_new.back(),0);
}

View File

@@ -1,112 +0,0 @@
From 408e56f0390f20aaf793e0aa0c70c4d9544401d4 Mon Sep 17 00:00:00 2001
From: Vojtech Bubnik <bubnikv@gmail.com>
Date: Mon, 25 Apr 2022 08:33:48 +0200
Subject: [PATCH] Fix of Boost 1.79 deprecated boost::filesystem::ofstream
#8238 Replacing boost::filesystem::fstream with boost::nowide::fstream
variants with the unfortunate cost of string path conversion on Windows from
16 bits to UTF8 and back to 16 bits.
Unfortunately we cannot use std::filesystem yet as it is missing
on older MACs and because the interface is crooked minefield on Windows
see https://github.com/microsoft/STL/issues/909
---
src/hints/HintsToPot.cpp | 2 +-
src/libslic3r/Preset.cpp | 2 +-
src/slic3r/GUI/HintNotification.cpp | 8 +++++---
3 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/hints/HintsToPot.cpp b/src/hints/HintsToPot.cpp
index 7c8029cdeb..4791f0612f 100644
--- a/src/hints/HintsToPot.cpp
+++ b/src/hints/HintsToPot.cpp
@@ -9,7 +9,7 @@
bool write_to_pot(boost::filesystem::path path, const std::vector<std::pair<std::string, std::string>>& data)
{
- boost::filesystem::ofstream file(std::move(path), std::ios_base::app);
+ boost::nowide::ofstream file(path.string(), std::ios_base::app);
for (const auto& element : data)
{
//Example of .pot element
diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp
index f3a1c15b3e..f171cb14dd 100644
--- a/src/libslic3r/Preset.cpp
+++ b/src/libslic3r/Preset.cpp
@@ -84,7 +84,7 @@ ConfigFileType guess_config_file_type(const ptree &tree)
VendorProfile VendorProfile::from_ini(const boost::filesystem::path &path, bool load_all)
{
ptree tree;
- boost::filesystem::ifstream ifs(path);
+ boost::nowide::ifstream ifs(path.string());
boost::property_tree::read_ini(ifs, tree);
return VendorProfile::from_ini(tree, path, load_all);
}
diff --git a/src/slic3r/GUI/HintNotification.cpp b/src/slic3r/GUI/HintNotification.cpp
index 93e0fb3259..820b74eedb 100644
--- a/src/slic3r/GUI/HintNotification.cpp
+++ b/src/slic3r/GUI/HintNotification.cpp
@@ -14,12 +14,14 @@
#include "libslic3r/Config.hpp"
#include "libslic3r/PrintConfig.hpp"
+#include <map>
+
#include <boost/algorithm/string/replace.hpp>
#include <boost/filesystem.hpp>
#include <boost/nowide/fstream.hpp>
#include <boost/log/trivial.hpp>
#include <boost/property_tree/ini_parser.hpp>
-#include <map>
+
#include <cereal/archives/binary.hpp>
#include <cereal/types/string.hpp>
#include <cereal/types/vector.hpp>
@@ -65,7 +67,7 @@ inline void push_style_color(ImGuiCol idx, const ImVec4& col, bool fading_out, f
void write_used_binary(const std::vector<std::string>& ids)
{
- boost::filesystem::ofstream file((boost::filesystem::path(data_dir()) / "cache" / "hints.cereal"), std::ios::binary);
+ boost::nowide::ofstream file((boost::filesystem::path(data_dir()) / "cache" / "hints.cereal").string(), std::ios::binary);
cereal::BinaryOutputArchive archive(file);
HintsCerealData cd { ids };
try
@@ -84,7 +86,7 @@ void read_used_binary(std::vector<std::string>& ids)
BOOST_LOG_TRIVIAL(warning) << "Failed to load to hints.cereal. File does not exists. " << path.string();
return;
}
- boost::filesystem::ifstream file(path);
+ boost::nowide::ifstream file(path.string());
cereal::BinaryInputArchive archive(file);
HintsCerealData cd;
try
From 926ae0471800abd1e5335e251a5934570eb8f6ff Mon Sep 17 00:00:00 2001
From: Vojtech Bubnik <bubnikv@gmail.com>
Date: Mon, 25 Apr 2022 11:32:03 +0200
Subject: [PATCH] Follow-up to 408e56f0390f20aaf793e0aa0c70c4d9544401d4 Fixing
compilation of tests on latest GCC/boost
---
tests/fff_print/test_data.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tests/fff_print/test_data.cpp b/tests/fff_print/test_data.cpp
index 32e31c264c..f7077007db 100644
--- a/tests/fff_print/test_data.cpp
+++ b/tests/fff_print/test_data.cpp
@@ -11,6 +11,7 @@
#include <string>
#include <boost/nowide/cstdio.hpp>
+#include <boost/nowide/fstream.hpp>
#include <boost/filesystem.hpp>
#include <libslic3r/ModelArrange.hpp>
@@ -286,7 +287,7 @@ std::string gcode(Print & print)
print.set_status_silent();
print.process();
print.export_gcode(temp.string(), nullptr, nullptr);
- std::ifstream t(temp.string());
+ boost::nowide::ifstream t(temp.string());
std::string str((std::istreambuf_iterator<char>(t)), std::istreambuf_iterator<char>());
boost::nowide::remove(temp.string().c_str());
return str;

View File

@@ -1,69 +0,0 @@
From 0ffcfd8393457fd035576436752267c9a1e6bbcc Mon Sep 17 00:00:00 2001
From: Yuri D'Elia <wavexx@thregr.org>
Date: Mon, 24 Jan 2022 20:21:24 +0100
Subject: [PATCH] Use namespaces to link against libcereal >= 1.3.1
Create an alias for previous versions.
---
CMakeLists.txt | 3 +++
src/CMakeLists.txt | 2 +-
src/libslic3r/CMakeLists.txt | 2 +-
src/slic3r/CMakeLists.txt | 2 +-
4 files changed, 6 insertions(+), 3 deletions(-)
Index: PrusaSlicer-version_2.4.2/CMakeLists.txt
===================================================================
--- PrusaSlicer-version_2.4.2.orig/CMakeLists.txt
+++ PrusaSlicer-version_2.4.2/CMakeLists.txt
@@ -474,6 +474,12 @@ endif ()
# Find the Cereal serialization library
find_package(cereal REQUIRED)
+add_library(libcereal INTERFACE)
+if (NOT TARGET cereal::cereal)
+ target_link_libraries(libcereal INTERFACE cereal)
+else()
+ target_link_libraries(libcereal INTERFACE cereal::cereal)
+endif()
# l10n
set(L10N_DIR "${SLIC3R_RESOURCES_DIR}/localization")
Index: PrusaSlicer-version_2.4.2/src/CMakeLists.txt
===================================================================
--- PrusaSlicer-version_2.4.2.orig/src/CMakeLists.txt
+++ PrusaSlicer-version_2.4.2/src/CMakeLists.txt
@@ -125,7 +125,7 @@ if (NOT WIN32 AND NOT APPLE)
set_target_properties(PrusaSlicer PROPERTIES OUTPUT_NAME "prusa-slicer")
endif ()
-target_link_libraries(PrusaSlicer libslic3r cereal)
+target_link_libraries(PrusaSlicer libslic3r libcereal)
if (APPLE)
# add_compile_options(-stdlib=libc++)
Index: PrusaSlicer-version_2.4.2/src/libslic3r/CMakeLists.txt
===================================================================
--- PrusaSlicer-version_2.4.2.orig/src/libslic3r/CMakeLists.txt
+++ PrusaSlicer-version_2.4.2/src/libslic3r/CMakeLists.txt
@@ -337,7 +337,7 @@ target_include_directories(libslic3r PUB
target_link_libraries(libslic3r
libnest2d
admesh
- cereal
+ libcereal
libigl
miniz
boost_libs
Index: PrusaSlicer-version_2.4.2/src/slic3r/CMakeLists.txt
===================================================================
--- PrusaSlicer-version_2.4.2.orig/src/slic3r/CMakeLists.txt
+++ PrusaSlicer-version_2.4.2/src/slic3r/CMakeLists.txt
@@ -260,7 +260,7 @@ add_library(libslic3r_gui STATIC ${SLIC3
encoding_check(libslic3r_gui)
-target_link_libraries(libslic3r_gui libslic3r avrdude cereal imgui GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES})
+target_link_libraries(libslic3r_gui libslic3r avrdude libcereal imgui GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES})
if (MSVC)
target_link_libraries(libslic3r_gui Setupapi.lib)

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a15f68e3b18a047c8c9a18a9d91629d2c777be1932087684cf6d2332d0888e77
size 56430180

View File

@@ -1,3 +1,27 @@
-------------------------------------------------------------------
Wed Jul 5 14:13:11 UTC 2023 - Hans-Peter Jansen <hpj@urpla.net>
- disable slic3r_jobs_tests.cpp, as it fails sometimes
- PrusaSlicer-2.6.0-wxWidgets-CheckResizerFlags-assert-fix.patch
applied
-------------------------------------------------------------------
Tue Jul 4 17:16:14 UTC 2023 - Hans-Peter Jansen <hpj@urpla.net>
- Update to version 2.6.0
* too many changes to list here, you may want to check:
https://github.com/prusa3d/PrusaSlicer/commits/version_2.6.0
* PrusaSlicer-boost1.79.patch was applied upstream: removed
* PrusaSlicer-cereal.patch was applied upstream: removed
* gentoo-887055-boost-fix.patch was applied upstream: removed
* new dependencies: nanosvg (new package), glu and glew
* more sed fiddling required for system expat and qhull support
* PrusaSlicer-2.6.0-octoprint-name-fix.patch added to work around
compile error: cast lambda expressionn to same type
* wxWidgets 3.0 is not supported anymore (even project states
otherwise). Let's hope, it will work with 3.2 better now.
upstream is using a patched 3.1 version.
-------------------------------------------------------------------
Fri Apr 21 15:04:55 UTC 2023 - Klaus Kämpf <kkaempf@suse.com>

View File

@@ -17,21 +17,19 @@
Name: PrusaSlicer
Version: 2.5.2
Version: 2.6.0
Release: 0
Summary: G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)
License: AGPL-3.0-only
Group: Hardware/Printing
URL: https://www.prusa3d.com/prusaslicer/
Source0: https://github.com/prusa3d/PrusaSlicer/archive/version_%{version}.tar.gz#/%{name}-%{version}.tar.gz
# PATCH-FIX-UPSTREAM PrusaSlicer-boost1.79.patch -- gh#prusa3d/PrusaSlicer#8238
Patch0: PrusaSlicer-boost1.79.patch
# PATCH-FIX-UPSTREAM PrusaSlicer-cereal.patch -- gh#prusa3d/PrusaSlicer#7809
Patch1: PrusaSlicer-cereal.patch
# PATCH-FIX-UPSTREAM gentoo-887055-boost-fix.patch -- gh#prusa3d/PrusaSlicer#9294
Patch2: gentoo-887055-boost-fix.patch
Source0: https://github.com/prusa3d/PrusaSlicer/archive/version_%{version}.tar.gz#/%{name}-version_%{version}.tar.gz
# PATCH-FIX-OPENSUSE up-occt-version.patch mike.chikov@gmail.com -- install wrapper so into libdir, not bindir
Patch3: up-occt-version.patch
Patch0: up-occt-version.patch
# PATCH-FIX-OPENSUSE PrusaSlicer-2.6.0-octoprint-name-fix.patch -- cast lambda expression to same type
Patch1: PrusaSlicer-2.6.0-octoprint-name-fix.patch
# PATCH-FIX-UPSTREAM PrusaSlicer-2.6.0-wxWidgets-CheckResizerFlags-assert-fix.patch -- https://github.com/prusa3d/PrusaSlicer/commit/24a5ebd65c9d25a0fd69a3716d079fd1b00eb15c.patch
Patch2: PrusaSlicer-2.6.0-wxWidgets-CheckResizerFlags-assert-fix.patch
BuildRequires: blosc-devel
BuildRequires: cereal-devel
BuildRequires: cgal-devel >= 4.13.2
@@ -46,9 +44,6 @@ BuildRequires: fdupes
%define gcc_ver 10
%endif
BuildRequires: gcc%gcc_ver-c++
# For now, use bundled GLEW because of gh#prusa3d/PrusaSlicer#6396
#!BuildIgnore: glew-devel
#!BuildIgnore: libglfw3-wayland
BuildRequires: gtest >= 1.7
BuildRequires: libboost_atomic-devel
BuildRequires: libboost_filesystem-devel
@@ -65,7 +60,6 @@ BuildRequires: memory-constraints
BuildRequires: nlopt-devel
BuildRequires: occt-devel
BuildRequires: openexr-devel
# See https://github.com/prusa3d/PrusaSlicer/pull/9103
BuildRequires: openvdb-devel >= 7.1
BuildRequires: openvdb-tools
BuildRequires: pkgconfig
@@ -73,9 +67,19 @@ BuildRequires: tbb-devel
BuildRequires: update-desktop-files
# Quoting Lucas Matena (see gh#prusa3d/PrusaSlicer#8299, issue 2):
# if you link PrusaSlicer 2.5.x with wxWidgets 3.2, you will most likely break it.
BuildRequires: wxWidgets-3_0-devel
# update: this seems to be changed which 2.6.x, which requires wxBitmapComboBox,
# that's not available with earlier versions. Try to build with wx 3.2 now.
BuildRequires: wxWidgets-devel
BuildRequires: cmake(NanoSVG)
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glew)
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(qhull_r)
BuildRequires: pkgconfig(qhullcpp)
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-egl)
Requires: noto-sans-fonts
%description
@@ -92,6 +96,14 @@ sed -i 's/UNKNOWN/%{release}-%{?is_opensuse:open}SUSE-%{suse_version}/' version.
%endif
# this is not prusaslicer specific, space mouse users install it themselves
rm resources/udev/90-3dconnexion.rules
# we want to use the system provided expat lib
sed -i "/add_library(libexpat INTERFACE)/d" CMakeLists.txt
# adjust the qhull version requirement
sed -i "s|find_package(Qhull 7.2 REQUIRED)|find_package(Qhull 8.0.2 REQUIRED)|" src/CMakeLists.txt
# fix qhull link with static lib issue
sed -i 's#INTERFACE Qhull::qhullcpp#INTERFACE -lqhullcpp#' src/CMakeLists.txt
# Disable slic3r_jobs_tests.cpp as the test fails sometimes
sed -i 's|slic3r_jobs_tests.cpp||' tests/slic3rutils/CMakeLists.txt
%build
# The build process really acquires that much memory per job. We are
@@ -108,12 +120,11 @@ rm resources/udev/90-3dconnexion.rules
%endif
export CC=gcc-%gcc_ver CXX=g++-%gcc_ver
# rh#2059646
sed -i tests/libslic3r/CMakeLists.txt -e '\@test_voronoi.cpp@d'
#sed -i tests/libslic3r/CMakeLists.txt -e '\@test_voronoi.cpp@d'
%cmake \
-DCMAKE_CXX_STANDARD=17 \
-DSLIC3R_FHS=1 \
-DSLIC3R_GTK=2 \
-DSLIC3R_WX_STABLE=1 \
-DOPENVDB_FIND_MODULE_PATH=%{_libdir}/cmake/OpenVDB
%cmake_build

View File

@@ -1,49 +0,0 @@
From 6a714bb602a25290d2aedf74eb1232fb9efd5979 Mon Sep 17 00:00:00 2001
From: Piotr Karbowski <slashbeast@gentoo.org>
Date: Tue, 27 Dec 2022 21:11:19 +0100
Subject: media-gfx/prusaslicer: fix building with boost-1.81.
Patch contributed by Bradley Jarvis.
Closes: https://bugs.gentoo.org/887055
Signed-off-by: Piotr Karbowski <slashbeast@gentoo.org>
--- a/src/slic3r/GUI/PrintHostDialogs.cpp 2022-12-21 10:21:43.583075853 +1100
+++ b/src/slic3r/GUI/PrintHostDialogs.cpp 2022-12-21 10:23:03.902694287 +1100
@@ -79,8 +79,8 @@ PrintHostSendDialog::PrintHostSendDialog
if (size_t extension_start = recent_path.find_last_of('.'); extension_start != std::string::npos)
m_valid_suffix = recent_path.substr(extension_start);
// .gcode suffix control
- auto validate_path = [this](const wxString &path) -> bool {
- if (! path.Lower().EndsWith(m_valid_suffix.Lower())) {
+ auto validate_path = [this](const std::wstring &path) -> bool {
+ if (! wxString(path).Lower().EndsWith(m_valid_suffix.Lower())) {
MessageDialog msg_wingow(this, wxString::Format(_L("Upload filename doesn't end with \"%s\". Do you wish to continue?"), m_valid_suffix), wxString(SLIC3R_APP_NAME), wxYES | wxNO);
if (msg_wingow.ShowModal() == wxID_NO)
return false;
@@ -90,7 +90,7 @@ PrintHostSendDialog::PrintHostSendDialog
auto* btn_ok = add_button(wxID_OK, true, _L("Upload"));
btn_ok->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) {
- if (validate_path(txt_filename->GetValue())) {
+ if (validate_path(txt_filename->GetValue().ToStdWstring())) {
post_upload_action = PrintHostPostUploadAction::None;
EndDialog(wxID_OK);
}
@@ -100,7 +100,7 @@ PrintHostSendDialog::PrintHostSendDialog
if (post_actions.has(PrintHostPostUploadAction::StartPrint)) {
auto* btn_print = add_button(wxID_YES, false, _L("Upload and Print"));
btn_print->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) {
- if (validate_path(txt_filename->GetValue())) {
+ if (validate_path(txt_filename->GetValue().ToStdWstring())) {
post_upload_action = PrintHostPostUploadAction::StartPrint;
EndDialog(wxID_OK);
}
@@ -111,7 +111,7 @@ PrintHostSendDialog::PrintHostSendDialog
// Using wxID_MORE as a button identifier to be different from the other buttons, wxID_MORE has no other meaning here.
auto* btn_simulate = add_button(wxID_MORE, false, _L("Upload and Simulate"));
btn_simulate->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) {
- if (validate_path(txt_filename->GetValue())) {
+ if (validate_path(txt_filename->GetValue().ToStdWstring())) {
post_upload_action = PrintHostPostUploadAction::StartSimulation;
EndDialog(wxID_OK);
}