diff --git a/src/hints/HintsToPot.cpp b/src/hints/HintsToPot.cpp index 7c8029c..4791f06 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>& 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/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index e7c81f8..a626986 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -1,3 +1,4 @@ +#include #include "libslic3r/libslic3r.h" #include "libslic3r/Utils.hpp" #include "AppConfig.hpp" diff --git a/src/libslic3r/AppConfig.hpp b/src/libslic3r/AppConfig.hpp index 35e36c0..5e8059b 100644 --- a/src/libslic3r/AppConfig.hpp +++ b/src/libslic3r/AppConfig.hpp @@ -5,6 +5,7 @@ #include #include +#include #include #include "libslic3r/Config.hpp" diff --git a/src/libslic3r/Flow.cpp b/src/libslic3r/Flow.cpp index 269c1cb..acea297 100644 --- a/src/libslic3r/Flow.cpp +++ b/src/libslic3r/Flow.cpp @@ -6,6 +6,7 @@ #include #include +#include // Mark string for localization and translate. #define L(s) Slic3r::I18N::translate(s) diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp index 132c9a7..c311d05 100644 --- a/src/libslic3r/GCode/WipeTower.cpp +++ b/src/libslic3r/GCode/WipeTower.cpp @@ -12,7 +12,9 @@ #include "LocalesUtils.hpp" #include "Flow.hpp" + #include +#include namespace Slic3r diff --git a/src/libslic3r/LocalesUtils.cpp b/src/libslic3r/LocalesUtils.cpp index 5bf5205..7b87052 100644 --- a/src/libslic3r/LocalesUtils.cpp +++ b/src/libslic3r/LocalesUtils.cpp @@ -1,3 +1,4 @@ +#include #include "LocalesUtils.hpp" #ifdef _WIN32 diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 106f26e..c81cd1d 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/libslic3r/Utils.hpp b/src/libslic3r/Utils.hpp index f525c98..839f0f5 100644 --- a/src/libslic3r/Utils.hpp +++ b/src/libslic3r/Utils.hpp @@ -7,6 +7,7 @@ #include #include +#include #include #include "libslic3r.h" diff --git a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp index cef390f..553a183 100644 --- a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp +++ b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp @@ -18,6 +18,11 @@ #include #include "Notebook.hpp" +#include +#include +#include +#include + #include "MainFrame.hpp" #include "wxExtensions.hpp" diff --git a/src/slic3r/GUI/DesktopIntegrationDialog.cpp b/src/slic3r/GUI/DesktopIntegrationDialog.cpp index fcb7472..866ebae 100644 --- a/src/slic3r/GUI/DesktopIntegrationDialog.cpp +++ b/src/slic3r/GUI/DesktopIntegrationDialog.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -503,4 +504,4 @@ DesktopIntegrationDialog::~DesktopIntegrationDialog() } // namespace GUI } // namespace Slic3r -#endif // __linux__ \ No newline at end of file +#endif // __linux__ diff --git a/src/slic3r/GUI/FreeCADDialog.cpp b/src/slic3r/GUI/FreeCADDialog.cpp index d519626..a14fb61 100644 --- a/src/slic3r/GUI/FreeCADDialog.cpp +++ b/src/slic3r/GUI/FreeCADDialog.cpp @@ -38,6 +38,7 @@ #include #include #include +#include // hack for process.hpp : it uses pid_t to set it as alias of int, but vc_x64_lib (wx thingy) as a '#define pid_t int' // and so boost/process has a line 'typedef int int'instead of 'typedef int pid_t' that makes it crash @@ -322,7 +323,7 @@ bool FreeCADDialog::load_text_from_file(const boost::filesystem::path &path) { try { std::locale loc = boost::locale::generator()("en_US.UTF-8"); // Open the stream to 'lock' the file. - boost::filesystem::ifstream in; + boost::nowide::ifstream in; in.imbue(loc); in.open(path); // Obtain the size of the file. @@ -369,7 +370,7 @@ bool FreeCADDialog::write_text_in_file(const wxString &towrite, const boost::fil boost::filesystem::create_directories(file.parent_path()); std::locale loc = boost::locale::generator()("en_US.UTF-8"); // Open the stream to 'lock' the file. - boost::filesystem::ofstream out; + boost::nowide::ofstream out; out.imbue(loc); out.open(file); out << towrite; diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 2f32d04..813ef1c 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include diff --git a/src/slic3r/GUI/HintNotification.cpp b/src/slic3r/GUI/HintNotification.cpp index dbedd0a..25182cc 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 + #include #include #include #include #include -#include + #include #include #include @@ -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& 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& 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 diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index ffc600b..c8080d1 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -12,6 +12,7 @@ #include "OG_CustomCtrl.hpp" #include "wxExtensions.hpp" +#include #include #include diff --git a/src/slic3r/GUI/PrintHostDialogs.cpp b/src/slic3r/GUI/PrintHostDialogs.cpp index 87bef23..d097d58 100644 --- a/src/slic3r/GUI/PrintHostDialogs.cpp +++ b/src/slic3r/GUI/PrintHostDialogs.cpp @@ -81,8 +81,8 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo 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; @@ -92,7 +92,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo 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); } @@ -102,7 +102,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo 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); } @@ -113,7 +113,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo // 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); } diff --git a/src/slic3r/GUI/ScriptExecutor.cpp b/src/slic3r/GUI/ScriptExecutor.cpp index e923bb5..354c79b 100644 --- a/src/slic3r/GUI/ScriptExecutor.cpp +++ b/src/slic3r/GUI/ScriptExecutor.cpp @@ -4,6 +4,13 @@ #include "Tab.hpp" #include "libslic3r/PresetBundle.hpp" #include "libslic3r/Print.hpp" +#include +#include +#include +#include +#include +#include +#include #include diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 340369e..837982e 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -36,6 +36,8 @@ #include #include #include +#include +#include #include "wxExtensions.hpp" #include "PresetComboBoxes.hpp" @@ -1701,7 +1703,7 @@ std::vector Tab::create_pages(std::string setting_type_nam //read file //std::ifstream filestream(ui_layout_file.c_str()); - boost::filesystem::ifstream filestream(ui_layout_file); + boost::nowide::ifstream filestream(ui_layout_file); std::string full_line; while (std::getline(filestream, full_line)) { //remove spaces diff --git a/src/slic3r/Utils/Http.cpp b/src/slic3r/Utils/Http.cpp index 62461cd..7a02c04 100644 --- a/src/slic3r/Utils/Http.cpp +++ b/src/slic3r/Utils/Http.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include @@ -52,7 +53,7 @@ namespace Slic3r { % error; }) .on_complete([&](std::string body, unsigned /* http_status */) { - boost::filesystem::fstream file(tmp_path, std::ios::out | std::ios::binary | std::ios::trunc); + boost::nowide::fstream file(tmp_path, std::ios::out | std::ios::binary | std::ios::trunc); file.write(body.c_str(), body.size()); file.close(); boost::filesystem::rename(tmp_path, target_path);